大家好,我是双越。wangEditor 作者,前百度 滴滴 资深前端工程师,慕课网金牌讲师,PMP,前端面试派 作者。
开始
我正在开发一个 AI Agent 项目 智语 一个 AI Agent 个人助手,类似于 Openclaw 小龙虾。
包括 tools skills memory context permission subagent session command hook MCP-server ... 等 Agent 基础能力。
你可以和它聊天、让它读写文档、配置 Skills 、设置定时任务、使用 MCP server 发送消息...
如果你也想和我一起从 0 开发一个 AI Agent ,可以私信我~

本文分享一下我在开发过程中遇到的一些实际问题,和注意事项,供大家参考。
急于完善 Chat 功能
初学 Agent 开发的同学,尤其是想着急做出一个 demo 或者项目,就会过于看中 Chat 聊天功能。
于是,刚开始接入 LLM 接口,成功发送了第一个请求,然后就开始考虑完善 Chat 功能。
其实在 Agent 开发中,Chat 功能并不重要,甚至 Chat 都不是 Agent 项目的一部分,它更多的是 UI 前端部分的功能。
我之前分享过一篇文章《别再把 AI Agent 当作聊天机器人了》里面讲过 Agent 和 Chat 的几个主要区别,初学者要学会区分。
正确的做法是,按照 Agent 的架构设计来做,Chat 作为独立的模块 和 Agent 解藕。例如 智语 项目的功能模块如下,Agent 包含这些模块,但不能包含 Chat

Skills 配置在代码库中
我一开始设计 Skills 功能的时候,没有没有考虑到最后发布、安装,用户使用的真实场景。
我就把 Skills 放在代码库中了,而且在 build 时候,还把这些个 Skills 文件夹拷贝到 dist 目录下。

后来发现这样不行,用户安装使用,如果要安装新 skill ,是不会考虑代码库的。
我应该像 OpenClaw 小龙虾一样,开辟自己的工作空间目录 ~/.zhitalk ,所以配置都放在这里。
现在 Skills 也存储在工作空间,分两个目录:
- 安装的第三方 skill 放在
.agents/skills目录 - 用户自己创建的 skill 放在
skills目录

同理,MCP Server 和 Hooks 的配置,现在也都放在工作空间目录的配置文件中 ~/.zhitalk/zhitalk.json

使用 markdown 文件存储记忆
记得最早接触 Openclaw 小龙虾的时候,它是使用一个 memory.md 来存储用户记忆的。
所以我最早开始设计 智语 项目的时候,也想用这种方式,用一个 markdown 记忆文件。
但我很快发现这种方式有问题,它会把所有的记忆都混合在一起,而且随着使用越来越难以管理。
记忆应该分层,不同层级管理不同的记忆,分开管理
- short-term memory 短期记忆,只在本次 session
- long-term memory 长期记忆,跨 session
- profile 个人信息,全局生效
对于长期记忆,应该使用 sqlite 结构结构化存储,这样才便于增删改查。

无脑压缩 Context
每次调用 AI 请求时 Context 如果多了,会出现各种问题,我在之前的博客中分享很多次了。
一个成熟的 Agent 应该有 Context 压缩能力,否则随着聊天记录增多,Context 会越来越大。
很多初学者压缩 Context 的方法就是简单粗暴的:截取前 xx 条。
这样做虽然高效,但会丢失掉很多之前的信息,影响 short-term memory 短期记忆。
我为 智语 项目设计了 4 层 Context 压缩机制,再配合记忆功能,内容几乎没有缺失。
- 压缩 tool 输出, persist tool output
- 压缩 tool message
- 超过 80% 压缩整个
- 超过 300 条 message 再截取
你可以调用 /compact 命令手动压缩,也可以等待 Context 使用超过 80% 自动压缩

权限打扰用户
我们都知道 Agent 需要考虑权限和安全,尤其是 tool 调用的时候,不能让 LLM 随意发挥。
初学者对于权限的设计可能就是不断的:找用户确认。但凡有不确定的就抛给用户。
这种是一种很不负责任的设计方式,也会因为频繁打扰用户而降低用户体验。
在 智语 项目中有非常详细的权限设计,总结下来大概有三种类型,尽量减少打扰用户
- 危险的操作直接拒绝,不到扰用户
- 安全的操作直接通过,也不打扰用户
- 其他操作,无法判断安全风险的,会交给用户确认

总结
以上就是我开发 智语 项目遇到过的几个问题,是真实体验和记录,不是 AI 生成的。
如果你也需要开发 AI Agent 可以参考本文,不要重复踩坑。
我会继续分享 AI Agent 、AI 编程相关的内容,欢迎点赞关注~