大模型skill理解与实践
每条结论一句话行动项结构化“”“读取并总结PDF文档”“”# … 后续总结逻辑何时使用用户上传了一份文档(PDF、Word等)并要求分析其内容。用户的问题需要结合特定文档内容和外部最新信息来回答。用户要求对复杂主题进行多步骤调研和分析。如何调用确保用户已提供待分析的文档文件。将用户的分析请求和文档路径(或文件)作为参数。端点请求体示例 (JSON):{"query": "请总结这份文档的核心观点,
2025年10 月,Anthropic 推出 Skill 概念;12 月 18 日,Skills被正式推向开放标准。
一、Skills的定义
Skills:让 AI 具备可执行的专业能力
Skills 的核心定义
Skills(技能) 是 Anthropic 发布的一个新特性——Claude Skills,它的目标,是让 Claude 不再只是一个「能聊天的模型」,而是一个具备可扩展、可执行技能体系的代理式 Agentic AI 工具。
简单来说,Skills 是包含指令、脚本和资源的文件夹集合,结合 Agent 可实现构建专业化智能体的一种方法。通过 SKILL.md 文件组织,为 AI Agent 提供现实世界如人一样的可按需加载的专业化技能扩展,包括工具、方法、流程、自定义能力。Skills 将通用模型转变为领域专家。
更形象的理解:建立一个技能就像为新员工准备入职指南——包含岗位说明书、操作流程和专业工具。
图片: https://uploader.shimo.im/f/EEz3NC5sGzUNV0E6.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
1.建立直觉理解
想象一个场景。你是一个工程总包负责人,当前项目是建一栋摩天大楼(这就是一个 Agent)。你一个人能不能干?理论上能。但现实是:你不可能亲自拧每一颗螺丝,也不可能盯着每一个工人,更不可能在 deadline 前交付。于是,聪明人都会做同一件事——外包。
核心角色对照表
图片: https://uploader.shimo.im/f/ndTn5u6XedCo33tD.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
每个 SubAgent 都能独立干活;但他们干活时,都会遵循一些统一的规范:哪种地基怎么打、哪种材料怎么验收、出问题先看哪份 checklist。这些贴在墙上的操作说明,就是 Skill。
一句话先记住:SubAgent 是「一个团队/人」,Skill 是「方法论/知识」。
后面所有内容,都是在给这句话加注释。
2.skills爆火的原因
原因一:大家终于受够了「 Agent 架构」
来,先看一个生活场景。你自己出门旅游:手机、充电器、换洗衣服,没了。临时需要什么?现场买。但和爸妈一起出门呢?画风立刻变成: ✅保温杯、 ✅雨伞(哪怕去的是沙漠)、 ✅牙膏牙刷、常备药 、✅热水壶?。
别笑。半年前的 Agent 工程实践,大多就是这样。
旧模式的典型特征是:把「所有可能用到的指令」一次性塞进 Prompt,把「所有可能用到的工具」一次性挂上,生怕 Agent 临场发挥。结果就是:Agent 还没开始思考,上下文窗口先炸了,注意力就已经飘散了。
Skill 设计可以用一个表格说清楚:
图片: https://uploader.shimo.im/f/C5LpTW63Y0U6GvEZ.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
用一句大白话总结:不用的时候消失,用的时候再出现。这对 LLM 来说,属于是重大利好。上下文窗口是稀缺资源,Skill 的按需加载机制,本质上是在做注意力管理——让 Agent 在每个时刻只看到最相关的信息,而不是被无关内容淹没。
原因二:多 Agent 架构有局限
真做过多 Agent 的人都知道:Token 消耗直线上升、工程复杂度成倍增长。很多时候,事情还没做完,已经在给 Agent 当项目经理了。
Skill 提供了一条折中路线:在单 Agent 内部,实现"专业分工"的幻觉。它不引入新的推理循环,不拆分上下文,不增加协调成本,但 Agent 的行为却看起来像变聪明了。再加上开放标准,Skill 可以复用、共享、迁移。这就是它爆火的真正原因。
3.Skills 到底是什么,又不是什么
类比好用,但也容易误伤。我们必须把边界画清楚。
Skills 的本质:三层拆解
图片: https://uploader.shimo.im/f/o9l5lhDQ2vQuWXPg.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
Skill 不是一个独立的推理单元,它更像是预先编译好的决策树。当 Agent 遇到特定场景时,Skill 会展开成一系列指令,指导 Agent 按照经过验证的路径前进。这种设计的妙处在于:它既保留了 Agent 的灵活性(可以根据实际情况调整),又避免了每次都从零开始推理的低效。
三个高频误解(踩雷区)
图片: https://uploader.shimo.im/f/F4pqLICQYvuOAhgL.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
让我们用一个实际场景来说明差异。假设你要构建一个客服系统:
用 Skill:定义"投诉处理流程",包含情绪识别 → 分类 → 响应的标准步骤。Agent 遇到投诉时,按照 Skill 指引执行。
用 SubAgent:创建一个专门的"投诉处理 Agent",它有自己的上下文、记忆、甚至专属工具(如情绪分析 API)。
前者适合流程明确、变化不大的场景;后者适合需要深度推理、持续交互的复杂任务。
4.Skills vs SubAgent
图片: https://uploader.shimo.im/f/HnRI20nYsEPN026x.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
一句话总结差异:Skill 「我怎么做」,SubAgent 「谁来做」。
5.Skill vs 提示词
图片: https://uploader.shimo.im/f/iCyUogXpSoMi8Ngt.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
6.MCP 和 Tools
Tools / MCP 是什么?干活用的工具。它们不思考、不决策、不负责结果。就像:电钻不会告诉你要不要打孔,塔吊不会决定吊哪块钢筋。
工具层的定位
图片: https://uploader.shimo.im/f/NmEXUXz2SCQkWu03.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
MCP (Model Context Protocol) 的价值在于标准化。在 MCP 出现之前,每个工具都有自己的调用方式、参数格式、错误处理。Agent 要调用 10 个工具,就得学 10 种"方言"。MCP 做的事情是:定义一套通用协议,让所有工具都"说同一种语言"。
Agent 决策,Skill 指路,Tool 出力。别再混了。这三者的关系可以用一个决策流程图表示:
用户请求 → Agent 分析 → 匹配 Skill → Skill 展开步骤 → 调用 Tool 执行 → 返回结果 → Agent 整合 → 输出响应
在这个流程中:
Agent 是决策中枢,判断"该做什么"
Skill 是经验库,提供"怎么做"的最佳实践
Tool 是执行器,完成"具体操作"
任何一个环节的错位,都会导致系统效率下降。
7.真正高效的 Agent 长什么样?
回到最初的工地类比。SubAgent 是外包团队,Skill 是操作规范,Tool/MCP 是施工设备。你不会因为有了规范就解雇所有外包,也不会因为请了外包就撕掉所有规范。真正的效率来自分层组合,而不是堆叠。
高效 Agent 架构的设计原则
图片: https://uploader.shimo.im/f/ydJFiKivT7Undlwb.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
Skill 不是 SubAgent 的替代品,而是 Agent 能力体系的一次结构性升级。它解决的核心问题只有一个:如何在有限的上下文窗口里,让 Agent 看起来像一个经验老到的团队,而不是一个背着全家行李的旅行者。
二、什么时候用
1.claude code为例
MCP (Model Context Protocol) —— “外包工具商”
关键词:能力、连接、数据源
MCP 是什么?
MCP 就像是公司签约的外部供应商或专业设备提供商。他们不参与公司决策,只负责提供特定的能力或数据。
场景举例:
你需要查数据库?👉 调用 PostgreSQL MCP(数据供应商)。
你需要操作 GitHub?👉 调用 GitHub MCP(代码仓库服务商)。
你需要看天气?👉 调用 Weather MCP(气象数据商)。
核心特征:被动调用。它不会自己思考“我要不要查数据库”,它只会在你(或 Agent)下令时执行操作。
SubAgent (子代理) —— “部门经理”
关键词:角色、独立上下文、复杂任务
SubAgent 是什么?
SubAgent 是公司内部的专职部门经理。他们有自己的独立办公室(独立的上下文窗口),专注于解决特定领域的复杂问题,避免打扰总经理(主 Agent)。
场景举例:
主要任务太杂了,把代码审查交给张经理(Code Reviewer SubAgent)。
要写一堆测试用例,交给李经理(Test Generator SubAgent)。
核心特征:主动思考。SubAgent 拿到任务后,会自己拆解步骤、调用工具(MCP)、检查结果,最后汇报。
Skill (技能包) —— “SOP 操作手册”
关键词:流程、规范、标准化
Skill 是什么?
Skill 是写在员工手册里的标准作业程序(SOP)。它规定了做某件事的最佳姿势,不管是总经理还是部门经理,干活时都要遵守这个规范。
场景举例:
《Git 提交规范手册》:规定了提交信息必须是 feat: … 格式(git-commit-message Skill)。
《Java 代码检查清单》:规定了命名必须驼峰、缩进必须 4 空格(java-checker Skill)。
核心特征:知识固化。它把团队的经验变成了可执行的指令。
开发者向主 Agent 下达指令,主 Agent 既可以直接调用 MCP 工具,也可以查阅 Skill 手册,或者将复杂任务委托给 SubAgent 团队处理。
图片: https://uploader.shimo.im/f/7WnuEWag0Dncm6Kl.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
配置路径与核心差异对比
很多开发者搞不清楚配置文件该放在哪里,这里有一份详细的速查表。
图片: https://uploader.shimo.im/f/Xnu7ty1pf7MJQnfp.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
当你想扩展 Claude 的能力时,请查阅这份决策矩阵。
选型决策树
Q1: 你需要连接外部系统吗(如数据库、API、浏览器)?
✅ 是 👉 你需要配置 [MCP]。
❌ 否 👉 进入 Q2。
Q2: 这是一个复杂的、多步骤的、需要独立思考的任务吗?
✅ 是(例如:重构整个模块、审查整个项目)👉 你需要定义一个 [SubAgent]。
❌ 否(只是个简单的单步操作)👉 进入 Q3。
Q3: 你需要固定的输出格式或遵循特定的团队规范吗?
✅ 是(例如:生成特定格式的文档、提交信息)👉 你需要编写一个 [Skill]。
❌ 否 👉 你可能只需要写个好点的 Prompt 及其它。
图片: https://uploader.shimo.im/f/c9i16S0jx2RcjX5v.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
sop专家的标准操作手册
Claude Code 的强大之处在于这三者的组合拳。让我们看一个真实的“自动化代码修复”流程:
任务:“帮我修复 UserLogin.java 里的 Bug,并提交代码。”
主 Agent(总经理) 接到需求,判断任务复杂,指派给 Fixer SubAgent(修复专家)。
Fixer SubAgent(专家) 接手任务:
打开 Debugger Skill(操作手册),查看“Bug 排查标准流程”。
根据手册,调用 Filesystem MCP(工具) 读取代码。
发现问题后,调用 Bash MCP(工具) 运行测试验证。
Fixer SubAgent 修复代码后,汇报给主 Agent。
主 Agent 准备提交:
激活 Git Commit Skill(操作手册) 生成规范的提交信息。
调用 GitHub MCP(工具) 推送代码。
一句话总结关系:
SubAgent(人) 拿着 Skill(手册),操作 MCP(工具) 来完成工作。
MCP 给了 Claude “手和脚”,让它能触达外部世界。
SubAgent 给了 Claude “分身术”,让它能并行处理专业任务。
Skill 给了 Claude “记忆力”,让它永远不忘团队规范。
2.Skills 的工作原理:渐进式披露机制
Skills 最大的设计亮点,是采用了渐进式披露机制 。它不会一次性加载所有内容,而是分层、按需调用:
Level 1:元数据层(启动时加载)
• 只读取 name 和 description
• 每个 Skill 大约 100 tokens
• 让系统知道「具备哪些可用能力」
Level 2:核心指令层(任务触发时加载)
• 当任务匹配时,读取 SKILL.md 正文
• 通常不超过 5000 tokens
• 描述主要流程、操作要点和约束条件
Level 3:资源层(按需加载)
• 脚本、模板、参考文档等
• 仅在执行阶段读取,不进入上下文
• 理论上没有 token 限制
可以理解为:系统只在需要时打开相应的「技能模块」,让上下文始终保持最轻量、最高效。 对比传统 Prompt 而言,Skills 则是模块化 Prompt + 上下文调度系统。
通过这种机制,Skills 解决了众多实际问题:
• 上下文窗口的成本问题 :在复杂任务中可降低 40%-60% 的上下文占用
• 知识的可复用性 :Skills 文件可一次创建、共享、复用、更新
• 执行的确定性 :提供 SOP 工作流模板,减少理解偏差
Skills 如何解决现实世界的问题
- 封装专业知识,解决「专业问题」
将特定领域的最佳实践和操作流程封装成可复用的技能,高效完成特定任务。
案例:品牌指南 Skills
• 将公司的品牌色彩、字体、Logo 使用规范封装成 Skills
• 当 AI 创建演示文稿或文档时,自动应用这些规范
• 确保所有输出都符合公司的视觉识别标准 - 扩展 AI 能力边界,组合技能解决「能力问题」
让 AI 能处理更专业、更复杂的任务及更多能力边界的事情。多个 Skills 可组成协同工作,持续进行学习优化。
案例:文档处理 Skills
• PDF 处理技能:可以分割、合并、提取文本
• Excel 处理技能:可以创建复杂的数据分析和可视化
• PowerPoint 技能:可以生成专业的演示文稿
• 这些技能可以组合使用,完成复杂的文档处理任务 - 知识的「可复用性」和团队协作
Skills 文件可一次创建、共享、复用、更新,团队成员可以共用同一技能库。这让「隐性经验」第一次可以以结构化形式沉淀下来。
案例:代码审查 Skills
• 将团队的代码审查标准、最佳实践封装成 Skills
• 所有团队成员使用统一的审查标准
• 新成员可以快速掌握团队的代码质量标准 - 提供 SOP 工作流模板,执行的「确定性」
Skills 可以调用脚本完成具体操作,把任务处理流程(SOP)逻辑写清楚、标准化,减少「理解偏差」。这让模型的执行更可靠,也更容易追踪,工作效率得以大幅提升。
案例:自动化开发流程
• TAPD Issue 创建 → 开发分支和编码 → 单元测试 → 部署预览
• 将整个流程封装成 Skills,AI 可以自动完成全流程
• 从需求到部署上线的全自动化流程闭环
图片: https://uploader.shimo.im/f/qXD2GdDsE7bIQatC.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
Skills 与其他能力的协作关系
Skills 和 Agent 的关系
Agent 从架构层面可以归为基于模型和资源层之上的应用层。在 Agent 之上可以定义 System Prompt、引用外部知识库、MCP 等外部工具。但如何引用、能够进行标准化的给到 Agent,实际过程我们更好关注的是问题解决。因此将其组合,利用 Skills 的方式进行包装为一个技能。Agent 协助做拆解、规划、执行与反思,而 Skills 能更好的帮我们在拆解和执行上做更细粒度的标准化拆解,可定义为提供能力与服务中间层。
Skills 和 MCP 的关系
实际技能模板纳入了解决特定场景问题需要的工具和外部能力,这些能力可以是通过 MCP 的方式接入。可以理解为通过 Skills 定义对 MCP 能力进行组装和编排。
Skills 和 Rules 的关系
在 Skills 中通过引用 Rules,给 AI 行为提供约束和指导,确保 AI 能够按照既定的风格规则进行规范化输出。
Skills 和 RAG 的关系
在 Skills 定义中会更加清楚地说明具体知识库的应用规则,给出更加准确的知识库检索流程与应用规范。让 AI 是有目的的查询。
实践案例:从个人使用到团队协作
案例 1:非开发场景的技能边界突破
在日常运营场景中,经常需要发布文章。可以借助 CodeBuddy IDE + Craft Agent Skills + 小红书 MCP Server 实现小红书全自动图文发布技能。
• 将发布流程、内容规范、图片处理等封装成 Skills
• AI 可以自动生成符合小红书风格的内容
• 自动上传图片、发布笔记,完成整个流程
案例 2:多 Skill 组合实现自动化开发流程
在日常开发过程中,需要在 TAPD 记录 issue 事项、然后进行开发分支和编码、部署组合技能。
全栈开发 Skills 组合:
TAPD Issue 自动化管理 Skills
IDE Agent 需求编码 Skills
单元测试 Skills
CloudStudio 部署预览 Skills
通过组合这些 Skills,AI 可以实现从需求创建到代码开发、测试、部署的全流程自动化。
案例 3:代码审查 Skills
将代码审查的标准、流程、输出格式封装成 Skills:
• 审查重点 :代码质量、安全性、性能、可维护性
• 审查流程 :理解代码变更目的 → 检查代码风格 → 分析潜在问题 → 验证安全性 → 提供改进建议
• 输出格式 :自动生成 HTML 报告,包含评分、问题分类、改进建议等
如何创建和使用 Skills
Skills 的基本结构
一个完整的 Skills 就是一个标准化的文件夹体系:
my-skill/
├── SKILL.md (必需)
│ ├── YAML 前置元数据 (必需)
│ │ ├── name: (必需)
│ │ └── description: (必需)
│ └── Markdown 指令 (必需)
└── 捆绑资源 (可选)
├── scripts/ - 可执行代码 (Python/Bash等)
├── references/ - 参考文档
└── assets/ - 输出文件 (模板、图标、字体等)
SKILL.md 的核心要素
必需元数据:
name : 技能名称(最多 64 个字符)
description : 清晰的描述,说明技能做什么以及何时使用(最多 200 个字符,这是关键——Claude 用它来决定何时调用技能)
Markdown 正文:
详细的指令和流程说明
使用示例
工具使用说明
创建 Skills 的最佳实践
模块化任务分解 :边界清晰,职责单一,一个 Skills 专注一件事
提供清晰的触发条件 :在 description 中清晰描述技能的适用场景
热数据前置 :高频信息优先加载,边缘场景数据作为外部存储
参考官方模板 :参考官方 Skills 模板案例,示例代码分级
三层信息架构 :渐进式披露内容(元数据层、核心指令层、参考资源层)
组合优先 :设计可被调用的 Skills,像"乐高积木"一样可组合
识别创建时机 :使用高频 × 任务复杂度 × 团队规模 = Skill 价值
动态上下文管理 :用完即释放,避免上下文浪费
测试与版本管理 :像对待代码一样对待 Prompt,必须有测试用例和版本控制
Skills 的价值与启示
从"写提示"到"设计流程"
传统 AI 编程方式:每次遇到问题都要重新写代码、调试、优化。
Skills 方式: Skills = 大模型(LLM) + 方法(WorkFlow + Rules 规则)+ 工具(MCP Server) + 知识库(RAG或其他知识形态)。把解决的具体问题,形成角色,组装为"技能包",一次编写,永久使用。开发者从写提示词转为设计流程,写代码到技能设计能力,将隐性知识进行沉淀。
把隐性知识产品化,实现个体能力跃升
将"老人经验"、“新人指南”、“优秀实践"可以沉淀为可执行的 Skills 技能包。同时也需要提升一致性、可复用性与审计可见性,最终提升个体的能力提升。从单兵作战到团队协同,相信我们个体能力提升,就是最核心的竞争力。
从需求到部署上线的全自动化流程闭环
原来"将 PRD → 用户故事 → 验收标准 → 开发任务 → 代码的链路自动化 → 线上部署"这套流程依赖异步处理。而现在有了 Skills,全过程全部可以实现自动化,压缩交付周期,同时让变更可追踪、可回滚、可复盘。
Skills 不仅仅是一个技术特性,更是一种新的 AI 应用范式。它让我们能够:
将专业知识结构化 :把隐性的经验和知识转化为可复用的技能包
提升 AI 的专业能力 :让通用模型具备领域专家的能力
实现团队知识传承 :将个人经验转化为团队资产
自动化复杂流程 :从需求到部署的全流程自动化
降低使用成本 :通过渐进式披露机制,大幅降低上下文成本
Skills 为 AI 配备了现实世界所需的"技能包” ,让 AI 不再只是"知道",而是真正"会做"。这不仅是技术的进步,更是工作方式的变革。
三、怎么用
基于文件系统的虚拟机架构
Skills 在代码执行环境中运行,Claude 具有文件系统访问、bash 命令和代码执行功能。可以这样想:Skills 作为虚拟机上的目录存在,Claude 使用与您在计算机上导航文件相同的 bash 命令与它们交互。
关键组件:
系统提示:包含所有已安装技能的元数据
文件系统:存储技能目录和所有相关文件
Bash 工具:Claude 通过 bash 命令读取文件和执行脚本
代码执行环境:隔离的沙箱运行环境
我们日常接触的广泛信息传递和输入,本质上是一种知识的输入到技能的输出给到大家,通过知识的转化,我们获得了新的技能,具备解决问题的能力。
图片: https://uploader.shimo.im/f/m6nk2oEuPeyw4EZV.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
显性化知识:技术资料等知识库,规则约束,流程、方法
隐性的知识:自己经验经验,有无技能,最佳实践
AI 的困境:知识丰富却缺乏技能
从 AI 角度来看,知识就是大模型本身训练的语料,针对特定领域的事项,如果没有私域知识的输入,特定领域的技能支持,AI 很难按照我们的意愿执行,难以满足,最终结果也不一定好。 同样拥有了知识,如果缺乏和外界的交互,也很难有好的结果。所以 AI 一直在想方设法的拓展它对外部的一些边界和能力来提升效果。如 Prompt、Rules、MCP、A2A 协议及Skills 这些都是为了更好的扩展大模型的知识边界,方便大模型和外部的协同。
期望 AI 像人一样自主执行和独立操作
如果我们也希望 AI 能按照人的思路、自主执行,首先要解决的一个核心问题就是,得将私域经验显性化表达出来, 类似 Rule,有没有一种 工具形态,可以将方法,工具,技术,知识这些经验都需要你提前定义好,给 AI 专注解决问题的本质,让 AI 按你的结果目标来运行。
Skills,技能,给大模型培训像人一样赋能的技能,通过 Rules 约束大模型输出,通过 MCP 触达外部业务系统,通过知识库进行私域知识库输入,而通过 Skills 则是为大模型武装上特定技能,配备现实世界所需要的技能,高效解决问题。Skills 是近期 Anthropic 发布了一个新特性——Claude Skills,它的目标,是让 Claude 不再只是一个「能聊天的模型」,而是一个具备可扩展、可执行技能体系的代理式 Agentic AI 工具。
一个完整的 Skills 就是一个标准化的文件夹体系,每个技能由若干文件组成,用来描述功能、脚本和引用资料。
图片: https://uploader.shimo.im/f/zF5HvktpJDWoGUqq.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
SKILL.md:其中 SKILL.md 文件是最核心的文件,必须以 YAML Frontmatter 元数据开头,其中包含文件名和描述,该描述会在启动时加载到系统提示符中,如下为 PDF 例:
图片: https://uploader.shimo.im/f/PUaKr9Zn4ssGLxyI.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
示例图:以 PDF 为例的 YAML Frontmatter 元数据
看起来像普通的 Prompt 文件,但它的结构和加载机制不一样。Skills 不是简单的「指令封装」,而是一个具备分层调用逻辑的知识模块体系。
如图为 PDF 在 AI 应用的技能,基于该技能进行拆解和封装,包括定义 SKiil.md 以及相关的脚本和代码解决相关的问题。
图片: https://uploader.shimo.im/f/WJYLhsiuQNwH6re0.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
示意图:以 PDF 技能为例,进行代码结构拆解
随着技能的提升, 我们可以捆绑额外的内容,AI 会在需要时加载这些内容,以 PDF 技能 Skill.md 为例:
图片: https://uploader.shimo.im/f/ROwXCH4TWv0SyzBV.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
例如在进行处理 PDF 技能中,针对不同的任务目标,AI 提供有不同的工作流和解决办法。
图片: https://uploader.shimo.im/f/DwyW3Kfo1o5OXqA4.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
示意图:PDF 上下处理过程
图片: https://uploader.shimo.im/f/xVKGOYZaQCpHhtlZ.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
示意图:如 PDF 部分 Skill.md 展示说明
图片: https://uploader.shimo.im/f/4y3DQXKaCgb7uhyC.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
示意图:通过简单提示词和执行的脚本指令使得 AI 完成特定工作
Skills 渐进式披露核心机制
Skills 的价值,不止是「技能封装」,更多的是对于对上下文管理的探索,我们把System Prompt、Prompt 历史对话 、Rules规范、RAG 知识库、 MCP Sever 统称为上下文
Skills 最大的设计亮点,是采用了渐进式披露机制。它不会一次性加载所有内容,而是分层、按需调用。
图片: https://uploader.shimo.im/f/Dc54PDmgFbUSTUhn.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
可以理解为:系统只在需要时打开相应的「技能模块」,让上下文始终保持 最轻量、最高效。对比传统 Prompt 而言,Skills 则是模块化 Prompt + 上下文调度系统。通过上面机制,解决众多实际问题。
Skills 如何在上下文中发挥能力
借助 Skills 的思路,我们把团队的流程,方法,工具,规则,技术,知识,个体的私域经验进行显性化,组装为一个 Skills ,这些我们都提前定义好, 让 AI 按照Skills 进行解决。所以 Skills 实际是隐性经验的集大成者。
近期CodeBuddy 等工具,也支持了 Slash Commands,相比 Skills , 有如下差异
图片: https://uploader.shimo.im/f/HORkffX4RqUIPIaW.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
简单来说: 两者是相互互补的
Slash Commands 指令是用户主动调用的快捷方式
Skills 是 AI 根据任务需求自动选择的专业能力
如果你已经在生产环境使用 LLM / Agent,这里有几条非常务实的建议,可作为迁移到 Skill 范式的起点:
先选一个痛点明显的高频任务,做一个 POC Skill,而不是一口气重构所有 Agent。
把现有长 System Prompt 和散落的 SOP、工具说明整理进 Skill 目录,逐步「解耦」逻辑与 Agent 代码。
为团队设定简单的 Skill 规范:命名、目录结构、文档模板、评估方法。
在安全上,把 Skill 当「内部软件包」看待,建立代码审查和权限控制。
从长远看,「一个强大的通用 Agent + 一个不断增长的 Skill 仓库」,比无数孤立、不可维护的垂直 Agent 更有机会成为企业的长期基础设施。
图片: https://uploader.shimo.im/f/B5o54iRyPf2SU25x.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
四、快速上手
demo版本
meeting-notes-pro
做一个“会议纪要 + 财务提醒 + 自动上传”的完整 Skills demo:
目录如下:
meeting-notes-pro/
├── SKILL.md
├── reference/
│ ├── finance-policy.md
│ └── style-examples.md
└── scripts/
├── check_budget.py
└── upload.py
SKILL.md 做导航,reference 按需加载,scripts 直接执行。
SKILL.md(核心:写清“何时用/怎么写/什么时候读 reference/什么时候跑脚本”)
name: meeting-notes-pro
description: >
会议纪要/行动项生成 + 预算合规提醒 + 可选上传。
用于会议录音转写、周会纪要、站会总结。
用户提到“纪要/总结/会议记录/行动项”时使用。
目标
将用户提供的会议内容整理成可执行的纪要,并在需要时:
- 触发【财务合规提醒】(仅在提到预算/采购/费用/金额等时)
- 触发【上传】(仅在用户明确说上传/同步/发送到服务器/保存到XXX时)
输出格式
1) 基本信息
会议主题:
时间:
参会人:未提供则写“未提供”
2) 议题列表(按出现顺序)
议题1:
议题2:
3) 结论(每条一句话)
…
4) 行动项(必须结构化)
行动项 Owner 截止时间 验收标准
… … … …
5) 风险与待确认(<=5条)
…
缺失字段一律写“待确认”,禁止臆测
质量规则
- 不要发明不存在的人名/金额/时间
- 原文含糊时:写“待确认”并列出要问的问题
- 语气:简洁、可执行、偏工程化
进阶能力:按需加载(Progressive Disclosure)
A. 财务合规提醒(仅在触发词出现时)
- 触发词:预算/采购/报销/费用/金额/合同/发票/付款
- 当触发时,读取 reference/finance-policy.md 并给出审批建议
B. 风格示例(仅当用户要求“按某格式/按某风格”时)
- 读取 reference/style-examples.md
C. 自动化脚本(仅在用户明确要求时)
- 若用户要求“检查预算是否超标/自动校验金额”,执行 scripts/check_budget.py
- 若用户要求“上传/同步/发送到服务器/保存到某处”,执行 scripts/upload.py
- 执行脚本后,把脚本输出(成功/失败原因/返回链接等)写入最终答复
reference/finance-policy.md(把“低频但重要”的规则拆出去)
财务合规简表(示例)
注意:这是示例模板,请按你公司的真实制度替换
1) 采购/外包
- 单笔 <= 5,000 元:业务负责人审批
- 5,000 ~ 50,000 元:部门负责人 + 财务审批
-
= 50,000 元:需要走采购流程 + 法务合同审核
2) 报销
- 交通/餐饮需提供发票
- 跨城差旅需说明出差事由 + 行程
reference/style-examples.md
风格示例(示例模板,可自定义)
示例 1:简洁风
- 每条结论一句话
- 行动项结构化
示例 2:详细风
- 结论包含背景信息
- 行动项附带优先级和预计工时
scripts/check_budget.py(确定性校验交给代码:更可靠)
scripts/check_budget.py
import re
import sys
from typing import List, Tuple
THRESHOLDS: List[Tuple[int, str]] = [
(5000, “业务负责人审批”),
(50000, “部门负责人 + 财务审批”),
]
def extract_amounts(text: str) -> List[int]:
# 简化示例:抓“xxx元/xxx块/xxxRMB”
nums = re.findall(r"(\d{1,9})\s*(?:元|块|RMB)", text)
return [int(x) for x in nums]
def check(amount: int) -> str:
if amount <= THRESHOLDS[0][0]:
return THRESHOLDS[0][1]
if amount <= THRESHOLDS[1][0]:
return THRESHOLDS[1][1]
return “采购流程 + 法务合同审核”
if name == “main”:
text = sys.stdin.read()
amounts = extract_amounts(text)
if not amounts:
print(“未识别到金额:无需预算校验”)
sys.exit(0)
for a in amounts:
print(f"识别金额:{a} -> 建议审批:{check(a)}")
scripts/upload.py(示例:把纪要发到你的系统)(脚本要解决确定性问题、错误处理清晰、依赖说明明确;避免让模型“想当然”。)
scripts/upload.py
import sys
import json
import time
if name == “main”:
content = sys.stdin.read()
# 这里用假上传示例:真实场景替换为HTTP请求/飞书/Confluence等
fake_url = f"https://example.com/notes/{int(time.time())}"
print(json.dumps({
“status”: “ok”,
“url”: fake_url,
“bytes”: len(content.encode(“utf-8”))
}, ensure_ascii=False))
测试如下:
cat /root/Algorithm/LLMmodel/meeting-notes-pro/meeting.txt | python /root/Algorithm/LLMmodel/meeting-notes-pro/scripts/upload.py
图片: https://uploader.shimo.im/f/LL9N8pAhZNRgdTPf.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
添加整合脚本,一条命令就可以输入会议文本,输出完整的纪要 + 财务提醒 + 上传结果
#!/usr/bin/env python3
– coding: utf-8 –
“”"
完整演示:会议纪要 + 财务提醒 + 自动上传
“”"
import re
import sys
import json
import time
from typing import List, Tuple
预算校验逻辑(check_budget.py)
THRESHOLDS: List[Tuple[int, str]] = [
(5000, “业务负责人审批”),
(50000, “部门负责人 + 财务审批”),
]
def extract_amounts(text: str) -> List[int]:
“”“提取金额”“”
nums = re.findall(r"(\d{1,9})\s*(?:元|块|RMB)“, text)
return [int(x) for x in nums]
def check_budget(amount: int) -> str:
if amount <= THRESHOLDS[0][0]:
return THRESHOLDS[0][1]
if amount <= THRESHOLDS[1][0]:
return THRESHOLDS[1][1]
return “采购流程 + 法务合同审核”
def financial_reminder(text: str) -> List[str]:
amounts = extract_amounts(text)
if not amounts:
return [“未识别到金额:无需预算校验”]
return [f"识别金额:{a} -> 建议审批:{check_budget(a)}” for a in amounts]
上传逻辑(upload.py)
def fake_upload(content: str) -> dict:
“”“假上传:返回 URL + 状态”“”
fake_url = f"https://example.com/notes/{int(time.time())}"
return {
“status”: “ok”,
“url”: fake_url,
“bytes”: len(content.encode(“utf-8”))
}
会议纪要生成(简化示例)
def generate_meeting_minutes(text: str) -> str:
“”"
简化生成逻辑:
- 按出现顺序提取议题
- 提取结论/行动项/风险待确认
“”"
lines = text.splitlines()
minutes = []
基本信息
topic = next((l.split(“:”)[1] for l in lines if l.startswith(“会议主题”)), “待确认”)
time_line = next((l.split(“:”)[1] for l in lines if l.startswith(“时间”)), “待确认”)
attendees = next((l.split(“:”)[1] for l in lines if l.startswith(“参会人”)), “未提供”)
minutes.append(f"会议主题:{topic}“)
minutes.append(f"时间:{time_line}”)
minutes.append(f"参会人:{attendees}\n")
议题列表
minutes.append(“议题列表:”)
for l in lines:
if l.startswith(“议题”):
minutes.append(l)
minutes.append(“”)
结论
minutes.append(“结论:”)
for l in lines:
if l.startswith(“结论”) or l.startswith(“- “):
minutes.append(l)
minutes.append(””)
行动项
minutes.append(“行动项:”)
minutes.append(“行动项\tOwner\t截止时间\t验收标准”)
for l in lines:
if l.startswith(“- “):
# 尝试解析行动项格式
parts = [p.strip() for p in re.split(r’\s{2,}', l[2:])]
if len(parts) < 4:
parts += [“待确认”] * (4 - len(parts))
minutes.append(”\t”.join(parts))
minutes.append(“”)
风险与待确认(<=5条)
minutes.append(“风险与待确认:”)
risk_count = 0
for l in lines:
if “待确认” in l:
minutes.append(f"- {l}“)
risk_count += 1
if risk_count >= 5:
break
if risk_count == 0:
minutes.append(”- 待确认事项暂无")
minutes.append(“”)
return “\n”.join(minutes)
主流程
if name == “main”:
# 从 stdin 读取会议文本
text_input = sys.stdin.read()
生成会议纪要
minutes = generate_meeting_minutes(text_input)
财务提醒(仅在触发词出现时)
trigger_words = [“预算”, “采购”, “报销”, “费用”, “金额”, “合同”, “发票”, “付款”]
financial_reminder_output = []
if any(word in text_input for word in trigger_words):
financial_reminder_output = financial_reminder(text_input)
上传(仅当文本中提到“上传/同步/发送”)
upload_output = {}
if any(word in text_input for word in [“上传”, “同步”, “发送”]):
upload_output = fake_upload(minutes)
输出整合结果
print(minutes)
if financial_reminder_output:
print(“财务合规提醒:”)
for line in financial_reminder_output:
print(line)
if upload_output:
print(“\n上传结果:”)
print(json.dumps(upload_output, ensure_ascii=False, indent=2))
测试如下:
cat /root/Algorithm/LLMmodel/meeting-notes-pro/meeting.txt | python /root/Algorithm/LLMmodel/meeting-notes-pro/scripts/upload.py
输出:
图片: https://uploader.shimo.im/f/AFERkcUPuUHcwup5.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3Njc2MDY4NTYsImZpbGVHVUlEIjoiWnprTE02anJCTkN2Vm9BUSIsImlhdCI6MTc2NzYwNjU1NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwicGFhIjoiYWxsOmFsbDoiLCJ1c2VySWQiOjczNjAzMjgwfQ.zTnWGCwSwoGpxfokZ8BJh3JPuMyFGW4LxKe4tvyTXdU
其中可直接使用的 meeting.txt 示例:
会议主题:季度市场推广复盘与预算规划
时间:2026-01-04 10:00 - 11:30
参会人:张三、李四、王五
议题1:上季度市场推广效果复盘
微信广告投入费用共计 12000 元,ROI 低于预期
信息流广告成本偏高,需要优化投放策略
议题2:下季度预算与采购计划
计划追加广告预算 60000 元
可能涉及外包设计服务,需要走采购流程和合同审批
议题3:会议纪要同步
本次会议纪要需要上传并同步到公司内部服务器
结论:
上季度部分推广渠道效果不佳,需要调整投放策略
下季度广告预算较大,需严格按照财务合规流程审批
行动项:
优化微信广告投放方案 张三 2026-01-15 ROI 提升至 1.5 以上
提交下季度广告预算审批 李四 2026-01-07 获得部门负责人和财务审批
对接外包设计采购流程 王五 2026-01-10 合同审批完成
上传并同步会议纪要 张三 2026-01-04 服务器可正常访问
进阶版本
meeting-notes-pro/
├── SKILL.md
├── reference/
│ ├── finance-policy.md
│ └── style-examples.md
├── scripts/
│ ├── check_budget.py
│ └── upload.py
├── core/
│ ├── router.py # 决策:用不用 reference / script
│ ├── minutes.py # 会议纪要生成
│ └── finance.py # 财务提醒封装
├── web/
│ └── app.py # FastAPI
└── README.md
core/router.py(Skill 决策中枢)
core/router.py
TRIGGER_FINANCE = [“预算”, “采购”, “报销”, “费用”, “金额”, “合同”, “发票”, “付款”]
TRIGGER_UPLOAD = [“上传”, “同步”, “发送”, “保存”]
def need_finance(text: str) -> bool:
return any(w in text for w in TRIGGER_FINANCE)
def need_upload(text: str) -> bool:
return any(w in text for w in TRIGGER_UPLOAD)
core/minutes.py(只负责纪要)
core/minutes.py
import re
def generate_minutes(text: str) -> str:
lines = text.splitlines()
out = []
def find(prefix, default="待确认"):
for l in lines:
if l.startswith(prefix):
return l.split(":", 1)[1]
return default
out.append(f"会议主题:{find('会议主题')}")
out.append(f"时间:{find('时间')}")
out.append(f"参会人:{find('参会人','未提供')}\n")
out.append("议题列表:")
for l in lines:
if l.startswith("议题"):
out.append(l)
out.append("")
out.append("行动项:")
out.append("行动项\tOwner\t截止时间\t验收标准")
for l in lines:
if l.startswith("- "):
parts = re.split(r"\s{2,}", l[2:])
while len(parts) < 4:
parts.append("待确认")
out.append("\t".join(parts))
return "\n".join(out)
web/app.py
from fastapi import FastAPI
from pydantic import BaseModel
from core.minutes import generate_minutes
from core.router import need_finance, need_upload
from scripts.check_budget import extract_amounts, check
from scripts.upload import fake_upload
app = FastAPI(title=“Meeting Notes Pro”)
class MeetingInput(BaseModel):
text: str
@app.post(“/run”)
def run(meeting: MeetingInput):
result = {}
minutes = generate_minutes(meeting.text)
result[“minutes”] = minutes
if need_finance(meeting.text):
amounts = extract_amounts(meeting.text)
result["finance"] = [
f"{a} 元 → {check(a)}" for a in amounts
]
if need_upload(meeting.text):
result["upload"] = fake_upload(minutes)
return result
结合 Dify / LangChain / Claude Tool 版本
第一步:在Dify中创建“电商数据分析”工作流
这是能力的核心。你可以在Dify工作室中:
构建工作流:添加“LLM节点”理解问题,连接“代码节点”执行安全的数据查询,再接入“文本处理节点”整理结果。
发布为工具:工作流调试无误后,在界面右上角点击 “发布” ,选择 “发布为工具”
。Dify会生成一个唯一的API端点(URL)。
第二步:创建对应的Agent Skill
这是技能调用的说明书。你需要创建一个名为 ecommerce_data_analysis 的文件夹,其核心是 SKILL.md 文件
yaml
name: ecommerce-data-analysis
description: 调用Dify工作流,对电商数据库进行安全的自然语言查询与智能分析,并返回结构化的报告。
在YAML元数据之后,你需要用Markdown详细描述技能的目的、调用Dify API的具体步骤(包括上一步获得的API URL和认证方式)、输入输出示例,以及安全规范(例如,只允许查询特定的数据表)。
第三步:建立连接与执行
这是技能生效的关键。你需要让Claude能够调用Dify工作流,有两种主流方式:
方式A(推荐,标准化):使用 Dify MCP Server
当Claude判断用户问题需要数据分析时,它会加载此Skill,按照说明调用Dify工作流API,并将返回的数据加工成用户易懂的报告。
这是一个开源项目,可以作为MCP服务器运行,让支持MCP协议的Claude直接发现和调用Dify中的工作流,如同使用本地工具一样方便。
方式B(直接灵活):在Skill中引导Claude直接调用Dify工作流的HTTP API。你可以在 SKILL.md 中详细说明如何用curl或Python requests库调用该API。Claude在代码执行环境中可以运行这些脚本。
其他:
你对Claude说:“请帮我分析一下这份《AI芯片发展报告》,总结技术路线,并找出最近三个月的相关市场动态。”
Claude 识别出需求后,自动加载research-assistant技能。
该技能驱动后端的LangChain应用执行一个复杂流程:先读取你提供的PDF,总结核心;再自动调用搜索引擎工具,查找最新新闻;最后整合成一份结构化的报告。
第一步:构建LangChain后端应用
这是整个Demo的“大脑”。你需要创建一个独立的LangChain应用(例如一个FastAPI服务器),核心是构建一个功能强大的Agent。
python
示例:LangChain Agent的核心架构思路
from langchain.agents import initialize_agent, Tool
from langchain_community.document_loaders import PyPDFLoader
from langchain_community.utilities import SerpAPIWrapper
1. 定义工具
def pdf_summary_tool(file_path):
“”“读取并总结PDF文档”“”
loader = PyPDFLoader(file_path)
docs = loader.load()
# … 后续总结逻辑
return summary
search_tool = SerpAPIWrapper()
2. 封装工具列表供Agent使用
tools = [
Tool(name=“PDF摘要工具”, func=pdf_summary_tool, description=“用于读取和总结PDF文档内容”),
Tool(name=“网络搜索”, func=search_tool.run, description=“用于搜索最新的网络信息”),
]
3. 初始化Agent(假设使用Claude模型)
agent = initialize_agent(
tools=tools,
llm=claude_llm, # 此处替换为你的Anthropic Claude模型实例
agent=“structured-chat-react-description”, # 适合复杂任务的Agent类型
verbose=True
)
4. 此Agent可以执行如“先总结A.pdf,然后搜索其提及的XX技术的最新进展”的复杂指令
这个应用需要提供一个清晰的API接口(如 POST /analyze),接收自然语言指令并返回Agent的执行结果。
第二步:创建对应的Agent Skill
这是让Claude知道“在何时以及如何”调用你上面构建的能力的说明书。创建一个名为 research_analysis_skill 的文件夹,核心是 SKILL.md 文件。
markdown
name: research-analysis-assistant
description: 一个强大的研究分析助手。当你需要深入分析一份文档(如PDF),并基于文档内容进行联网搜索、信息整合以生成综合报告时,请调用此技能。
研究分析助手技能
何时使用
- 用户上传了一份文档(PDF、Word等)并要求分析其内容。
- 用户的问题需要结合特定文档内容和外部最新信息来回答。
- 用户要求对复杂主题进行多步骤调研和分析。
如何调用
- 确保用户已提供待分析的文档文件。
- 将用户的分析请求和文档路径(或文件)作为参数。
- 向以下LangChain后端API发送POST请求:
端点:http://your-langchain-server/analyze
请求体示例 (JSON):{ "query": "请总结这份文档的核心观点,并查找2024年关于文中‘存算一体’技术的最新商业新闻。", "file_path": "/path/to/uploaded/AI-Chip-Report.pdf" } - 将API返回的结构化结果,用清晰、易懂的语言重新组织后呈现给用户。
示例对话
用户:“我刚上传了《量子计算报告.pdf》,能告诉我里面主要的硬件方案是什么吗?顺便看看最近有没有离子阱路线的新突破。”
Claude: [加载此技能并调用后端] “根据对报告的分析以及最新的网络信息,我发现…”
你需要将 your-langchain-server 替换为你实际部署的后端地址。这个Skill的本质是 “教”Claude在特定场景下,去调用一个外部API。
第三步:连接与执行
运行环境是关键:
部署:将你的LangChain应用部署到一台Claude可以访问的服务器上(可以是本地开发环境配合内网穿透,或云服务器)。
配置Skill:将 research_analysis_skill 文件夹放置在Claude Desktop指定的Skills目录中,或通过相应方式加载。
对话:当你的问题触发技能描述时,Claude会按照 SKILL.md 中的指引,向你的LangChain后端发送请求,并将处理结果融入回复。
Claude Code + 国产 GLM-4.6 的搭配进行实验
https://juejin.cn/post/7563190036532707391
skill与mcp和谐共生的配合关系项目:
MassLab-SII/open-agent-skills
https://ms-agent.readthedocs.io/zh-cn/latest/Projects/agent-skills.html
参考:https://blog.csdn.net/Trb701012/article/details/156390765
https://zhuanlan.zhihu.com/p/1985830802471273144
https://blog.csdn.net/qq_38423105/article/details/156061231?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-13-156061231-blog-156390765.235v43control&spm=1001.2101.3001.4242.8&utm_relevant_index=15
https://blog.csdn.net/qq_38423105/article/details/156061231
https://agentskills.io/what-are-skills
https://www.cloudnativedeepdive.com/using-agent-skills-in-vs-code/
https://developer.volcengine.com/articles/7587309063479361546
Anthropic 官方 Agent Skills 文章:Equipping agents for the real world with Agent Skills
https://github.com/anthropics/skills/fork
https://mp.weixin.qq.com/s?__biz=MzkwMDY4OTI4MA==&mid=2247502847&idx=1&sn=ddeed852985aef848502aaea194013a0&scene=21&poc_token=HJ4SWmmjBmEDcKnUxGdhynOKFC6Fd5hs4OEylCKf
Anthropic Agent Skills 文档:https://platform.claude.com/docs/zh-CN/agents-and-tools/agent-skills
Agent Skills 开放标准:https://agentskills.io
MCP 协议规范:https://modelcontextprotocol.io
Skills 食谱(GitHub):https://github.com/anthropics/claude-cookbooks/tree/main/skills
https://blog.csdn.net/u010026928/article/details/156391796
https://developer.aliyun.com/article/1688626
https://blog.csdn.net/wzy_1988/article/details/156511576?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-156511576-blog-153525135.235v43control&spm=1001.2101.3001.4242.2&utm_relevant_index=3
https://blog.csdn.net/yangshangwei/article/details/155905394
更多推荐
所有评论(0)