AI 智能体正变得越来越有用,因为它们不再只是回答问题,而是开始从头到尾地处理任务。LangChain Deep Agents 通过帮助智能体拆解工作、使用不同工具、管理信息以及协调较小的任务,赋予了更多的控制力和灵活性。这使得构建能够处理真实工作流、无需持续人工指导的智能体变得更容易。让我们来看看 LangChain Deep Agents 的工作原理以及可以用它构建哪些内容。
什么是 LangChain Deep Agents?
LangChain Deep Agents 是一个基于 LangChain 核心构建模块和 LangGraph 运行时构建的智能体框架。它在标准智能体工作流的基础上扩展了文件系统访问、子智能体委派、规划、记忆和人工介入支持等内置能力。Deep Agents 使用结合推理、工具调用和迭代执行的智能体循环,因此适合处理需要多个步骤、大量上下文和协同工作流的复杂任务。
与主要在简单循环中调用工具的基础智能体不同,Deep Agents 为处理长时间运行的任务提供了额外的基础设施。它们可以管理文件、将工作委派给专门的子智能体、在复杂工作流中保持上下文,并在必要时允许人工介入。这些内置能力减少了构建高级智能体系统时所需的定制开发工作量。
LangChain Deep Agents 的工作原理
当 Deep Agent 接收到任务时,它会分析请求并规划完成任务所需的步骤,然后使用搜索、代码执行或文件系统操作等可用工具来收集信息并执行操作。
在执行过程中,Deep Agents 通过读写文件来管理上下文。它们不会把所有中间结果都保留在对话历史中,而是可以将大量信息存储在外部,并在需要时检索。这种方式帮助智能体处理更长的工作流,同时减少上下文窗口大小带来的限制。
对于涉及多个工作领域的复杂任务,Deep Agents 可以将特定子任务委派给专门的子智能体。每个子智能体专注于一个明确的目标,并将相关结果返回给主智能体。主智能体随后整合子智能体的输出、检索到的信息以及存储的文件,生成完整、连贯的响应。
凭借规划、工具使用、文件系统管理、子智能体协作和人工监督等功能,LangChain Deep Agents 为构建能够处理多步骤真实任务的更强大 AI 系统提供了基础。
Deep Agents 的核心能力:规划、工具与执行
Deep Agents 可以处理需要多个步骤、决策和操作的任务。其核心功能帮助它们规划工作、使用合适的工具,并以更少的人工干预高效完成每一步。让我们详细了解这些能力:
任务规划
任务规划使智能体能够在执行过程中创建和管理结构化的任务列表。智能体不必将复杂目标当作单一指令来处理,而是可以将其拆分为更小的步骤,跟踪进度,并在整个工作流中更新任务状态。
何时使用规划功能
较长或复杂的多步骤任务
受益于明确进度跟踪和结构化执行的任务
从智能体状态中实时展示进度的界面
如何启用
将 TodoListMiddleware 传入 middleware 参数。这会为智能体提供一个 write_todos 工具,用于维护带有状态跟踪(pending、in_progress、completed)的结构化任务列表。
from deepagents import create_deep_agent
from deepagents.middleware import TodoListMiddleware
agent = create_deep_agent(
model="your-model",
middleware=[TodoListMiddleware()],
)任务会持久保存在智能体状态中,为智能体组织长时间运行的工作提供一个轻量级的规划层。
虚拟文件系统工具
Deep Agents 提供可配置的虚拟文件系统,其后端可插拔,支持内存状态、本地磁盘、LangGraph 存储、复合路由,或带有权限规则的自定义后端。
内置文件系统工具
| 工具 | 说明 |
|---|---|
ls | 列出目录中的文件及其元数据(大小、修改时间) |
read_file | 读取带行号的文件内容;支持通过 offset/limit 处理大文件;对图片、视频、音频和文档还会返回多模态内容块 |
write_file | 创建新文件或覆盖已有文件 |
edit_file | 对文件执行精确字符串替换(支持全局替换模式) |
delete | 递归删除文件或目录 |
glob | 按模式查找文件(例如 **/*.py) |
grep | 以多种输出模式搜索文件内容 |
execute | 在环境中运行 shell 命令(仅限沙箱后端) |
支持的多模态扩展名
图片:
.png、.jpg、.jpeg、.gif、.webp、.heic、.heif视频:
.mp4、.mpeg、.mov、.avi、.flv、.mpg、.webm、.wmv、.3gpp音频:
.wav、.mp3、.aiff、.aac、.ogg、.flac文档:
.pdf、.ppt、.pptx
文件系统权限
该框架支持声明式权限规则,用于控制智能体可以读取或写入的文件和目录。规则按从上到下的顺序评估,采用首次匹配即生效的语义。
from deepagents import create_deep_agent
agent = create_deep_agent(
model="anthropic:your-model",
permissions=[
{"operations": ["read", "write"], "paths": ["/workspace/**"], "mode": "allow"},
{"operations": ["read"], "paths": [".env", "**/secrets/**"], "mode": "deny"},
],
)from deepagents import create_deep_agent
agent = create_deep_agent(
model="anthropic:your-model",
permissions=[
{"operations": ["read", "write"], "paths": ["/workspace/**"], "mode": "allow"},
{"operations": ["read"], "paths": [".env", "**/secrets/**"], "mode": "deny"},
],
)这样你可以将智能体限制在特定目录内,保护敏感文件,并让子智能体的访问权限比父智能体更窄。
限制工具访问
你可以通过向 FilesystemMiddleware 传入 tools 允许列表,仅开放部分文件系统工具。read_file 必须始终包含在内。
from deepagents import create_deep_agent
from deepagents.middleware import FilesystemMiddleware
# Read-only agent
agent = create_deep_agent(
model="your-model",
middleware=[
FilesystemMiddleware(backend=backend, tools=["read_file", "ls", "glob", "grep"]),
],
)from deepagents import create_deep_agent
from deepagents.middleware import FilesystemMiddleware
# Read-only agent
agent = create_deep_agent(
model="your-model",
middleware=[
FilesystemMiddleware(backend=backend, tools=["read_file", "ls", "glob", "grep"]),
],
)子智能体(委派)
该框架内置了 task 工具,可让主智能体创建临时子智能体,用于处理隔离、长时间运行、多步骤或并行的任务。
关键特性
全新上下文: 每次调用都会创建一个拥有独立上下文的新智能体实例
自主执行: 子智能体独立运行直至完成
单次交接: 子智能体只向主智能体返回一份最终报告
可配置策略: 可使用默认的
general-purpose子智能体,也可以自定义子智能体上下文效率: 繁重的子任务工作保持隔离,并被压缩为简洁的结果
禁用子智能体
若要运行不带 task 工具的智能体,请通过 harness profile 禁用自动添加的子智能体,并通过 subagents= 不传入任何同步子智能体。请勿尝试通过 excluded_middleware 移除 SubAgentMiddleware——该操作会被有意拒绝。
工具调用能力
Deep Agents 支持三类工具:
自定义函数与 LangChain 工具
通过 tools= 参数直接传入自定义函数或 LangChain 工具:
from deepagents import create_deep_agent
def get_weather(city: str) -> str:
"""Get weather for a given city."""
return f"It's always sunny in {city}!"
agent = create_deep_agent(
model="your-model",
tools=[get_weather],
system_prompt="You are a helpful assistant",
)from deepagents import create_deep_agent
def get_weather(city: str) -> str:
"""Get weather for a given city."""
return f"It's always sunny in {city}!"
agent = create_deep_agent(
model="your-model",
tools=[get_weather],
system_prompt="You are a helpful assistant",
)MCP(模型上下文协议)
Deep Agents 完全支持 MCP,让你可以通过标准接口连接数据库、API、文件系统等。
代码执行
沙箱后端: 在隔离环境中暴露一个用于执行 shell 命令的
execute工具解释器: 添加一个
eval工具,在受限的 QuickJS 运行时中执行 JavaScript,用于轻量级的可编程层
随着这些能力整合到一起,驱动智能体的语言模型也成为整体架构中的重要一环。一个能力强的模型可以帮助 Deep Agents 理解指令、对任务进行推理,并更好地利用可用的工具。Kimi API 可以提供这一模型层,因此使用它来构建更强大的 Deep Agent 工作流是很自然的下一步。
6 步将 Kimi API 接入 LangChain Deep Agents
一个能力强的模型能为你的 Deep Agent 提供有效处理任务所需的语言理解和推理能力。Kimi API 可以提供这些能力,同时智能体负责调用工具、管理任务和处理复杂指令。有了模型层之后,接下来自然就是将 Kimi API 与 LangChain Agents 连接起来。下面是将 Kimi API 接入 LangChain Deep Agents 的方法:
第 1 步:获取 Kimi API Key
登录 Kimi API 开放平台 并创建一个新的 API key。复制并妥善保存该 key,因为你需要将它添加到 Deep Agents 的配置中。这个 API key 用于验证你的请求,使 LangChain 的 Deep Agents 能够通过 API 访问 Kimi 模型。
第 2 步:设置环境变量
将你的 Kimi API key 设置为环境变量。Kimi API 使用 Moonshot API 接口地址,因此需要配置以下变量:
export MOONSHOT_API_KEY="your-api-key-here"export MOONSHOT_API_KEY="your-api-key-here"API 基础 URL 为:
https://api.moonshot.ai/v1
``````text
https://api.moonshot.ai/v1第 3 步:安装依赖
安装 Deep Agents 以及所需的 LangChain 依赖:
pip install deepagents langchain-openaipip install deepagents langchain-openai由于 Kimi API 兼容 OpenAI API,langchain-openai 可以让 LangChain 通过兼容 OpenAI 的接口连接到 Kimi 模型。
如果你想为 Deep Agent 添加联网搜索能力,可以选择安装 Tavily:
pip install tavily-pythonpip install tavily-python在 Tavily 平台创建 Tavily API key 后,将其设置为环境变量:
export TAVILY_API_KEY="your-tavily-api-key"export TAVILY_API_KEY="your-tavily-api-key"只有当你计划为智能体添加联网搜索工具时,才需要用到 Tavily。
第 4 步:使用 Kimi API 配置 Deep Agent
由于 Kimi API 兼容 OpenAI API 格式,你可以通过 init_chat_model 将其接入 LangChain Deep Agents。
以下示例创建了一个由 Kimi 驱动的基础 Deep Agent。你可以选择性地为其扩展诸如联网搜索之类的工具。
由 Kimi 驱动的基础 Deep Agent
from os import environ
from deepagents import create_deep_agent
from langchain.chat_models import init_chat_model
kimi_model = init_chat_model(
"kimi-k3",
api_key=environ["MOONSHOT_API_KEY"],
base_url="https://api.moonshot.ai/v1",
temperature=0.7,
)
agent = create_deep_agent(
model=kimi_model,
system_prompt="""You are an expert assistant.
Your job is to solve tasks with structured reasoning and provide clear outputs.
""",
)from os import environ
from deepagents import create_deep_agent
from langchain.chat_models import init_chat_model
kimi_model = init_chat_model(
"kimi-k3",
api_key=environ["MOONSHOT_API_KEY"],
base_url="https://api.moonshot.ai/v1",
temperature=0.7,
)
agent = create_deep_agent(
model=kimi_model,
system_prompt="""You are an expert assistant.
Your job is to solve tasks with structured reasoning and provide clear outputs.
""",
)添加联网搜索能力(可选)
要启用联网搜索,可以连接像 Tavily 这样的搜索工具:
from tavily import TavilyClient
tavily_client = TavilyClient(
api_key=os.environ["TAVILY_API_KEY"]
)
def internet_search(query: str, max_results: int = 5):
"""Run a web search"""
return tavily_client.search(
query=query,
max_results=max_results
)
agent = create_deep_agent(
model=kimi_model,
tools=[internet_search],
system_prompt="""You are an expert researcher.
Use the internet search tool when additional information is required.
""",
)from tavily import TavilyClient
tavily_client = TavilyClient(
api_key=os.environ["TAVILY_API_KEY"]
)
def internet_search(query: str, max_results: int = 5):
"""Run a web search"""
return tavily_client.search(
query=query,
max_results=max_results
)
agent = create_deep_agent(
model=kimi_model,
tools=[internet_search],
system_prompt="""You are an expert researcher.
Use the internet search tool when additional information is required.
""",
)通过这一配置,Deep Agents 可以将 Kimi 作为推理模型,同时借助 Tavily 使用外部搜索能力。
第 5 步:运行由 Kimi 驱动的 Deep Agent
配置好 Kimi 驱动的 Deep Agent 后,运行该智能体,测试它处理任务和工具调用的表现。
result = agent.invoke(
{"messages": [{"role": "user", "content": "What is LangGraph?"}]}
)
print(result["messages"][-1].content)result = agent.invoke(
{"messages": [{"role": "user", "content": "What is LangGraph?"}]}
)
print(result["messages"][-1].content)第 6 步:启用 LangSmith 跟踪(可选)
LangSmith 跟踪可以帮助你监控智能体的执行过程,包括工具调用、中间步骤和模型响应。
通过以下环境变量启用跟踪:
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY="your-langsmith-api-key"export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY="your-langsmith-api-key"当你需要更深入地了解智能体工作流、进行调试或性能分析时,可以使用 LangSmith。
使用 Kimi API 的优势
将 Kimi API 与 Deep Agents 连接,可以让复杂的工作流变得更强大,也更易于管理。这种组合能让智能体拥有更强的推理能力,同时可以使用工具、处理文件并完成多项任务。让我们来看看这一配置能带来的几项关键优势:
提升智能体的推理和任务执行能力
Kimi 模型具备强大的语言理解和推理能力,能帮助 Deep Agents 分析复杂指令、拆解任务,并生成更准确的响应。这让智能体在处理多步骤工作流时更加高效,也无需过多人工引导。
构建更强大的 AI 工作流
将 Kimi API 接入 Deep Agents 后,开发者可以把 Kimi 的模型能力与 LangChain 支持的工具、文件系统和外部集成结合起来。这使智能体能够在统一的工作流中完成研究、文档处理、代码分析和数据处理等任务。
用自主智能体应对复杂任务
由 Kimi 驱动的 Deep Agents 可以通过制定计划、使用工具以及在需要时委派子任务,来管理长时间运行的任务。这让构建能够完成复杂工作流、同时减少重复性人工操作的 AI 应用变得更加容易。
结语
构建可靠的 AI 智能体,首先要为复杂工作流选择合适的基础架构。LangChain Deep Agents 提供了创建智能体所需的工具和结构,让智能体能够以更少的人工干预完成规划、使用工具、管理上下文以及处理多步骤任务。搭配合适的模型和配置,开发者可以将先进的智能体构想转化为实际应用。通过接入 Kimi API,你还可以借助强大的推理能力和长上下文能力进一步增强 Deep Agent 工作流。现在就开始探索 Kimi API,看看用 AI 智能体能构建出什么。