1. 项目定位与用途
Deep Agents 是一个基于 LangChain 和 LangGraph 构建的“开箱即用”型 AI 智能体框架(agent harness)。它提供一个 opinionated、ready-to-run 的智能体,用户无需自行 wiring up prompts、tools 和 context management,即可直接获得一个功能完备的智能体,并在此基础上进行定制。项目包含 SDK 和 CLI 两种使用形式:SDK 通过 create_deep_agent 函数创建智能体,CLI 提供类似 Claude Code 的交互式终端体验,旨在降低复杂 AI 智能体应用的构建门槛。
2. 解决的问题
构建复杂 AI 智能体应用时,开发者通常需要手动集成和配置多个基础能力,如任务规划、文件系统操作、Shell 执行、子任务分解、上下文管理等,这一过程繁琐且容易出错。Deep Agents 将这些能力预置为一个完整的 harness,开箱即用,大大降低了集成成本。用户无需从零配置提示词、工具和上下文管理策略,直接获得一个经过优化的起点,从而能专注于业务逻辑而非基础设施,特别适合需要快速原型化或生产级部署的场景。
3. 适用场景
从项目 examples 目录可见,Deep Agents 适用于多种场景:自动化研究(deep_research 示例,调研并总结技术文档)、代码生成与修改(CLI 或 SDK 编码代理)、复杂任务分解与子智能体协同(async-subagent-server 示例展示异步子智能体模式)、数据库查询(text-to-sql-agent)、以及领域特定应用如 NVIDIA GPU 分析(nvidia_deep_agent)。此外,任何需要与本地文件系统交互、执行 Shell 命令、需要规划能力或委托子任务的自动化工作流均可受益。CLI 模式适合终端交互式操作,SDK 模式适合嵌入应用。
4. 安装方式
根据 README 的 Quickstart 部分,安装方式明确有两种:使用 pip 安装:`pip install deepagents`;或使用 uv 添加:`uv add deepagents`。对于 CLI 组件,提供一键安装脚本:`curl -LsSf https://raw.githubusercontent.com/langchain-ai/deepagents/main/libs/cli/scripts/install.sh | bash`。这些命令在仓库中直接给出,无需额外步骤。开发依赖可通过 examples 中的 pyproject.toml 查看,但核心安装仅需上述命令。
5. 使用方式
使用方式分为 SDK 编程和 CLI 命令行。SDK 基础用法:`from deepagents import create_deep_agent; agent = create_deep_agent(); result = agent.invoke({"messages": [{"role": "user", "content": "Research LangGraph and write a summary"}]})`。自定义方式:可在创建时传入 model、tools、system_prompt 等参数,例如指定 `init_chat_model("openai:gpt-4o")` 或添加自定义工具。CLI 使用:安装后直接运行 `deepagents` 命令启动交互式终端界面,支持网络搜索、无头模式等。此外,项目支持异步子智能体模式,通过设置 RESEARCHER_URL 环境变量指向子智能体服务器(参考 examples/async-subagent-server),以及外循环改进模式(Better Agent)用于评估反馈迭代。
6. 补充说明或实现特点
Deep Agents 基于 LangGraph 构建,create_deep_agent 返回一个编译好的 LangGraph 图,因此兼容 LangGraph 所有特性(流式、Studio、检查点器)。它支持 MCP(Model Context Protocol)通过 langchain-mcp-adapters 集成。架构上采用模块化后端设计,包括 FilesystemBackend、StateBackend、CompositeBackend。项目提供 ACP(Agent Client Protocol)服务器实现(libs/acp/deepagents_acp/server.py),兼容 Agent Protocol 标准。此外,包含外循环改进机制(Better Agent),能根据评估反馈自动编辑 harness 表面文件以提升性能。所有核心能力均开源 MIT 许可,provider agnostic,支持任何支持工具调用的 LLM。