乐于分享
好东西不私藏

嫌 OpenClaw 太重?我花几天用 AI 手搓了个带“永久记忆”的通信 Agent

嫌 OpenClaw 太重?我花几天用 AI 手搓了个带“永久记忆”的通信 Agent

最近 AI 圈可谓是风起云涌,OpenClaw(小龙虾)的火热还没过去,主打伴随式成长与记忆的 Hermes Agent 又杀了出来!可以预见的是,未来这种 Agent 系统会越来越多。

这段时间,我也深入阅读了 OpenClaw 的源码,整理了它的系统架构和工程设计,包括 Gateway、多 Agent 协作等…

但看完后,我觉得它有些过于庞杂了:作为一个只想让 AI 帮我处理通信领域杂活、分析日志的科研人员/工程师,这套系统似乎太重了,而且它最大的痛点是——缺乏长期的本地记忆(原生偏向无状态调度)

于是我决定:结合老师的通信课题方向,让 AI 帮我写一个 mini 版的 Hermes-Desktop!全程作为架构师指挥 AI 编写代码。结果系统不仅跑起来了,而且加入了硬核的 RAG 记忆和沙盒机制,过程里踩的坑、做的取舍,非常有意思。

先看个最终效果:我在桌面端输入了一句

“帮我排查一下今天这份 5G 接入失败的日志文件”

它就自动去读取了本地工作区的日志、调用了终端排查工具、分析了信令,并结合它大脑里自带的“通信专业知识库”,给我生成了一份割接方案模板:

这一切是怎么发生的呢?请大家跟着我的架构思路,继续往下看:

最终的项目结构

我们以终为始,先看看最终搭建出来的目录结构:

my_hermes_agent/├── backend/                # 后端核心引擎│   ├── main.py             # 核心入口 (FastAPI + Pywebview 启动,960行)│   ├── ui.py               # 桌面 UI 三栏工作台渲染层 (2053行)│   ├── llm_provider.py     # 模型网关 (支持 DeepSeek/OpenRouter 等兼容)│   ├── react_engine.py     # ReAct 推理编排 (CoT/ToT/多Agent模式)│   ├── workspace_mgr.py    # 工作区管理 (去数据库化核心)│   ├── memory_manager.py   # 会话历史与短期记忆│   ├── rag/                # ⭐ RAG 长期记忆语义检索模块 (~1348行)│   └── security/           # ⭐ 安全沙盒与操作审计模块 (~541行)├── workspace/              # 纯本地化运行时数据 (安全隔离)│   ├── agents/default/     # Agent 的 MEMORY.md 与 USER.md│   ├── skills/             # 通信垂直领域的内置 Skills│   ├── rag/                # hermes_memory.sqlite3 (记忆库)│   └── logs/               # tool_audit.jsonl (审计日志)└── pyproject.toml          # uv 包管理与项目依赖

以前,想做点这种包含 RAG 和 Agent 的桌面程序,要么花钱用别人的平台,要么找程序员朋友帮忙搭一套。现在,你只需要会打字、懂架构设计、会描述需求,就能用 AI 拥有一个属于自己的科研/工作数字助理。

让我们一点点继续吧~

技术栈和功能规划

市面上的框架功能很全,多通道设计、渠道管理、权限检查… 不过从个人研究和领域落地的角度来说,没必要搞这么复杂。

我的需求其实很明确:一个极简的桌面工作台、必须能长记性(永久记忆)、数据必须绝对安全(纯本地文件)、并且要懂通信业务。

把需求拆解给 AI 后,我拍板了最终的技术底座:

  • 核心框架: Python 3.11+ 、FastAPI (SSE 流式输出)
  • 桌面交付: Pywebview(不需要用户装任何环境,直接跑成桌面软件)
  • 数据存储: 去传统 MySQL,采用 纯本地 workspace 文件夹 + SQLite(仅用于 RAG 向量)。
  • 模型支持: OpenAI 官方库兼容,深度适配 DeepSeek、Qwen 等国产最强模型。

说干就干,打开代码编辑器,把架构蓝图一丢,开启了极客模式。整个项目累计生成了约 8000 行 Python 代码

一步一步,来看看我都做了哪些硬核改造:

一、 沉浸式桌面工作台与交互

我不需要一个简陋的黑框框。

我让 AI 打造了一个类似 ChatGPT 风格的玻璃拟态三栏工作台。最牛的是,它不再是粗糙的纯文本框

  • 左侧: 多会话管理与历史隔离。
  • 中间: 实时流式聊天,支持图片 / PDF 上传。丢个 PDF 进去,它能自动抽取文本注入上下文。
  • 右侧: 这是一个硬核的控制台。Agent 设定、通信 Skills、甚至是 ReAct 的最大推理步数都可以直接调整。

二、 灵魂核心:RAG 长期记忆系统

这是区别于普通套壳产品最核心的地方。普通的 Agent 重启后就像失忆了一样,但我的 Hermes-Desktop 拥有四层记忆机制

  1. Core Memory (核心记忆):MEMORY.md 与 USER.md,回复前直接注入,优先级最高。记录我的工作偏好。
  2. Semantic Memory (语义记忆): 遇到专业的通信文档、项目文档,走 RAG 检索提取。默认加载了 BAAI/bge-small-zh-v1.5 本地 Embedding 模型。
  3. Episodic Memory (情景记忆): 历史对话会自动压缩成摘要并存入 SQLite 库中,它能记住我们上周聊过的某个 5G 基站参数。
  4. Tool Memory (工具记忆): 工具日志摘要,防止大量无用报错塞满大模型。

这就是真正的“The agent that grows with you”。

三、 企业级护城河:安全沙盒 (Security Sandbox)

既然 Agent 可以自动执行代码和命令,那如果不小心把我的电脑系统删了怎么办?

为此,我专门设计了一个不依赖 Docker 的轻量级本地沙盒机制

  • 路径边界: 默认只允许 Agent 访问 workspace/ 目录,强行拦截读取 .env、Cookie、系统盘等敏感路径。
  • 命令风控: 终端命令分级执行(safe / review / blocked),高危命令直接拦截。
  • Diff Guard (写入保护): 最有意思的一点,Agent 修改文件前,不是直接覆盖,而是先生成 unified diff 待我审批,审批通过后才执行,并且自动生成 Backup 备份!

四、 核心壁垒:通信专家 Skills 生态

工具是底层的“手脚”(比如读写文件、执行 Shell),而技能(Skills)是上层的业务 SOP(标准作业程序)

为了贴合通信领域,系统启动时,我在默认工作区注入了以下核心 Skill:

  • telecom_agent_operating_principles.md (通信助理行为准则)
  • ran_5g_lte_optimization.md (5G/LTE 无线网优化)
  • core_network_diagnosis.md (核心网故障诊断)
  • protocol_log_analysis.md (协议与日志分析)

有了这些,当我问它关于 5G 接入失败的问题时,它就不再是泛泛而谈的废话,而是会直接遵循 ran_5g_lte_optimization.md 里的专家级排查流,甚至去帮我执行终端排障脚本。

案例演示:一次真实的工程协作

光说架构太抽象了,来看看 Agent 是怎么干活的。

我在这套系统里加入了极其强大的“任务规划策略”。在右侧面板,我可以选择 CoT (思维链)、Plan-and-Execute (计划与执行) 甚至是 ToT (思维树)。

场景:排查网络日志并生成结论当我丢给它一个报错任务时,它会自动在后台调用“终端工具”。 你会发现,它的行为非常接近原生的 Claude Code:它会优先选择自己写脚本、调用终端工具去 grep 日志、查看 stdout 结果,在拿到真实数据后,再把结论总结出来反馈到聊天框!

整个过程,我只需要布置任务,剩下的分析、代码执行、容错,全由 Agent 引擎闭环完成。

结语:超越代码的工程洞见

好了,之前写架构解读,总有人说纸上谈兵。今天我虽然一行“业务代码”都没手敲,但亲自操刀指挥 AI 落地了这套将近 8000 行的架构,感触极深:

一、 评价与架构能力 > 编码能力你可以让 AI 写代码,但你必须懂架构。整个项目中,是否要用数据库?如何设计安全风控?采用什么 RAG 策略?这些高维度决策是 AI 无法替你做的。你和 AI 的关系,变成了架构师与高级程序员的配合。

二、 颗粒度对齐的艺术AI 经常会跑偏。怎么确认 AI 写的安全沙盒是真的生效了?这就需要你用测试用例(比如让它去删 C 盘)、检查 SQLite 数据落地情况,一步步把需求的颗粒度对齐。这也是新时代工程师的核心日常。

三、 垂直生态才是护城河不管是 OpenClaw 还是 Hermes,底层的 ReAct 原理大家都能抄。真正的壁垒在于“记忆系统”“垂直领域的 Skills 生态”。一个沉淀了数月通信工程排障经验的 Agent 记忆库,是任何通用大模型都无法取代的无价之宝。

接下来,我准备进一步扩充通信领域的专属 Skill 库。

这个小小的 Hermes-Desktop,也许就是我们走向下一个通用人工智能时代的缩影。