Deepagents实战:让AI代理自己拆解任务
【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents
Deepagents 是 LangChain 团队开源的智能体框架,几行代码就能跑出一个会自己规划、读写文件、把子任务委派给子代理的代理。它和直接搭 create_agent 的区别在于:规划、记忆、委派这些长任务脚手架默认装好了,不用自己拼中间件。
它到底能干什么 🔧
自动拆解多步骤任务
当你抛出一个复杂请求,比如"在 Chinook 数据库里,哪个员工创收最高",代理不会直接写 SQL。它会先用 write_todos 把任务拆成列表、查 schema、写查询、析结果四步,每步做完打上 in_progress 或 pending 标记。结果就是整条推理链路在 trace 里逐步可见,你能核对它有没有跑偏。
把子任务委派给独立子代理
当某个子任务会刷出大量中间产物、你又不想让主对话的上下文被撑爆时,代理会把这块活儿丢给一个子代理。子代理在独立的上下文窗口里干活,只把结论回传给主代理,中间结果不进主上下文。结果就是任务再长,主对话也不容易膨胀。
把中间产物落到文件系统
工具输出太长、装不进上下文窗口时,代理会把它们写到磁盘,文件就成了它的工作记忆。会话中途断了也没关系,文件还在,它读回来就能接着干。结果就是工作可以跨会话存续。
五分钟跑通第一个 Deepagents 例子 🚀
git clone https://gitcode.com/GitHub_Trending/de/deepagents cd deepagents/libs/deepagents uv sync uv run python -c "from deepagents import create_deep_agent; print('ok')"装完 SDK 后,create_deep_agent 的核心组装逻辑在 libs/deepagents/deepagents/graph.py,中间件在 middleware/、后端在 backends/、子代理相关逻辑也在 middleware/ 里。想直接看真实用例,examples/ 下有 text-to-sql、深度研究等现成代理。
不想写代码也能先体验:仓库自带一个终端编码代理 dcode(包名 deepagents-code),开箱即用,模型可以换成任何支持工具调用的 LLM。
Deepagents 设计上的几个关键选择 📐
为什么在 LangGraph 上叠 harness,而不是另写运行时?Deepagents 没有发明新运行时,create_deep_agent 只是在 create_agent 之上组装默认中间件、配置后端、子代理和 profile。这么做的理由是把流式、检查点、中断这些生产级能力直接借给 LangGraph,自己只负责"长任务需要哪些默认件"的判断。
为什么能力放在中间件而不是工具里?中间件能在模型调用前后、工具执行前后介入,可以改写工具列表和系统提示,还能压缩上下文。普通工具只有在模型已经选择调用它之后才会运行,改不了前面的请求。像上下文压缩、权限拦截这类能力,必须在模型看到东西之前就生效,所以只能做成中间件。
为什么用文件系统当记忆底座、给子代理隔离上下文?把中间产物写盘,等于给代理一块跨循环、跨会话都持久的记忆,长任务不会越聊越乱。
子代理各自带隔离的上下文窗口,主代理的上下文因此保持精简。
什么时候该用、什么时候不用
适合:一是企业里的长流程数据分析,比如运营、财务场景下要查库、处理文件、再产出报告的多步任务;二是要沙箱、要 shell、要规划的编码或运维任务,想要一个 Claude Code 风格的终端代理,但又不想被绑死在单一模型上。
不适合:如果只是单轮问答或固定流程的工具调用,用更轻量的 create_agent 加几个工具就够了,Deepagents 的规划、子代理、上下文管理在这里是多余的,还平添延迟。
适合想少写脚手架、专注业务逻辑的开发者。现在去 examples/ 挑个例子,跑起你的第一个代理。
【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考