在 LangChain v1.0 的架构里,Deep Agents 已经成为实现那些需要多个步骤、逻辑复杂的智能体任务的重要工具,因为它不仅能自己把大任务拆成小任务、记住中间过程,还能在需要的时候调用更专业的子智能体,并且通过引入 Skills(技能)机制,让开发者可以像安装插件一样轻松给智能体加上新本事。
这篇文章会一步步教你如何在 Deep Agent 里加载和使用 SKILL,帮助你快速做出能用在实际项目中的 AI 应用。
Deep Agent 是什么?
Deep Agent 是 LangChain 团队推出的一个高级智能体运行框架,主要用来解决老式 Agent 在面对长时间、复杂任务时容易出错或者卡住的问题,它具备自动规划、本地存取中间数据、调用子智能体以及通过中间件扩展功能等核心能力。
SKILL 是什么?
SKILL 是一种轻量级的功能扩展方式,想法来自 Anthropic 的工具设计理念,每个 SKILL 通常由两部分组成:一个是叫 SKILL.md 的描述文件,用 YAML 格式写清楚这个技能叫什么、能干啥、需要什么输入、返回什么结果;另一个是具体的执行脚本(比如 arxiv_search.py),里面是一个真正的 Python 函数,负责完成实际工作。Agent 会通过 SkillsMiddleware 自动扫描指定目录,发现这些技能并加载它们,在需要时直接调用,完全不用在代码里硬编码工具列表。
第一步:安装依赖
先在命令行运行下面这行命令,把需要的包都装好:
pip install langchain-core langchain langchain-community deepagents
第二步:写一个 SKILL
我们拿“在 ArXiv 上搜索学术论文”当例子,在项目根目录下新建一个文件夹 skills/arxiv-search/,然后在里面放两个文件:
首先是 SKILL.md,注意这里必须用 YAML frontmatter 格式,不能写成表格:
--- name: arxiv_search description: 用关键词在 ArXiv 上找最新的学术论文 parameters: - name: query type: string description: 搜索用的关键词 output: 返回包含标题、摘要和链接的论文列表 ---
然后是 arxiv_search.py,这是真正干活的代码:
from arxiv import Search def arxiv_search(query: str): search = Search(query=query, max_results=3, sort_by="relevance") results = [] for r in search.results(): results.append({ "title": r.title, "summary": r.summary, "url": r.entry_id }) return results
第三步:创建 Deep Agent 并加载 SKILL
接下来写主程序,先初始化大模型(比如用通义千问的 Qwen),再创建 Agent 并告诉它去哪找技能:
from deepagents import create_deep_agent from langchain.chat_models import init_chat_model model = init_chat_model(model="qwen-max") agent = create_deep_agent( model=model, skills=["./skills"], # 指向刚才建的技能文件夹 instructions="你是一个科研助理,能帮用户找最新的学术论文。" )
⚠️ 注意:如果不同路径下有名字一样的 SKILL,后面加载的那个会把前面的盖掉。
第四步:运行 Agent
最后调用它试试看:
response = agent.invoke("帮我找三篇关于 LangChain Deep Agents 的最新论文") print(response)
这时候 Agent 会先理解你的请求,然后从 ./skills 目录里找到 arxiv_search 这个技能,自动调用对应的函数去 ArXiv 搜论文,再把结果整理成一段人话返回给你。
❌ 问题一:技能没被加载
最常见的原因是 SKILL.md 文件格式不对,比如用了 Markdown 表格而不是 YAML。解决办法很简单:确保文件开头和结尾都是三个短横线 ---,中间内容是合法的 YAML。
❌ 问题二:调用技能时报错
这通常是因为函数的参数名字或类型跟 SKILL.md 里写的不一致,或者缺少必要的第三方库。建议你先把脚本单独跑一遍,确认没问题再集成进 Agent。
✅ 好的做法
可以把不同用途的 SKILL 分门别类放在不同子文件夹里,比如 web-tools/ 放网络相关功能,email-utils/ 放发邮件的工具;同时配合 LangSmith 查看每一步的执行记录,方便排查问题;如果任务特别复杂,可以让主 Agent 调度多个 SKILL 和子 Agent 一起协作完成。
LangChain 的 Deep Agent 配合 SKILL 机制,提供了一种简单、灵活又容易复用的智能体开发方式,只要你把具体功能打包成标准技能,就能让 Agent 自动学会新本事,不仅提升了解决问题的能力,也让团队合作变得更顺畅。
建议:与其在旧版 LangChain 上不断打补丁,不如直接用 v1.0 和 Deep Agents 重新搭建你的项目,这样能用上更现代、更稳定的开发体验!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271522.html