如何构建行业 Agent 的 RAG

行业 Agent 和我们常用的「通用聊天 Agent」不是一类东西。

行业 Agent 是要能解决问题的,而查资料只是其中一步,后面还要做判断、走流程、调用系统、校验结果、留痕、可回放。

RAG 在这里的角色也变了:它不只是给模型喂上下文,而是给 Agent 提供可执行任务所需的依据、约束、参数和证据链。

今天我们聊一下行业 Agent 构建过程中的 RAG 怎么写,从目标、数据,检索以及使用 RAG 等等方面。

1. 行业 Agent 的 RAG 要服务什么能力

行业 Agent 常见的工作方式是「多步闭环」:

  1. 识别问题类型与业务对象(客户、设备、合同、工单、订单、项目、账号等)
  2. 查依据(制度、手册、知识库、历史工单、标准、接口文档)
  3. 做动作(查系统、下发指令、开通配置、生成工单、发邮件、写报告、提审批)
  4. 校验与回写(确认变更成功、回填字段、留痕、把引用/证据挂到工单)
  5. 解释(给用户说明依据、影响范围、回滚方案、下一步建议)

所以行业 Agent 的 RAG 不只是「问答检索」,而是至少要覆盖这些信息类型:

  • 规则依据:制度、条款、SOP、合规模板、变更规范
  • 操作依据:系统使用手册、接口文档、参数含义、错误码处理
  • 对象事实:来自业务系统的实时/准实时数据(用户信息、资源状态、库存、账单、设备状态)
  • 历史经验:工单处理记录、故障复盘、已知问题(KEDB)
  • 风险边界:禁用操作清单、权限范围、需要人工复核的条件

如果我们只做「文档向量库 + 生成」,Agent 走到第 3 步就会卡:它不知道该调用哪个系统、需要哪些字段、什么情况下要停下来让人确认,也不知道怎么证明自己做对了。

2. 指标

行业 Agent 场景里,最好用三类指标描述:

2.1 任务完成类指标

  • 任务成功率(最终动作成功并通过校验)
  • 平均完成时长(端到端)
  • 人工介入率(需要人确认/补充信息/兜底)
  • 回滚率(执行后需要撤销/修正)

2.2 风险类指标(红线不能过)

  • 越权率(检索/执行是否越权,目标是 0)
  • 误执行率(不该执行却执行)
  • 误答导致的错误操作(把“编出来的依据”当成执行依据)
  • 引用不可追溯率(给不出来源或来源不支持结论)

2.3 知识与检索类指标(用于驱动迭代)

  • 依据命中率(标准依据是否出现在 topK)
  • 冲突处理正确率(新旧版本/多来源冲突时是否选对)
  • 时效正确率(是否引用过期/废止内容)
  • 覆盖率(高频问题是否覆盖)

行业 Agent 的 RAG 设计,最终要对这些指标负责。否则我们会陷入「答得像那么回事,但不敢让它动系统」的状态。

3. 数据层

行业 Agent 的 RAG,数据比模型更重要。

3.1 三类数据

  1. 静态权威知识:制度、规范、手册、标准、产品文档
    目标:可追溯、版本可控、可引用
  2. 动态业务事实:来自业务系统的数据(CRM、工单、CMDB、监控、计费、IAM 等)
    目标:可校验、可审计、最好可回放(至少保留查询快照)
  3. 过程与经验:历史工单、故障复盘、处理记录、FAQ 演进
    目标:可过滤(质量参差)、可分级(权威/经验/猜测)

很多项目失败是因为把第 3 类当第 1 类用,把「经验」当「制度」。Agent 一旦据此去执行动作,风险会放大。

3.2 每个知识片段必须带的元数据

行业 Agent 需要的不只是「能搜到」,还要「能用来做动作」。建议每个 chunk 至少包含:

  • doc_id / chunk_id
  • source(系统/库)
  • source_url(可点击或可定位)
  • title_path(标题链)
  • doc_type(制度/手册/接口文档/复盘/工单等)
  • versionstatus(草稿/已发布/已废止)
  • effective_from / effective_to(能给就给)
  • owner(维护人/团队)
  • updated_at
  • 适用范围标签:产品线/地区/客户/机型/环境(生产/测试)
  • 权限标签:RBAC/ABAC 所需字段
  • 可执行性标签(建议加):
    • 是否可作为执行依据(例如制度/已发布 SOP 才能)
    • 是否需要人工复核(高风险操作)
    • 是否仅供参考(复盘/经验)

这些标签对 Agent 比较关键:它能决定「能不能做、要不要停、怎么解释」。

3.3 文档解析与切分

行业 Agent 的 RAG 的切分策略,优先级一般是:

  1. 按结构切:章/节/条款/接口字段说明/错误码条目
  2. 把“前置条件/限制/例外”跟规则放一起
  3. 表格与字段定义要保表头(字段含义脱离表头就没法用)
  4. 把可执行步骤单独成块(SOP、Runbook、变更步骤)

注意:不要把「定义」「适用范围」「例外条款」切碎。Agent 执行动作时,最需要的就是边界条件和限制。

4. 索引与检索

行业 Agent 和常规的 Agent 不同,其更依赖于「过滤 + 排序 + 证据链」

4.1 使用混合检索

行业 Agent 的查询里会出现大量「硬信息」:

  • 条款号、标准号、型号、错误码、参数名、接口路径、工单号、配置项名

纯向量在这些场景不稳。工程上更常用的是:

  • 关键词/BM25:抓编号、术语、字段名、错误码
  • 向量召回:抓语义相近、同义表达
  • 融合 + 重排:把候选集排序成「最能支持动作/结论」的那几段

4.2 检索要先过滤,再找相似

行业 Agent 的过滤通常是强约束,如下:

  • 权限过滤(用户/角色/租户/数据域)
  • 状态过滤(废止、草稿默认不进)
  • 生效时间过滤(尤其制度、计费、合规)
  • 适用范围过滤(产品/地区/环境)
  • 数据域隔离(内部/客户侧/合作方)

如果我们把这些留到生成阶段「让模型自己注意」,效果不可控,风险也不可控。

4.3 Agent 专用检索

不止检索答案,还要检索工具与参数

行业 Agent 经常需要两类额外检索:

  1. 工具检索(Tool RAG)
    从「工具说明库/接口文档/SOP」里检索:该用哪个工具、需要哪些参数、有哪些限制、失败怎么处理。
  2. 参数与字段检索(Schema RAG)
    从「数据字典/字段说明/枚举值」里检索:字段含义、可选值、校验规则、示例格式。

这两类检索的结果不一定直接展示给用户,但会决定 Agent 能不能把动作做对。

5. 固化 Agent 使用 RAG 的逻辑

行业 Agent 的 RAG 关键是要「把 RAG 插进决策点」

行业 Agent 常见的内部循环大致是:

  • Plan(决定下一步做什么)
  • Act(调用工具/检索/执行)
  • Observe(拿到结果)
  • Decide(是否继续、是否需要人确认、是否结束)
  • Explain(对外输出)

RAG 的插入点建议固定成三处:

5.1 决策前

用 RAG 找「规则边界」

在 Agent 做出关键决策前,先检索:

  • 是否允许执行(权限、合规、风险等级)
  • 前置条件是什么(必须具备哪些信息、哪些系统状态)
  • 需要的审批/确认是什么(是否必须人工确认)

这一步的输出的是「约束」,不是「答案」。它会影响下一步是继续、暂停还是转人工。

5.2 执行前

用 RAG 找「操作步骤与参数」

执行某个动作前,检索:

  • SOP / Runbook / 接口文档
  • 必填参数、参数来源
  • 校验方式(执行后如何确认成功)
  • 回滚方式(失败/异常如何撤销)

这一步的输出是「可执行步骤」,不是「解释性段落」。

5.3 执行后

用 RAG 做「结果判定与错误处理」

拿到工具返回值后,检索:

  • 错误码含义与处理建议
  • 常见失败原因
  • 是否需要升级/转人工
  • 是否需要二次校验(比如跨系统一致性)

这一步的输出是「下一步动作建议 + 证据」。

6. 生成与输出

行业 Agent 的输出要分层,不要把所有东西都写给用户

行业 Agent 的输出建议拆成三层,分别服务不同目标:

  1. 用户层:结论/进展、需要用户补充什么、下一步怎么走
  2. 证据层:引用依据(链接、页码、版本、生效日期)
  3. 执行层(留痕层):本次调用了什么工具、参数摘要、返回结果摘要、校验结果、回滚点

用户不一定要看到执行层细节,但系统必须存储这些内容。只有出了问题能回放,才敢放权。

同时,行业 Agent 的生成要有硬规则:

  • 没有命中权威依据:不输出肯定结论
  • 有冲突:必须把冲突来源、版本、生效时间写清楚
  • 涉及高风险动作:必须停下来请求确认(并把依据与影响范围给出来)
  • 引用必须来自检索上下文:不允许来虚的,「凭印象补一句」

7. 权限、审计、隔离

**行业 Agent 的 RAG 必须「检索前隔离」。

行业 Agent 一旦能调用系统,风险比问答高一个量级。权限要分两层:

7.1 知识权限

能不能看的问题

  • 文档/知识片段按 ABAC/RBAC 做过滤
  • 按租户隔离(多客户必做)
  • 按数据域隔离(内部策略、客户信息、合作方信息)

7.2 行为权限

能不能做的问题

  • 工具级权限:这个角色能调用哪些工具
  • 动作级权限:同一工具下哪些操作允许(例如只读查询 vs 修改/下发)
  • 参数级权限:同一动作下哪些资源范围允许(例如仅能操作自己负责的项目/客户)

很多团队只做了「知识权限」,没做「行为权限」。

这会导致不放心,即使 Agent 能查到 SOP,也能学会「怎么做」,但你又不敢让它真的做。

7.3 审计要能回答四个问题

  • 为什么这么做(依据是什么)
  • 做了什么(调用了哪些工具、关键参数是什么)
  • 得到了什么(返回结果与校验结果)
  • 谁批准的(如果需要人工确认)

没有这四个问题的答案,行业 Agent 很难通过安全审查,也很难在出事后定位责任与修复点。

8. 灰度上线策略

先控制风险,再谈覆盖率

行业 Agent 的上线节奏建议按权限逐步放开:

  1. 只读 Agent:只检索、只解释、只给建议,不执行任何写操作
  2. 半自动 Agent:可以生成“执行计划/工单草稿/变更单草稿”,必须人工确认后执行
  3. 受限自动 Agent:只允许低风险、可回滚、可校验的动作自动执行(例如查询、对账、生成报表、创建工单、补全字段)
  4. 高风险动作:默认保留人工确认,除非你能做到严格的权限、校验、回滚、审计,并且有明确的责任边界

上线必须准备三套兜底:

  • 超时与降级:检索失败/重排失败/模型失败时怎么退化
  • 失败回滚:执行失败怎么撤销,撤销失败怎么升级
  • 人工接管:在关键节点能一键转人工,并把证据与执行轨迹带过去

9. 常见坑

  1. 把「经验工单」当「标准答案」:Agent 会把偶发处理当成通用规则。必须分级与降权。
  2. 只做知识库,不做数据字典与工具库:Agent 会不知道参数怎么填、字段是什么意思、错误码怎么解。
  3. 只做检索,不做执行前校验与执行后校验:敢执行的前提是可校验、可回滚。
  4. 权限只管文档,不管工具:最容易在这里翻车。
  5. 没有回放评测:你不知道一次小改动会不会让 Agent 在某个分支上开始乱走。
  6. 把「多轮对话」当「任务编排」:行业 Agent 的关键是状态机与决策点,不是聊得多。

最后,行业 Agent 的 RAG 如果要构建,不仅仅是算法的事情,需要更多的业务专家,业务 Owner 来直接参与,他们才是最懂行业的人。需要他们来定义「什么算答对/答错」、哪些文档权威、版本如何取舍、哪些内容不能答。

以上。

AI 编程时代,人与人的交流减少了是好事吗?

随着 AI 编程在团队越来越普及,猛然发现一个正在变得「习以为常」的变化:以前遇到问题,第一反应是问同事或 Google;现在第一反应是问 AI。

Anthropic 在 2025 年 8 月对内部 132 名工程师和研究员做了调研(53 次深度访谈 + Claude Code 使用数据分析),把这个变化讲得很具体:Claude 成了“第一站”。有人说自己现在提问更多了,但 80%–90% 的问题都丢给 Claude,只有剩下 Claude 解决不了的才去找同事。

交流减少,到底是不是好事?

答案很难用一句话盖棺定论,但可以把它拆开:减少的是什么交流、增加的是什么交流、谁受益、谁受损、组织会丢掉什么能力。拆开之后,我们聊聊。

1. 交流为什么会减少?

「问同事」换成「问 AI」,最核心的原因不是大家突然不爱社交,而是成本变了

  • 问 AI 不需要等对方空闲
  • 不担心打断别人
  • 不欠人情
  • 不需要把上下文组织成「适合对人讲」的样子(很多时候我们只要把报错、代码片段、目标贴过去)
  • AI 还能陪你迭代:你改一句,它再改一句,来回几十轮也不尴尬

Anthropic 的访谈里,很多人把 Claude 描述成「常驻协作者」。但与此同时,他们也强调:多数工作仍要监督和验证——频繁使用,不等于完全放手。在问卷里,超过一半的人认为自己能「完全委派」的比例只有 0–20%。

交流减少,不代表工作变简单;很多交流只是从「人际通道」搬到了「人机通道」。

2. 交流减少可以带来好处

如果只说交流减少带来「效率提升」,太粗了。

更准确的说法是:很多原本不值得打扰人的问题,现在可以被即时解决,这会直接改变团队的节奏。

Anthropic 的数据里有几个信号很典型:

  • 受访者自报:现在 Claude 参与了他们 约 59%–60% 的工作,平均带来 约 +50% 的生产力提升(相较 12 个月前是 2–3 倍增长)。
  • 他们把生产力的来源描述为:每类任务耗时略降,但产出量显著上升
  • 还有一个容易被忽略的点:受访者估计 27% 的 Claude 辅助工作“本来不会做”,包括一些“nice-to-have”、探索性工作、文档测试、以及小修小补。

交流减少在这里的正面作用是:
很多「本来要去问人」的碎问题,被 AI 吃掉以后,人的协作可以更集中在真正需要对齐的地方。

在 Anthropic 的访谈里,有人说 Claude 形成了一个过滤器:例行问题交给 Claude,同事只处理更复杂、更需要组织上下文或判断力的部分。

这对很多团队来说,会带来几类直接收益:

  1. 减少同步阻塞:你不用等某个专家上线回复,很多事可以自己推进。
  2. 减少社交摩擦:不必反复确认「我现在打扰你是否合适」。
  3. 让“冷启动”更容易:对新人或跨领域的人,AI 能补齐工具链、代码风格、惯例解释。
  4. 让协作更聚焦:把人从「答疑机器人」解放出来,去做判断、方案权衡、目标对齐。

从组织角度讲,这确实是好事:同事的时间更像「稀缺资源」,而 AI 的时间不是

3. 交流减少是有代价的

交流减少的问题在于:人与人的交流减少,减少的往往不是闲聊,而是一些「看起来低效、但在组织里非常有价值」的过程。

3.1 指导与传承会变弱(尤其对新人)

Anthropic 有个很直接的反馈:一位资深工程师说,难过的是初级员工不像以前那样常来问问题了——虽然他们确实更快得到答案、学得也更快,但连接少了。

这类“连接”不是情绪价值这么简单,它对应的是:

  • 代码审美与工程判断的口口相传
  • 对系统边界、坑位、历史遗留的理解
  • 「为什么我们不这么做」的经验
  • 出问题时应该找谁、怎么升级、什么时候停手

AI 能解释代码、给建议,但它替代不了一个组织里那些隐性的「运行规则」和「风险嗅觉」。或者我们可以称它为「潜规则」

3.2 越依赖 AI,越需要高手,但高手可能变少

Anthropic 提到一个很关键的矛盾:监督 Claude 需要技能,而过度使用 AI 又可能让技能变少。有人担心的不是自己会不会写代码,而是「监督与安全使用」的能力会不会退化。

访谈里还有个安全相关的例子很典型:Claude 提出一种「很聪明但很危险」的方案,像「非常有才但缺经验的初级工程师」会提的那种。能识别这种危险,需要经验和判断力。

当团队把大量交流(包括讨论、复盘、推演)替换为「我和 AI 私下迭代」,长期会出现一种风险:
团队表面产出更快,但「集体判断力」的增长变慢。

3.3 协作方式会变

Anthropic 的访谈呈现出分化:

  • 约一部分人认为协作没变:会照开、方向照讨论,只是执行方式变成「你对着很多个 Claude 工作」。
  • 也有人明显感到:自己和 Claude 的协作远多于和同事的协作。
  • 有人喜欢这种变化,因为“不用麻烦别人”;也有人抵触,因为“更喜欢和人一起工作”。

这说明:交流减少不是单向度的,它改变的是交流的结构——从“随手问”转向“更重的对齐”。
而一旦对齐变重,团队如果没有刻意经营,很容易出现:

  • 每个人都在本地把东西做很快,但最终合并、上线、验收时冲突变多
  • 设计决策被“私下定稿”,缺少充分挑战
  • 标准不一致:测试、可维护性、可观测性被忽略(尤其在产出量暴涨时)

当「实现」和「规划」都更多交给 AI,人类之间如果还沿用旧的协作节奏,很容易失配。

3.4 意义感

写代码的「手感」和「心流」正在消失,甚至影响职业满足感。
从个人体感上来说也是,已经没有心流和手感的状态了,只不停的输入提示词和等待。 当然,你的脑海里还是会有一个架构图,一个方向。 如果这个都没有了,那你存在和不存在已经没有意义了。

也有人发现自己真正喜欢的是「写完之后带来的结果」,而不是「写的过程」。

这会影响一个很现实的问题:当我们减少了与同事的交流,同时也减少了自己动手的比例,我们每天工作的乐趣来源会改变。如果团队不谈这个问题,人的流失会以更隐蔽的方式发生。

4. 所以,交流减少是不是好事?

看你减少的是哪一种

把「交流」粗暴地当成一个东西,会得出很混乱的结论。更可操作的拆分方式是:你减少的是下面哪一种?

4.1 如果减少的是“低价值同步”,通常是好事

比如:

  • 解释某个报错怎么修
  • 查一个命令怎么用
  • 复制粘贴式的示例代码
  • “我现在卡住了,给我一个思路”这种轻量提示

这些问题交给 AI,整体是正收益:快、便宜、不打扰人。

4.2 如果减少的是「决策对齐」和「经验传承」,长期不是好事

比如:

  • 为什么我们要这么设计?约束是什么?边界是什么?
  • 这个改动会不会引入安全/合规风险?
  • 出现事故时如何复盘、如何改流程?
  • 新人如何在真实项目里形成判断力?
  • 谁对什么负责?升级路径是什么?

这些不是「知识问答」,而是组织的运行方式。AI 可以参与,但不能替代团队成员之间的共识建立。

4.3 如果减少的是「互相看见」

我们会失去韧性

很多团队扛过线上事故、跨部门冲突、方向摇摆,靠的不是某个代码技巧,而是:

  • 彼此信任
  • 知道对方擅长什么、在意什么、底线是什么
  • 关键时刻愿意帮、愿意兜

当日常交流下降到只剩「正式会议」,这类韧性会下降。平时看不出来,出事时就会很明显。

5. 把「人际交流」从随缘变成机制

如果我们是负责人,最重要的不是号召大家「多交流」,而是把交流做成机制,让它在 AI 加速的节奏下仍然成立。

5.1 明确:哪些事必须找人,哪些事默认找 AI

给团队一个简单的「分流规则」,避免两种极端:

  • 极端 A:什么都问人,人被打爆
  • 极端 B:什么都不问人,最后在合并时爆炸

可以直接定几条硬规则(按团队情况调整):

  • 涉及架构边界、接口契约、数据一致性、安全权限:必须找人评审/同步
  • 影响线上、影响成本、影响合规:必须找人
  • 只是工具用法、报错排查、脚手架生成:默认问 AI
  • 不确定是否该找人:先写清楚问题和已尝试的路径,再找人(减少沟通成本)

5.2 给资深工程师留出“可见的指导时间”

Anthropic 的访谈里已经出现了「新人不来问了」的信号。很多团队会误判:新人不问 = 新人更强。短期可能是,长期不一定。

更稳的做法是:

  • 每周固定一个短时段做 office hours(公开问答,不私聊)
  • 重要模块设定 design review/ADR(哪怕轻量)
  • 对“AI 生成的关键代码”设立更严格的 review 标准(不是反 AI,而是防止组织能力流失)

核心目标是:让“提问—讨论—形成共识”这条链继续存在,只是把低价值部分交给 AI。

5.3 把「AI 使用痕迹」纳入协作,而不是藏起来

现在很多人会私下反复与 AI 迭代,最后只给团队一个结果。协作成本反而上升,因为别人看不见过程,也不知道你为什么这么做。

我们可以要求(或鼓励)大家在 PR/设计文档里补两类信息:

  • 关键决策的备选方案与取舍(哪怕两三条)
  • 风险点和验证方式(你如何确认它是对的)

这会让交流更少但更高质量。

5.4 允许「必要的慢」

关键能力要刻意练

团队层面可以做这些:

  • 对核心链路、核心组件:要求成员能解释清楚,而不是「AI 说的」
  • 对新人:阶段性要求手写/手推一些关键部分,确保他们能监督 AI,而不是被 AI 带着跑
  • 对事故复盘:强调人对系统的理解沉淀,而不是贴一段 AI 总结

目标不是回到过去,而是让团队保持「监督能力」。

6. 我们能做点什么

如果我是工程师,交流减少对我最直接的影响通常是两点:我变快了,但我更孤立了。要避免后者,方法也不复杂。

6.1 让 AI 解决「问题」,让人参与「判断」

我们可以默认把下面这些交给 AI:

  • 解释陌生代码
  • 查资料、列步骤
  • 生成脚手架
  • 写测试样例的初稿
  • 重复性重构

但遇到这些场景,建议尽量把人拉进来:

  • 需要在多个方案之间做取舍
  • 觉得“有点不对劲但说不上来”
  • 要改动一个并不拥有的模块
  • 担心引入隐性风险(安全、性能、成本、可维护性)

AI 很会「给你一个能跑的答案」,但很多线上事故的起点就是“能跑”。

6.2 主动经营「被看见的贡献」

当大家都在本地和 AI 加速时,团队很容易只看到结果,看不到难度。我们需要更明确地让别人理解我们的贡献是什么,尤其在:

  • 做的是“减少未来成本”的事(可观测性、稳定性、性能、可维护性)
  • 修的是“papercuts”(Anthropic 也提到 Claude Code 里 8.6% 的任务属于这类小修小补)

这些工作如果不被看见,组织很容易把它们当作「AI 随手做的」,从而压缩这类投入,最后反噬效率。

6.3 保留与同事的「低成本连接」

不需要刻意社交,也不用强迫自己多聊。最实用的是维持低成本连接,比如:

  • 每周一次简短同步:在做什么、接下来风险是什么、需要谁拍板
  • 关键节点提前说:我准备这么改,谁最该看一眼
  • 把求助写成可复用的文本:背景、现象、试过什么、倾向的方案

这样不会回到「到处问人」,但也不会变成“「独自和 AI 闭门造车」。

7. 小结

交流减少本身不是问题,但当交流减少以失去组织能力时这会是一个问题,而且还是一个大的问题。

「人与人的交流减少」这件事,短期几乎一定会发生,因为它符合成本与效率逻辑。Anthropic 的内部研究把这种变化讲得很直白:AI 正在成为第一入口,很多例行沟通会被替代,协作结构会重排。

真正需要在意的是:

  • 我们减少的是不是那些本来就该被自动化吞掉的交流
  • 我们有没有保留决策对齐、经验传承、风险评审这些「组织能力」的通道
  • 当每个人都能更快产出时,我们的团队是否还能形成一致的标准与判断

如果这些做到了,交流少一点通常是好事:更少打扰、更少等待、更高产出。
如果这些没做到,交流少一点会变成隐性负债:新人长得快但根不稳,系统跑得快但风险更高,团队看起来忙但共识更薄。

参考资料

以上。

AI Agent 的 Skill 和行业 Workflow

在 2025 年的 10 月份,Anthropic 发布了 Claude 模型的一项重大更新的 Agent Skills,它允许用户将专业知识、脚本和资源打包成模块化的“技能文件夹”(Skill folders),让 AI 能在特定工作场景中更专业地执行任务。

如果我们在做行业 Agent、内部 Copilot、或想把 Claude Code / API 用在业务里,那就需要我们在做之前把「Skill」和「行业 Workflow」这两件事想清楚,并知道从哪里下手。

1. Skill 和行业 Workflow 的概念

1.1 Skill 是什么?

简单说:

Skill = 给模型的一份可复用「操作说明书 + 流程模板」

在 Claude 体系里,Skill 是一个带 SKILL.md 的文件夹,它告诉模型:
“在什么情况下该用我、我要完成什么任务、要按什么步骤做、输出要长什么样。”

特点有几个:

  • 面向具体任务,不是一个抽象的「能力标签」
    例如:生成符合公司品牌规范的 PPT按照内部代码规范重构文件按财务模板做对账报告
  • 本质上是文字写清楚的 SOP + 可选的脚本
    主体就是 Markdown 文档,有需要时再绑上 Python 脚本去做确定性处理。
  • 可以被模型自动发现和按需加载
    模型不会一直把完整 Skill 塞在上下文里,只在命中时再读取详细内容。

它和我们平时说的「提示词」的区别在于:
提示词是一次性、散落的;Skill 是结构化、可版本化、可共享的。

1.2 行业 Workflow 是什么?

Workflow 可以理解为:

把行业中的业务流程,做成清晰的步骤编排和 IF-ELSE 逻辑。

过去这些东西已经存在于:

  • 各种脚本、RPA、BPM 系统
  • 系统之间的 API 调用编排
  • 内部运维 / 运营同学脑子里和文档里的 SOP

在 Agent 语境下,我们关心的是一件事:

怎么把这些已有流程封装成「可由 Agent 触发、可观测、可审计」的工作流节点。

行业 Workflow 的关键特征:

  • 强约束:
    对输入 / 输出有严格格式要求,执行过程里有清晰的分支、回滚、告警。
  • 强依赖业务 Know-how:
    为什么要这样分支,Why 在流程里,而不是在模型参数里。
  • 长期稳定运行:
    一旦跑到生产,就不希望被大模型的「心情」影响。

2. Claude Code 的 Skill

在 Claude 的整体设计里,Skills 是一个非常核心的扩展机制。它解决了两个问题:

  1. 如何在不撑爆上下文的前提下,给模型装很多垂直能力?
  2. 如何让业务团队通过“写文档”的方式,而不是“写模型”的方式扩展能力?

2.1 一个 Skill = 一个带 SKILL.md 的文件夹

Claude 官方定义里,一个 Skill 的最小单元就是:

  • 一个文件夹
  • 里面一个 SKILL.md
  • 也可以再带一些脚本、资源文件

官方给出的模板是这样的:

---
name: my-first-skill
description: 这是一个关于此 Skill 能做什么以及何时使用它的清晰描述。
---
# 我的第一个 Skill

[在这里添加您的指令,Claude 在激活此 Skill 时会遵循这些指令]

## 示例
用法示例 1
用法示例 2

几个要点:

  • name:唯一标识,最好跟任务直接相关。
  • description:非常重要,模型靠这个来判断「什么时候用你」。
  • 正文部分:
    写清楚目标、步骤、注意事项、输出格式、示例

只要这一个 Markdown 写好了,一个可用 Skill 就成立了,不需要额外的配置文件。

2.2 具体例子:PPT Skill

官方仓库里有一个 PPTX 相关的 Skill,SKILL.md 类似下面这种结构:

  • YAML Frontmatter:说明 Skill 名称、用途(处理 PPTX)
  • 正文:分章节写

    • 如何解析 PPTX
    • 如何修改版式
    • 如何保证品牌颜色与模板统一
    • 输入 / 输出约定
    • 示例调用方式

Claude 的做法是:

  1. 会话启动时,只把所有 Skill 的 name + description 读一遍,放到系统级提示里。
  2. 当用户输入与某个 Skill 的描述高度匹配时,Claude 再去把这个 Skill 的完整内容加载到上下文中。

这就是文档里提到的「渐进式披露(Progressive Disclosure)」机制。

2.3 渐进式披露

这个词其实有点装,但装得有点厉害,使用这种方式的原因很直接:Token 成本和性能。

  • 初始加载时,每个 Skill 只占用几十个 Token(元信息)。
  • 真正用到的时候,才把 SKILL.md 的主体搬进来。
  • 如果 Skill 还拆成多个文件,Claude 只会读当前任务需要的那部分。

结论:我们可以放心装很多 Skill,而不用太担心上下文被占满。

2.4 Skill 里可以带代码

文档里也提到,Skill 可以带 Python 脚本等可执行文件。

用途主要有两类:

  1. 做确定性计算 / 校验

    • 排序、过滤、格式校验
    • 比如:生成 GIF 之后检查文件大小是否符合 Slack 限制
  2. 做简单的集成调用

    • 调一个内部 API
    • 读取一个本地文件,然后把内容返给模型

设计上,有一条很实用的边界:

  • 流程和策略写在 SKILL.md
  • 需要 100% 确定性 的步骤写在脚本里

模型不负责「每次都从零写代码」,而是调用你已经写好、已经验证过的代码

3. Skill 和 Tool / MCP 的边界

很多人会把 Skill、Tool、MCP 混在一起,这里做个简单对比方便后面聊 Workflow。

3.1 Skill:教模型「怎么做」

  • 把我们的 SOP、套路、模板,变成模型可执行的说明书。
  • 适合:

    • 结构化写作
    • 格式转换
    • 合规校验
    • 数据清洗 / 整理
  • 优点:

    • 写文档就能做定制
    • Token 成本可控
    • 容易版本化和团队共享

3.2 MCP / Tools:帮模型「去做」

  • MCP 解决的是:如何以统一协议,让模型调用外部系统 / 数据源 / API。
  • 它关注的是:

    • 怎么查 GitHub
    • 怎么调 CI/CD
    • 怎么查数据库
    • 怎么发 Slack 消息

简要总结就是一句话:Skill 面向流程,MCP 面向集成。

3.3 Skill + MCP 的组合

在一个典型任务里:

  • MCP 负责:拿到需要的数据、执行动作
  • Skill 负责:拿到这些结果后怎么分析、怎么生成符合规范的输出

这其实已经非常接近我们后面要讲的「Workflow + Agent」的拆分思路。

4. 行业 Workflow:Skill 落地的载体

前面讲的是 Skill 这一颗颗能力点”,接下来要看它们怎么和行业 Workflow 结合。

4.1 Agent 是交互方式,不是业务本身

再强调一次我们之前文章中的观点:Agent 是交互方式,不是业务本身

在行业里,Agent 更适合作为:

  • 自然语言入口
  • 意图理解与参数提取
  • 初步判断和分发

真正的行业壁垒在于:

  • 我们内部沉淀的 SOP
  • 历史案例和边缘场景处理方式
  • 审批链路和风控规则

这些东西,应该放在:

  • Workflow 编排系统
  • 规则引擎
  • Skill + MCP 的组合

而不是「指望一个通用 Agent 自己学出来」。

4.2 为什么不能纯 Agent?

  1. 幻觉和确定性冲突

    • 行业里很多流程(财务、生产、安全)对错误零容忍。
    • 1% 的错误率,对于 Demo 可以接受,对生产不行。
  2. 过程黑盒,难以审计

    • Agent 的推理链路在模型内部
    • 出现问题难以复盘和归责
    • 很难满足合规和审计要求
  3. 成本和延迟

    • 让模型去规划每个按钮、每个 if-else,是在烧算力
    • 这些确定性逻辑用传统代码 / Workflow 做更合适

所以,在企业 / 行业场景里,更现实的模式是:

Workflow + Agent
Agent 做理解和决策,Workflow 做执行和兜底。

5. 「Workflow + Agent」的混合架构

把前面的点合起来,可以得到一个常见的分层结构。

5.1 顶层:意图理解与路由(Agent)

职责只有三件:

  1. 理解用户在说什么(意图识别)
  2. 把需要的参数补齐(参数提取 + 追问)
  3. 决定触发哪个 Workflow / Skill 组合(路由)

流程可以简单画成:

用户 → 自然语言
→ Agent:识别意图 + 提取参数
→ 选中对应 Workflow(或再转给某个二级 Agent)
→ Workflow 执行
→ 结果交给 Agent 格式化给用户

这一步里,Skill 可以怎么用?

  • 把「意图分类规范」「参数提取规则」「话术模板」写成一个 Skill
  • 在 Skill 里明确:

    • 出现哪些关键词 / 条件时,对应什么意图
    • 提取不到关键信息时,按怎样的模板向用户追问

5.2 中间层:RAG + 决策

有些问题不能直接映射到单个 Workflow,需要先查知识再决定走哪条路。

典型例子:

“设备报警 E03,我该怎么办?”

步骤一般是:

  1. Agent 调用 RAG,在知识库中检索 E03 的说明和处理方案。
  2. Skill 里定义好:

    • 如何解释错误码
    • 不同错误码对应的处理选项
  3. 根据检索结果和规则,决定触发:

    • 远程重启流程
    • 提交工单流程
    • 安排现场工程师流程

这里的组合关系是:

  • RAG:提供上下文知识
  • Skill:约束「如何做决策、如何提问、如何输出」
  • Workflow:完成最终执行动作

5.3 底层:确定性执行(Workflow / RPA / 脚本)

这一层的唯一要求:

不要信模型,要信代码和流程编排。

包括:

  • API 调用链
  • BPM 流程
  • RPA 机器人
  • 定时任务
  • 数据库操作事务

这里非常适合做成「Skill + MCP + Workflow」的组合:

  • Workflow 把一串 API / RPC / 脚本串起来
  • MCP 把外部系统包装成标准工具
  • Skill 负责:

    • 输入规范
    • 输出规范
    • 错误处理策略
    • 不同状态码的解释

最后返回给 Agent 的应该是:

  • 清晰的状态(成功 / 失败 / 部分成功)
  • 明确的字段(JSON 等结构化结果)
  • 标准错误码和错误信息

5.4 最后一层:结果转述(Agent)

Agent 的工作只是:

  • 把结构化结果翻译成人能看懂的话
  • 必要时附上详细解释和后续建议
  • 避免「编故事」,严格按返回字段说话

在这一步也可以挂一个简单 Skill:

  • 统一输出口吻
  • 统一敏感信息处理方式
  • 统一错误提示文案

6. Skill 在行业 Workflow 里的落地方式

回到文章标题里的核心问题:行业 Workflow 如何通过 Skill 落地?

可以拆成三步。

6.1 把「人做事的方式」变成 Skill

先不碰系统,先去梳理:

  • 关键流程当前是怎么执行的?
  • 有哪些「资深同事会说:新人容易犯错的点」?
  • 有没有文档 / 模板 / 复盘材料?

然后做的事情是:

  1. 挑出重复度高、流程相对固定的一批任务。
  2. 每个任务建一个 Skill 文件夹,写 SKILL.md

    • 场景描述:什么时候应该用这个 Skill?
    • 输入要求:有哪些字段,格式是什么?
    • 处理步骤:拆成 1、2、3…
    • 输出规范:JSON 字段 + 人类可读的模板
    • 示例:2~3 个高频真实例子

第一轮不用追求覆盖所有流程,重点是把写 Skill 这件事本身跑顺

6.2 把「系统做事的方式」变成 Workflow + MCP

接下来梳理现有系统资产:

  • 哪些已有 API / 脚本 / RPA 可以直接复用?
  • 哪些流程现在是人工填表 + 审批 + 抄数?
  • 哪些操作有合规 / 风控要求,必须严格走系统?

然后做:

  1. 把可复用的系统能力包装成 MCP / 内部 API。
  2. 用我们熟悉的方式编排成 Workflow(BPM / 编排平台 / 自写 Orchestrator)。
  3. 明确每个 Workflow 的:

    • 输入结构
    • 输出结构
    • 错误码定义
    • 审计日志

这一步的原则是:

尽量少改存量系统,尽量通过「外面包一层」的方式让它变成可调用的 Workflow 组件。

6.3 用 Skill 把「人」和「系统」连起来

最后一步,把 Skill 作为桥梁:

  • 上游:Agent 与用户对话
  • 中游:Skill 指导 Agent 该怎么理解、怎么提问、怎么路由
  • 下游:Workflow/MCP 真正执行动作

一个典型链路会变成:

  1. 用户输入需求
  2. Agent 用「意图 Skill」判断任务类型
  3. 分发给对应领域 Agent
  4. 领域 Agent 读取对应 Skill:

    • 补齐参数
    • 调用 RAG 查规则
    • 决定调用哪个 Workflow
  5. Workflow 执行,通过 MCP / API 触达系统
  6. 返回结果由领域 Agent 按「输出 Skill」转成年类可读结果
  7. Agent 统一封装成对用户的话术

所有「经验」、「SOP」、「注意事项」,尽量沉淀在 Skill 里:

  • 方便以后版本升级
  • 方便新业务线复用
  • 方便做变更审计(Skill 本身可以版本控制)

7. 实施过程中的几个注意点

7.1 先把 Skill 写“够细”,再考虑自动化程度

很多团队上来就想着「全自动」,结果 Agent 兜不住,Workflow 无法覆盖异常,最后完全不敢放生产。

相对稳妥的节奏是:

  1. 用 Skill 把流程写细写透,先跑一段时间「人机协同」:

    • Agent 给出建议
    • 人来点确认 / 修改
  2. 统计哪些环节几乎没有人工干预
  3. 把这些环节下沉成 Workflow,逐步提高自动化比例

这样做有一个副作用:整个流程的「隐性知识」会被 Skill 强制写出来,对组织本身也是一种梳理。

7.2 旧系统是企业的「来时路」

很多看起来陈旧的:

  • 定时脚本
  • 报文接口
  • Excel 宏

从「Workflow + Agent」的角度看都是资产。
Skill 负责解释「什么时候、为什么、怎么用它」,MCP / Workflow 负责「怎么安全调用它」。

相比完全重构,一个实用的策略是:

给旧系统加一个 AI 适配层,而不是要求旧系统「变成 AI 原生」。

7.3 结构化数据回流

Agent 与用户的对话里,有大量可以反哺业务的信息:

  • 用户真实需求
  • 高频异常
  • 流程里的瓶颈点
  • 新出现的边缘场景

建议在设计时就准备好:

  • 把关键字段结构化写入日志 / 数据库
  • 定期用这些数据更新:

    • Skill 内容
    • RAG 知识库
    • 流程设计(Workflow)

不要只留下聊天记录,要留下可分析的行为数据

8. 小结

把前面的内容合在一起,其实可以简化为三条:

  1. Skill 把「怎么做事」固化下来

    • 它是 Agent 的“操作手册”
    • 它让流程可以被描述、复用、版本化
  2. Workflow 把「谁来做、何时做、按什么顺序做」编排起来

    • 它对接真实系统和资源
    • 它保证执行的确定性和审计能力
  3. Agent 把「人类模糊的需求」翻译成「可以被 Skill + Workflow 执行的指令」

    • 它是交互层和调度层
    • 它不是行业壁垒本身

在这个结构下,“降本增效”不再是一个抽象口号,而是一个比较直观的路径:

  • 过去那些无法自动化的非结构化需求(邮件、沟通、模糊指令),
  • 通过 Agent + Skill 变成可结构化的任务描述,
  • 再通过 Workflow + MCP 交给稳定的代码和系统去执行。

从研发团队视角看,这套东西真正改变的是工作方式

  • 从「写提示」变成「设计并维护一套可执行流程」;
  • 从「做一次性 Demo」变成「搭一套能长期演进的智能基础设施」。

如果你正在做行业 Agent,或者准备在内部推一个 AI 助手,可以先从一件事开始:

挑一个你们团队最常做、步骤最清晰、但最浪费时间的任务,把它完整写成一个 Skill,再把现有系统封装成一个 Workflow。
这两个拼起来,基本就是你们自己的第一个「行业 Workflow + Agent」原型。

以上。