
你的Agent为何如此愚蠢?顶级AI应用的秘密,都在这套“Deep Agents”架构里!
今天给家人们分享一些“真”Agent实操经验~
你们有没有觉得,自己按照各种教程搭出来的的AI Agent总是有点智障?
让它干点复杂任务,分分钟就把自己绕晕了。
为什么像 Manus、Claude Code 这样的顶级应用如此强大?
难道只是因为他们提前做了一个TODOLIST吗?
我们需要知道一个新的概念: 我们要做 Deep Agent 而非 Shallow Agent。
告别“浅层”,拥抱“深度”
大多数人构建Agent的方式,说白了就是一个LLM在循环调用工具。 ReAct的模式。
这个模式很简单,但天花板也极低。一旦任务复杂、时间一长,它就彻底懵圈,因为它缺乏长期规划和复杂任务的拆解能力。
这可能就是Shallow Agent,或者叫浅层智能体。
而像 Claude Code 和 OpenAI 的 Deep Research 这样的应用,之所以能处理复杂的编码和研究任务,就是在简单的循环之上,需要做更多的事情~
一个标准的深度Agent架构应该长虾米那这个样子。
秘密一:冗长又啰嗦的System Prompt
Prompt工程远未过时!
Claude Code的系统提示词,早就被hack出来了。它长得离谱,里面包含了大量关于如何使用工具的详细指令,甚至还有各种情况下的 Few-shot 示例。
https://github.com/kn1026/cc/blob/main/claudecode.md
1700行的Prompt, 这证明了,想让AI干好活,就不能怕啰嗦,必须把规则和期望喂到它嘴里。
秘密二:一个什么都不做的规划工具
这是最有意思的一点。
Claude Code 有一个“待办事项(Todo list)”工具,但这玩意儿其实是个“空操作”!
也就是说,Agent调用了它,但它实际上什么也没执行,只是把“我要做A、B、C”这个想法返回给了Agent自己。
这是在干嘛?其实这是一种上下文工程(Context Engineering)技巧。
通过让Agent“假装”在规划和列清单,强制它在行动前思考和拆解任务,从而把规划步骤保留在上下文中,引导后续的每一步行动。
https://claudelog.com/faqs/what-is-todo-list-in-claude-code
说白了,就是给Agent装了个思考辅助器,让它自己跟自己对齐。
秘密三:委派任务的Sub Agents
顶级应用从不指望一个Agent干所有事。
Claude Code可以根据任务派生出专门的Sub-agents。比如,一个主Agent Orchestrator负责整体协调,然后把代码编写、文件检索等具体任务外包给不同的专家子Agent。
这样做的好处是 上下文隔离。每个子Agent只专注于自己的小任务,不会被全局的复杂信息干扰,从而能更深入地解决特定问题。
秘密四:作为“共享记忆”的文件系统
对于需要长时间运行的复杂任务,上下文窗口是远远不够的。所以,深度智能体必须能读写文件系统。
文件系统不仅是最终交付代码的地方,更是一个持久化的“草稿纸”和“共享工作区”。
主Agent和子Agent都可以随时把中间结果、笔记、思考过程写入文件,需要时再读出来。这解决了Agent 记忆太短的问题,让长期、多步的协作成为可能。
最后
光说不练假把式。为了让大家能快速上手这套架构,周末肝了一个开源包 deepagents,把上面这四套核心机制都封装好了。
你可以用 pip install deepagents
安装。
内置了受Claude Code启发的系统提示、Todo规划工具、派生子Agent的能力,甚至还有一个虚拟文件系统,让你安全地在内存中读写文件。
from deepagents import create_deep_agent
# 定义Agent可以使用的工具
tools = [your_custom_tool1, your_custom_tool2]
# 为Agent创建指令
instructions = "你是一位专家研究员。你的工作是..."
# 创建Agent
agent = create_deep_agent(tools, instructions)
# 调用Agent
result = agent.invoke({"messages": [{"role": "user", "content": "你的任务"}]})
有了这个轮子,我们就可以把精力放在定义自己的指令、工具和子代理上,为特定场景打造真正强大的Agent。
本文转载自探索AGI,作者:猕猴桃
