1. 基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 名称 | langchain-middleware(langchain-ai/langchain-skills 合集子技能) | — |
| 作者/维护者 | LangChain(langchain-ai 官方组织) | GitHub API |
| 来源链接 | https://github.com/langchain-ai/langchain-skills/tree/main/config/skills/langchain-middleware | — |
| 许可证 | MIT(声明于仓库 .claude-plugin/plugin.json 的 license 字段;仓库根目录未附独立 LICENSE 文件,故 GitHub API 的 license 字段显示为空) |
GitHub API + 仓库文件 |
| GitHub Stars/Forks | 所属合集仓库 langchain-ai/langchain-skills 整体 1,110★/86 forks(覆盖约 21 个不同子技能,不代表本技能自身热度) |
GitHub API |
| 最新版本 | 0.1.0(plugin.json 声明;README 注明项目处于早期阶段,API 与技能内容可能变化) | GitHub |
| 安装方式 | npx skills add langchain-ai/langchain-skills --skill langchain-middleware --yes,或 Claude Code 插件市场 /plugin marketplace add |
GitHub README |
2. 功能介绍与亮点
这是 LangChain 官方为“生产级 Agent 中间件层”整理的一份结构化参考技能,覆盖三类互相独立又常配合使用的机制:
- HumanInTheLoopMiddleware:在 Agent 调用高风险工具(发邮件、扣款、删除数据等)前暂停,交由人工审批(approve / edit / reject 三种决定),恢复后
Command(resume=...)携带人工决定继续执行;支持按工具名逐一配置策略(如“发邮件需审批,读邮件自动放行”)。 - 自定义中间件(Custom middleware):给出六类装饰器钩子,用于拦截模型调用与工具执行前后的时机,实现错误处理、日志记录、重试逻辑等横切关注点,无需修改 Agent 主逻辑。
- 结构化输出(Structured output):用 Pydantic(Python)/ Zod(TypeScript)定义 Agent 最终输出的类型化 schema。
三部分均给出 Python 与 TypeScript 双语言可运行代码示例,并明确标注前置条件——HITL 相关工作流必须同时配置 Checkpointer 与 thread_id,两者缺一都会导致中断状态无法保存。仓库最近一次推送为 2026-08-07,技能内容紧跟 LangChain 1.0 中间件 API 的变化同步更新。
3. 适用场景
所属分类:元技能与 Agent 增强(该技能教的是如何为 Agent 自身装配执行控制与治理机制——暂停审批、横切拦截、输出约束,属于“Agent 行为方式”本身,而非某个具体业务领域的产出物)。
适合已经在用 LangChain create_agent 搭建生产 Agent、需要在关键工具调用前插入人工审批关卡的团队:例如自动化客服 Agent 在执行退款前需要人工确认、内部运维 Agent 执行高危命令前需要审批、数据处理 Agent 需要为每次调用统一记录日志或做失败重试。也适合需要 Agent 最终产出严格符合某个数据结构(供下游程序解析)而不是自由文本的场景。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持。README 明确列出 Claude Code,提供专用插件安装路径(
/plugin marketplace add+/plugin install)及本地安装脚本install.sh。 - Codex:✅ 支持。README 用法示例中直接给出面向 Codex 的自然语言安装指引,并声明
npx skills支持任何遵循 Agent Skills 规范的 agent(含 Cursor、Windsurf 等)。 - OpenClaw / Hermes Agent:❓ 未验证。抓取到的 README 与 SKILL.md 均未提及这两个 agent。
5. 推荐理由
Agent 从演示走向生产,“给高风险操作加人工审批”和“给横切逻辑加统一拦截点”几乎是必经的两道工序,但官方基础教程通常只讲单个 API、不讲怎么把它们组织成可维护的中间件层。这个技能把 LangChain 1.0 中间件体系的三个核心用法(人工审批、自定义钩子、结构化输出)连同必需的前置条件(Checkpointer + thread_id)整理成一份随框架版本同步更新的结构化参考,比零散的教程更系统、比自己啃源码更省时间,且由 LangChain 官方自己维护,可信度与时效性都有保障。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 发布方 LangChain 是 LangChain/LangGraph 框架本身的所有者,由官方自行发布维护;所属合集仓库 1,110 stars 由约 21 个子技能共享,不代表本技能自身热度,暂无该子技能自身的独立第三方评价证据,已在第三方技能目录站 mcpservers.org 收录但无评分与评论 |
| 可用性 | 9 | 一条 npx skills add 命令或 Claude Code 插件市场即可安装;单文件 SKILL.md(约 10.8KB)含完整 Python/TypeScript 双语言示例,明确标注前置依赖;仓库最近一次推送为 2026-08-07,维护活跃;核心机制不依赖付费 API,Checkpointer 可用免费内存态实现 |
| 安全性 | 9 | 纯提示词/参考文档类技能,无可执行脚本、无运行时网络外发;官方组织出品,内容完全开源可审计 |
安全检查清单: ① 无 shell 命令执行——技能本体是纯 Markdown 参考文档,不含脚本。 ② 无运行时联网外发——不涉及任何数据采集或外发行为。 ③ 无凭据索取——示例中的模型 API key 由使用者自行在其 Agent 环境中配置,非本技能强制要求。 ④ 未发现可疑指令、混淆代码或隐蔽外发迹象。 ⑤ 作者信誉:LangChain 官方组织,LangChain/LangGraph 框架本身的所有者。 ⑥ License 明确:MIT(声明于 plugin.json)。 ⑦ 最近维护:仓库处于活跃开发中,非弃置项目。
7. 跟同类 Skills 相比的优势
| 对比对象 | 定位 | 与本技能的差异 |
|---|---|---|
| LangChain 官方中间件文档(docs.langchain.com/oss/python/langchain/middleware/overview) | 框架方撰写的网页概念教程 | 内容权威但是网页形态,需人工阅读消化后自行搬到代码里;本技能是结构化 SKILL.md,可被 agent 直接检索调用,并把审批/钩子/结构化输出三类用法整理成即查即用的代码片段 |
| 第三方博客教程(如 Medium、Stackademic、CodeCut 上关于 LangChain 1.0 中间件的系列文章) | 个人作者撰写的入门讲解,配示例代码 | 适合建立初步概念,但内容不随框架版本同步更新,也不是可安装的结构化产物;本技能由框架官方维护,随 LangChain API 变化同步修订 |
| 同合集内 langgraph-human-in-the-loop | 讲解 LangGraph 底层 interrupt() / Command(resume=...) 原语与恢复语义陷阱 |
聚焦更底层的图执行原语;本技能聚焦 create_agent 之上的中间件封装层,覆盖范围更广(还含自定义钩子与结构化输出),两者面向不同抽象层级,可配合查阅 |
8. 用户评价
该技能目前在第三方平台尚无经核实的具名用户评价;已被第三方技能目录站 mcpservers.org 收录展示,但页面仅为功能镜像说明,未附用户评分或评论。
9. 安装使用方式
- npx skills(推荐,跨 agent 通用):
加npx skills add langchain-ai/langchain-skills --skill langchain-middleware --yes--global可全局安装;加--agent claude-code可指定链接到 Claude Code。 - Claude Code 插件市场:
/plugin marketplace add langchain-ai/langchain-skills /plugin install langchain-skills@langchain-skills - 克隆仓库后本地安装脚本:
./install.sh(默认安装到当前目录,支持--global、--deepagents等参数)。
安装后无需重启 agent,SKILL.md 的 description 字段含“INVOKE THIS SKILL when…“触发语句,agent 在识别到人工审批、自定义中间件或结构化输出相关任务时会自动调用;使用 HITL 功能前需自行准备 Checkpointer(本地开发可用免费的内存态实现,生产环境建议用 PostgresSaver 等持久化实现)与 thread_id。
10. 注意事项
- 项目整体处于早期阶段(README 明确标注),API 与技能内容后续可能调整。
- HITL 相关示例默认使用
gpt-4.1等外部模型 API,实际接入时需自备对应厂商的 API key(技能本身不强制要求,但功能演示依赖)。 - 若需要的是 LangGraph 底层
interrupt/Command(resume=...)原语与恢复语义陷阱(如子图重跑、非幂等写库),应配合同合集内的 langgraph-human-in-the-loop 一起查阅,本技能聚焦更上层的中间件封装。