我开发 AI Agent 项目踩过的 5个坑

大家好,我是双越。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 压缩机制,再配合记忆功能,内容几乎没有缺失。

  1. 压缩 tool 输出, persist tool output
  2. 压缩 tool message
  3. 超过 80% 压缩整个
  4. 超过 300 条 message 再截取

你可以调用 /compact 命令手动压缩,也可以等待 Context 使用超过 80% 自动压缩

权限打扰用户

我们都知道 Agent 需要考虑权限和安全,尤其是 tool 调用的时候,不能让 LLM 随意发挥。

初学者对于权限的设计可能就是不断的:找用户确认。但凡有不确定的就抛给用户。

这种是一种很不负责任的设计方式,也会因为频繁打扰用户而降低用户体验。

智语 项目中有非常详细的权限设计,总结下来大概有三种类型,尽量减少打扰用户

  • 危险的操作直接拒绝,不到扰用户
  • 安全的操作直接通过,也不打扰用户
  • 其他操作,无法判断安全风险的,会交给用户确认

总结

以上就是我开发 智语 项目遇到过的几个问题,是真实体验和记录,不是 AI 生成的。

如果你也需要开发 AI Agent 可以参考本文,不要重复踩坑。

我会继续分享 AI Agent 、AI 编程相关的内容,欢迎点赞关注~

相关推荐
怕浪猫1 小时前
第2章 核心技术栈:大语言模型与Prompt工程
openai·agent·ai编程
晓得迷路了2 小时前
栗子前端技术周刊第 134 期 - React Router v8、TypeScript 7 RC、React Native 0.86...
前端·javascript·react.js
Carson带你学Android2 小时前
Android 17 正式发布:AI 终于成了系统能力
android·前端·ai编程
倔强的石头_2 小时前
QClaw 实践应用:把 QQ 私聊配置成一个可用的 AI Agent 入口
agent
xiezhr2 小时前
折腾了半小时,终于让AI能帮我写飞书文档了
人工智能·agent·ai编程
Mike_jia2 小时前
ZbxTable:Zabbix开源报表神器,从运维数据到决策洞察的最后一公里
前端
葫芦和十三2 小时前
图解 MongoDB 06|模式演进:无 schema 是优势还是债
后端·mongodb·agent
Artech2 小时前
[MAF预定义的AIContextProvider-04]Mem0Provider——长期记忆基于的云端解决方案
ai·agent·maf·aicontextprovider·chathistorymemoryprovider·mem0provider
葫芦和十三10 小时前
图解 MongoDB 05|文档模型设计:内嵌 vs 引用,反范式不是免费午餐
后端·mongodb·agent