Deep Agents 部署指南:10 分钟跑通最小版本,单服务器上线 Deep Research
【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents
Deep Agents 是基于 LangChain / LangGraph 的智能体框架,内置规划、文件系统、子代理委派与上下文管理。本文按部署路径分轨:本地 10 分钟跑通终端最小版,单服务器部署完整的 Deep Research 示例,生产侧覆盖依赖锁定、开机自启、追踪与调优四个检查点。
三条部署路径怎么选
做完这节,你会得到对号入座的结论:只读下文对应小节,其余跳过。
| 路径 | 运行形态 | 部署动作量 | 适用人群 |
|---|---|---|---|
| 本地尝鲜 | dcode 终端智能体,单进程 | 1 条安装命令 + 1 个模型密钥 | 想先看效果、验证模型接入的开发者 |
| 单服务器落地 | LangGraph 本地服务器 + Deep Research 示例 | 3 个密钥 + 1 次uv sync | 需要常驻跑研究任务的运维与开发者 |
| 生产部署 | 锁定依赖 + systemd + 追踪 | 在第 2 节基础上加 4 个检查点 | 面向团队或对外提供服务的场景 |
⚠️ 三条路径共同前置:Python ≥ 3.11(各包
requires-python声明为>=3.11),以及至少一个支持工具调用的模型 API 密钥。
10 分钟跑通终端最小版
做完这节,你会得到一个能直接对话的终端智能体 dcode,并用一条非交互命令验证它可用。
先确认 Python 版本:
python3 -V安装 dcode(Deep Agents Code,预构建的终端编码智能体):
curl -LsSf https://langch.in/dcode | bash该脚本默认带上 OpenAI、Anthropic、Gemini 三家模型客户端,按你使用的模型商设置对应密钥,例如:
export ANTHROPIC_API_KEY=你的密钥启动交互式 TUI,输入任务(如 "Summarize the README in this repo"),看流式输出,Ctrl+C中断:
dcode非交互验证(脚本与 CI 场景):
dcode -p "Say OK if the harness works."期望返回模型文本输出且进程正常退出。dcode 还支持--headless等参数用于脚本化,deepagents --version类自检可用dcode --help查看完整参数。若只打算以编程方式搭自己的 agent,可跳过 dcode,直接uv add deepagents并调用create_deep_agent(...),见 libs/deepagents/ 包源码。
本节约:10 分钟,一条安装命令加一个密钥。
单服务器落地:部署 Deep Research 示例
做完这节,你会得到一台能常驻运行的深度研究服务:提交问题 → 规划 → 委派子代理搜索 → 合成报告,全程在浏览器可见。
安装 uv 并克隆仓库:
curl -LsSf https://astral.sh/uv/install.sh | sh git clone https://gitcode.com/GitHub_Trending/de/deepagents cd deepagents/examples/deep_research安装示例依赖:
uv syncuv sync会在该目录生成.venv,并严格按 pyproject.toml 声明安装 deepagents、langgraph-cli、tavily 等依赖。创建.env(langgraph.json已声明"env": ".env"):
# .env ANTHROPIC_API_KEY=你的密钥 TAVILY_API_KEY=你的密钥 LANGSMITH_API_KEY=你的密钥 LANGSMITH_TRACING=true密钥用途:ANTHROPIC 驱动默认模型 Claude Sonnet 4.5,TAVILY 驱动网页搜索,LANGSMITH 用于追踪(可选,生产建议保留)。启动服务器:
uv run langgraph devlanggraph dev读取 langgraph.json 中的图入口./agent.py:agent,默认监听 2024 端口并自动打开 Studio 网页;换端口加--port 2025。提交一个研究问题,观察 agent 规划任务、派发 research-agent 子代理、调用tavily_search并输出最终报告。
本节约:3 个密钥,一条uv sync,浏览器里可交互的研究服务。
生产加固:锁定依赖、常驻服务与可观测
做完这节,你会得到四个可验收项:依赖版本锁死、服务重启后自动拉起、每次运行有追踪记录、并发参数受控。
依赖锁定。示例目录执行uv lock生成uv.lock并提交版本库;部署机上用uv sync按锁文件安装,保证构建可复现。pyproject.toml里已有override-dependencies处理已知 CVE,升级依赖时先跑uv sync验证。
密钥管理。.env建议chmod 600,密钥只在这一个文件里维护,服务单元通过EnvironmentFile引用。
systemd 服务化。创建/etc/systemd/system/deep-research.service:
[Unit] Description=Deep Research LangGraph Server After=network.target [Service] User=deepagent WorkingDirectory=/opt/deepagents/examples/deep_research EnvironmentFile=/opt/deepagents/examples/deep_research/.env ExecStart=/opt/deepagents/examples/deep_research/.venv/bin/uv run langgraph dev Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.targetRestart=on-failure负责开机后崩溃自愈,配合下面两条命令启用开机自启:
systemctl daemon-reload systemctl enable --now deep-research日志与追踪。journalctl -u deep-research -f看进程日志;.env中LANGSMITH_TRACING=true让每次运行生成 trace,用于定位慢请求和工具调用失败。
调优。examples/deep_research/agent.py 顶部两个常量控制成本:
| 参数 | 示例默认 | 生产建议 | 说明 |
|---|---|---|---|
max_concurrent_research_units | 3 | 1~2 | 并发子代理数,直接决定 API 并发开销 |
max_researcher_iterations | 3 | 2 | 单个子代理最大迭代轮数 |
模型温度示例中已固定为 0,保持即可;限流场景再把并发降到 1。
本节约:uv.lock+ systemd 单元 + trace + 两个并发参数。
选读:切换模型与注册自定义工具
做完这节,你会得到把默认 Claude 换成 Gemini、并给自己的 agent 加工具的改法。
切换模型:模型参数接受任意 LangChain chat model 对象,示例中 Claude 与 Gemini 的切换写法在 examples/deep_research/agent.py 第 48~51 行:
from langchain_google_genai import ChatGoogleGenerativeAI from deepagents import create_deep_agent agent = create_deep_agent( model=ChatGoogleGenerativeAI(model="gemini-3-pro-preview", temperature=0.0), )注册自定义工具:参考 examples/deep_research/research_agent/tools.py 中tavily_search的写法,用 LangChain 工具装饰器定义函数后,同时加入主 agent 与子代理的tools列表:
from langchain.tools import tool @tool def lookup_price(symbol: str) -> str: """查询股票报价。""" ... agent = create_deep_agent( model=model, tools=[lookup_price], subagents=[{"name": "researcher", "tools": [lookup_price], ...}], )子代理定义见 agent.py 中的research_sub_agent字典,结构即name/description/system_prompt/tools四键。
本节约:模型与工具都是构造参数,改参数不改框架。
排错速查
| 症状 | 原因 | 动作 |
|---|---|---|
启动即报缺ANTHROPIC_API_KEY或 401 | 密钥未设或失效 | 核对.env中export值;echo $ANTHROPIC_API_KEY确认非空 |
| Studio 打不开,端口报错 | 2024 被占用 | --port 2025换端口启动 |
uv sync解析冲突 | 锁文件与依赖声明不同步 | 重新uv lock后uv sync,必要时重建.venv |
| 流式输出中断 | 模型侧过载断流 | 保持客户端默认重试逻辑,不要手动关重试 |
| 搜索返回 403 | 目标站点反爬 | 工具侧已带 UA 抓正文(见tavily_search),持续 403 换用代理或放弃该源 |
| 子代理并发超限被限流 | 并发参数偏高 | 下调max_concurrent_research_units |
本节约:按症状对表,先定边界再动手。
收尾
一条uv sync、一个.env、一个 systemd 单元,Deep Agents 就能从本机 demo 走到常驻服务;先锁依赖,再谈扩展。
- 框架入口与导出清单:libs/deepagents/deepagents/init.py
- 生产参考实现:examples/deep_research/agent.py
- 示例总目录:examples/
【免费下载链接】deepagentsThe batteries-included agent harness.项目地址: https://gitcode.com/GitHub_Trending/de/deepagents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考