惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
量子位
博客园 - 叶小钗
AI
AI
T
Tor Project blog
Forbes - Security
Forbes - Security
W
WeLiveSecurity
博客园_首页
爱范儿
爱范儿
J
Java Code Geeks
B
Blog
G
GRAHAM CLULEY
aimingoo的专栏
aimingoo的专栏
Cloudbric
Cloudbric
C
CXSECURITY Database RSS Feed - CXSecurity.com
TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
H
Help Net Security
博客园 - 三生石上(FineUI控件)
C
Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 司徒正美
The Last Watchdog
The Last Watchdog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
S
Secure Thoughts
Spread Privacy
Spread Privacy
F
Fortinet All Blogs
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog

博客园 - 哥本哈士奇(aspnetx)

Raw Data Vault vs Business Data Vault Neo4j 多跳查询实战:从社交网络场景理解图遍历 Git 本地版本管理学习笔记 看完《低智商犯罪》,学习Cypher构建知识图谱 LangChain DeepAgents 学习笔记 LangChain Deepagent 版本0.6.1中间件一个bug Neo4j笔记(五):查询的处理流程 微软 SQL Server 版本演进史:从诞生到 SQL Server 2025 提升 Text2SQL 准确率 SQLServer Management Studio(SSMS) 22 Copilot 最佳实践学习笔记 SQLServer RAG笔记4:从服务层到前端交互 SQLServer RAG笔记5:为SQLServer 2025配置Ollama SQL Server RAG 笔记3:SQLServer2025 向量数据库 详解传统RAG、Text2SQL、Graph RAG:适用场景与问题示例汇总 SQL Server RAG 笔记2:图数据库服务层与前端可视化构建 SQL Server RAG 笔记1:图数据库构建 Neo4j 笔记(四):一篇文章如何入库的 数据仓库笔记 第六篇:PSA 层 SCD2 处理方式 数据仓库笔记 第五篇:Data Mart 层(数据集市) 数据仓库笔记 第四篇:Star Schema 层(维度建模) 数据仓库笔记 第三篇:常用缓慢变化维处理方式介绍 数据仓库笔记 第二篇:PSA 层(持久化暂存区)详解 数据仓库笔记 第一篇:数据仓库的定义、历史与意义 Neo4j 笔记(三):数据建模与程序连接实战 Neo4j 基础教程(二):Cypher CRUD 完全指南 Neo4j 基础教程(一):安装与快速入门 Power BI学习笔记第20篇:面试题汇总 · 第三篇:高级应用与最佳实践篇 Power BI学习笔记第19篇:面试题汇总 · 第二篇:数据建模与 DAX 篇 Power BI学习笔记第18篇:面试题汇总 · 第一篇:基础概念篇 Power BI学习笔记第15篇:企业级报表开发与最佳实践 Power BI学习笔记第13篇:高级可视化与自定义图表 Power BI学习笔记第14篇:Power Query 高级数据处理 Power BI学习笔记第12篇:DAX 高级计算与性能优化 Power BI学习笔记第11篇:高级数据建模与关系设计 Power BI学习笔记第10篇:实战案例 — 销售数据分析仪表板 Power BI学习笔记第08篇:报表交互与筛选器 Power BI学习笔记第09篇:Power BI Service 发布与共享 Power BI学习笔记第07篇:可视化图表设计与最佳实践 Power BI学习笔记第06篇:DAX 进阶:时间智能与复杂计算 Power BI学习笔记第05篇:DAX 基础:计算列与度量值 Power BI学习笔记第04篇:数据建模与关系管理 Power BI学习笔记第03篇:Power Query 数据清洗与转换 Power BI学习笔记第02篇:数据获取与连接数据源 Power BI学习笔记第01篇:Power BI 简介与环境搭建 Power BI Dashboard 常用布局方案推荐 Power BI 示例一览 OpenClaw 核心八大 MD 文件 Microsoft Agent Framework 智能体调用工具 Microsoft Agent Framework 创建智能体 一个简单案例理解OpenClaw的做梦过程 SQLAlchemy 学习笔记 LangChain RAG索引与查询 - 学习笔记 本地系统对接大模型智能体的若干尝试 财务分析报告 - 常用Power BI DAX公式详解 用SKILL实现请假流程信息收集 使用小龙虾来操作猿编程的遥控车 使用OpenClaw的Skills对接本地系统 OpenClaw必装Skill全指南 Dify Agentic RAG 笔记 # 简单的神经网络计算过程 - 正负判断 使用Gradio构建AI前端 - RAG的QA模块 使用Gradio构建AI前端 - RAG召回测试 Streamlit + LangChain 1.0 简单实现智能问答前后端 利用AI Agent,辅助销售团队制定培训和考试内容 实现AI和BI整合的初步思路和探索-Part3 实现AI和BI整合的初步思路和探索-Part2 实现AI和BI整合的初步思路和探索 以《出师表》作为例子,对比通用分块和父子分块的区别 LangChain RAG 学习笔记:从文档加载到问答服务 记录无法修改OneDrive文件的解决方法 Power BI制作指标达成跟踪器 Power BI学习笔记-周报销售数据分析
LangChain使用deep agent并且加载SKILL
哥本哈士奇(aspnet · 2026-04-18 · via 博客园 - 哥本哈士奇(aspnetx)

摘要

去年在字节TRAE线下活动的一句提问,让我捕捉到SKILLS这个大模型新范式的苗头——它不是简单的工具调用,而是能让AI实现“按需加载能力”的渐进式革命。从CLAUDE率先提出,到字节TRAE的快速跟进,再到LangChain从“曲线适配”到Deep Agent原生支持,这半年,我完整见证了一个AI技术概念从圈内热议到全面落地的全过程,也读懂了技能模块化背后的行业趋势。

从TRAE线下到LangChain落地,我见证SKILLS从概念到普及的半年

最早接触SKILLS这个概念,是在2025年去字节参加TRAE线下活动的时候。活动现场有观众提问,说CLAUDE新推出的SKILLS机制特别实用,想问字节的TRAE什么时候会跟进这项功能。听到这个问题的瞬间,我心里就有了明确的预感:字节作为AI领域的风向标,大概率会快速布局跟进,而在智能体框架领域深耕的LangChain,必然也不会缺席这场技术浪潮。

今年早些时候,SKILLS在大模型圈彻底火了起来,成为大家热议的核心话题,但LangChain圈子里却依旧相对平静,没有掀起太多波澜。出于好奇,我特意去搜索“LangChain skills”,发现在B站上已经有了相关的教学视频,其核心思路是借助中间件(middleware)的拦截机制,来实现SKILLS的渐进式披露——这种方式更像是一种“曲线适配”,能勉强达成效果,却能明显感觉到,当时LangChain还未实现对SKILLS的原生完美支持。即便去LangChain官方网站搜索相关话题,得到的指引也依然是将SKILL拆分为Agent Tools来调用,与CLAUDE原生SKILLS的模块化、可复用特性相去甚远。

这种“慢半拍”的状态并没有持续太久,大概在今年春节前后,我身边突然涌现出大量跟进SKILLS的产品落地案例,其中就包括字节的TRAE,还有各种主打智能体功能的“龙虾”类产品,肉眼可见地感受到这项技术正在加速渗透。而就在我以为LangChain还会再酝酿一段时间时,惊喜地发现,LangChain Deep Agent已经悄悄上线了SKILLS原生支持功能,至此,从概念提出到主流平台全面落地,SKILLS终于完成了它的阶段性普及。

直接上代码

可以看到在早先create agent的基础之上,可以指定skills的目录了:

import os
from dotenv import load_dotenv
from deepagents import create_deep_agent
from deepagents.backends import LocalShellBackend
from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver

load_dotenv()
 
model = ChatOpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    model_name="Doubao-Seed-2.0-pro",  
    base_url="https://ark.cn-beijing.volces.com/api/coding/v3",
    temperature=0
)

agent = create_deep_agent(
    model=model,
    backend=LocalShellBackend(
        root_dir=".",
        virtual_mode=True
    ),
    skills=["./skills"],
    checkpointer=InMemorySaver(),
    system_prompt="你是一个智能助手,如果查询的结果是ID,那么就根据ID查询对应的名称。"
)

while True:
    input_text=input("User message: ")
    if input_text.lower() in ("exit"):
        break

    results=agent.invoke(
        {"messages":[{"role": "user", "content": input_text}]},
        config={"configurable": {"thread_id": "1"}}
    )

    for message in results["messages"]:
        print(message.pretty_print())

细节和心得

在实际实操过程中,我也积累了一些细节心得,在这里和大家分享一下。

LLM层我选用的是豆包大模型,得益于它兼容OpenAI协议的特性,我直接采用了ChatOpenAI的调用方法,省去了额外适配的麻烦。
不过这里有个小坑需要提醒大家:如果在TRAE或者豆包平台内直接生成代码,系统大概率会提示导入豆包专属库,但后续让TRAE自主运行时,常会出现库找不到的问题。有意思的是,TRAE会自动检索豆包的官方文档,自行调整代码,最终切换到ChatOpenAI的调用方式,算是一个比较智能的适配小细节。
另外需要特别留意,由于我使用的是火山引擎的Coding Plan(火山引擎作为字节跳动旗下的云和AI服务平台,能提供稳定的大模型服务支持),因此调用时的base_url和默认配置会有所不同,具体可参考火山引擎的官方配置指引。
再说说Deep Agent的实操细节,它的写法和之前Create Agent的方式大同小异,上手难度不高,最实用的一点是,创建Deep Agent时可以直接指定SKILLS所在的目录。按照Deep Agents的设计逻辑,SKILL本质上就是包含SKILL.md文件的文件夹及相关脚本,只要将各类SKILL(包括从OpenClaw获取的SKILL)放入指定目录,就能被系统自动识别。但有一个关键细节需要重点注意:SKILL的文件夹名称必须是小写,目前Deep Agent暂不支持大写命名,否则会无法识别,这也是我实操中踩过的一个小坑。

还有一个必看要点:Deep Agent中的LocalShellBackend是加载本地SKILL的核心,没有它就无法正常调用本地的各类技能,这和Deep Agents依赖后端实现本地文件访问、技能加载的底层逻辑密切相关。另外,我通过checkpointer为智能体添加了记忆功能,Deep Agents本身封装了多种记忆保存方式,这次为了演示便捷,我选用了最基础的内存记忆。在智能体invoke调用时,需要指定config参数来标识不同的会话,我这里为了简化演示,直接设置为“1”,实际应用中可根据会话需求灵活调整。

环境配置方面也有一些差异需要注意:我使用的是MacOS系统,因此没有在Agent中额外指定Python环境变量;但如果是Windows系统,就必须手动配置,否则会影响技能的正常运行。关于Windows系统的具体配置方法,大家可以参考B站上的相关教学视频:【19-能执行 python 代码的技能-哔哩哔哩】https://b23.tv/aDDuAz7,这个视频属于“强哥学编程”的Deep Agents零基础教程合集,内容细致,小白也能轻松看懂。

跟其它智能体的对比

很多朋友可能会好奇,Deep Agent和OpenClaw这类“龙虾”产品到底有什么区别?结合我的实操体验,我用一个形象的比喻和大家说明:它们本质上都是Agent智能体,但OpenClaw就像一只成熟的龙虾,而Deep Agent则更像是一个虾卵——前者是开箱即用的成品,后者则需要我们自己打磨、配置,才能发挥出相应的功能,这也契合了Deep Agents作为“智能体脚手架”、需要开发者自行配置优化的定位。

我用QClaw(一款“龙虾”类产品)做了个直观测试:将本地系统接入QClaw后,我询问它“今天我系统里都有哪些课程”,QClaw会自动调用已配置的SKILL,通过接口获取学生ID和教练ID,之后还会自动关联人员表,将ID转换成对应的人名,整个过程无需手动干预。但同样的SKILL放到Deep Agent中,它只会直接返回原始的学生ID和教练ID,不会进行后续的转换操作。后来我在创建Deep Agent时添加了专属系统提示词,才实现了和QClaw类似的效果。这也恰恰体现了OpenClaw、Claude这类产品的优势——它们在基础Agent框架之上,额外做了大量的优化和封装工作,让用户无需关注底层细节,就能实现更便捷的操作,这也是它们能被更多小白用户接受的核心原因。