Agent
单智能体= 大语言模型(LLM) + 观察(obs) + 思考(thought) + 行动(act) + 记忆(mem)
多智能体=智能体 + 环境 + SOP + 评审 + 通信 + 成本
多智能体优点:
- 多视角分析问题:虽然LLM可以扮演很多视角,但会随着system prompt或者前几轮的对话快速坍缩到某个具体的视角上;
- 复杂问题拆解:每个子agent负责解决特定领域的问题,降低对记忆和prompt长度的要求;
- 可操控性强:可以自主的选择需要的视角和人设;
- 开闭原则:通过增加子agent来扩展功能,新增功能无需修改之前的agent;
- (可能)更快的解决问题:解决单agent并发的问题;
缺点:
- 成本和耗时的增加;
- 交互更复杂、定制开发成本高;
- 简单的问题single Agent也能解决;
多智能体能解决的问题:
- 解决复杂问题;
- 生成多角色交互的剧情;
Multi-Agent并不是Agent框架的终态,Multi-Agent框架是当前有限的LLM能力背景下的产物,更多还是为了解决当前LLM的能力缺陷,通过LLM多次迭代、弥补一些显而易见的错误,不同框架间仍然存在着极高的学习和开发成本。随着LLM能力的提升,未来的Agent框架肯定会朝着更加的简单、易用的方向发展。
agent 友好的代码库
核心问题是:如果把一个 Agent 放进你的代码库,它能理解正在发生什么吗?
Agent 友好型代码库的核心原则
1. 测试是合约
Agent 靠什么确认自己没有搞坏东西?靠测试。
核心观点:
- 测试是定义软件正确性的合约
- 测试覆盖不够 = 没有给 Agent 立规矩
- Agent 只能基于显式定义的合约来运作
实践要求:
- 80%+ 测试覆盖率(硬性要求,不是建议)
- 测试先于功能实现(TDD)
- 测试要覆盖边界条件和错误场景
2. README 和代码必须一致
代码说一回事,README 说另一回事 → Agent 会犯迷糊。
核心观点:
- README 和代码脱节是常见问题
- Agent 读到互相矛盾的描述时不知道该听谁的
- Agent 快速复合错误:第一步误解 → 在错误基础上加倍错下去 → 意面代码(spaghetti code)
实践要求:
- README 是代码的真实反映
- 代码更新时同步更新文档
- 示例代码必须可运行
3. 设计模式要一致
如果代码库中用两种不同的方式做同一件事,Agent 不知道该选哪个。
核心观点:
- 同一种对象应该用同一种 API 创建
- 设计模式不一致 → Agent(和人类)都会困惑
- “如果我走进你的代码库看到两种不同的做法,我也会问:该用哪个?”
实践要求:
- 统一的代码风格
- 统一的架构模式
- 统一的命名约定
- 统一的错误处理方式
4. 代码库本身要搞对
在你让 Agent 写代码之前,先把代码库本身搞对。
核心观点:
- Agent 看到的第一版代码必须是自洽的
- 设计完善
- 测试充分
实践要求:
- 代码审查不能只看 Agent 写的新代码
- 要看整体代码库的一致性
- 重构比新功能更重要
Agent 友好的代码库,其实就是对人也友好的代码库。
好的工程实践没有变,只是在 Agent 时代变成了硬性要求,而不是”最好这么做”的建议。
参考资料
- Agent调研—19类Agent框架对比 - 掘金
- 你的Agent稳定吗?——基于大模型的AI工程实践思考
- Manus工作原理揭秘:解构下一代AI Agent的多智能体架构
- Manus 开源复刻框架 OWL,测评和使用教程来了! | BestBlogs.dev
- Google 白皮书核心解析:AI Agent 落地开发全指南
- You Should Write An Agent · The Fly Blog
- # 如何设计一个AI Agent系统
- AI Agent 开发实践:从 Function Call 到 Unix 命令行模式的演进 | BestBlogs…