Skip to content

Tool、Skill、Workflow、Agent、Human-in-the-loop 与 Guardrails

这一页不想只把几个词分别翻译一下,而是想把真实项目里最容易混在一起的几层东西拆开。

很多讨论一上来就问:

  1. 要不要做 Agent
  2. 要不要配 Workflow
  3. Skill 和 Tool 到底差在哪

但工程上更靠谱的顺序通常不是直接问“要不要上 Agent”,而是先问:

这件事到底是一个动作、一个能力、一条固定流程,还是一个需要动态判断的目标。

这个问题想清楚了,后面的系统设计会顺很多。

1. 一张总图

mermaid
flowchart TD
    A[用户目标] --> B{任务是否固定}
    B -- 是 --> C[Workflow 编排]
    B -- 否 --> D[Agent 规划]
    C --> E[调用 Skill / Tool]
    D --> E
    E --> F[执行动作]
    F --> G[Guardrails 检查]
    G --> H{是否涉及高风险节点}
    H -- 是 --> I[Human-in-the-loop]
    H -- 否 --> J[输出结果]
    I --> J

这张图最值得先记住的一点是:

WorkflowAgent 不是一回事,SkillTool 也不是一回事。

它们解决的是不同层级的问题。

2. Tool:把动作颗粒度定清楚

Tool 直接看成一个动作接口。

它通常长这样:

  1. 查询订单
  2. 搜索网页
  3. 读取文件
  4. 调用天气接口
  5. 执行数据库查询

它负责的是:

  1. 把某个外部能力暴露出来
  2. 让模型或应用可以用结构化参数去调用
  3. 返回明确结果,供下一步继续处理

它不负责的是:

  1. 决定整个任务策略
  2. 组织复杂流程
  3. 定义完整业务能力

所以 Tool 更像“手”和“脚”,不是“大脑”。

3. Skill:把一类事情收成稳定能力

如果说 Tool 是动作,那 Skill 更像一组围绕场景组织起来的能力封装。

例如“技术调研”“代码审查”“简历评估”这类东西,往往不是调用一个动作就结束,而是会同时包含:

  1. 一套 Prompt 约束
  2. 可选工具集合
  3. 固定输出格式
  4. 任务边界和质量要求

所以 Skill 更接近:

把完成一类事情所需要的规则、上下文和能力入口提前打包好。

它解决的是复用问题和稳定性问题。
同一类任务反复出现时,直接让模型裸跑,效果往往会飘;封成 Skill 之后,行为会更可预期。

🌟 Skill 不是协议,也不是单点函数,它更像业务语义化能力单元。

4. Workflow:适合那些步骤很清楚的链路

Workflow 更像一条提前设计好的任务流。

它最适合的场景通常有 3 个特征:

  1. 步骤顺序比较明确
  2. 每一步输入输出相对稳定
  3. 出问题时希望容易排查

典型例子包括:

  1. 工单分类 -> 查询知识库 -> 生成回复
  2. 文档清洗 -> 分片 -> 向量化 -> 入库
  3. 结构化信息抽取 -> 校验 -> 入库

Workflow 的价值,不是“高级”,而是“稳”。

它特别适合那些已经跑通、而且希望规模化复用的链路。因为一旦步骤清晰,固定流程通常比开放式 Agent 更便宜、更好测,也更方便做监控和排障。

它的边界也很明显:

  1. 对开放问题不够灵活
  2. 对中途变化的适应能力有限
  3. 步骤一多时,维护成本也会上来

5. Agent:只有在需要判断和规划时,它才真正有价值

Agent 最核心的能力,不是“能连续对话”,而是:

  1. 能理解当前目标
  2. 能决定下一步该做什么
  3. 能根据中间结果调整计划
  4. 必要时选择工具、切换策略,甚至回退重试

这类能力适合的往往不是固定主线,而是开放目标,比如:

  1. 多轮调研
  2. 故障排查
  3. 复杂客服分诊
  4. 多步骤任务协同

Agent 也不是“越早上越好”。

很多团队第一次做 AI 编排,最常见的问题就是把本来可以写成稳定 Workflow 的事情,直接交给 Agent 自己判断,最后得到一个看起来聪明、实际很难预测的系统。

🌟 更稳的经验通常是:能固定的先固定,只有必须动态决策的部分,才交给 Agent

6. WorkflowAgent 到底差在哪

这两个词是最容易混的,所以单独拉开说。

对比点WorkflowAgent
核心目标把流程跑稳围绕目标动态推进
决策方式预先定义运行时判断
可预测性相对低
适合场景稳定主线、批处理、规则明确开放目标、多轮探索、情况多变
调试方式看节点和状态看推理、决策和调用轨迹
常见问题不够灵活不够稳定

一句话记:

Workflow 更像按图施工,Agent 更像带着目标边走边判断。

7. Human-in-the-loop:不是多余,而是故意保留的人类决策点

Human-in-the-loop 直接看成:

系统在关键节点主动停下来,把决定权交还给人。

它最适合放在这些位置:

  1. 会动钱、动数据、动权限的操作前
  2. 模型置信度不足时
  3. 需要业务负责人拍板时
  4. 最终发布、发送、执行前

比如:

  1. 自动生成合同后,发出前要人工确认
  2. 客服建议退款,但真正退款前需要运营审批
  3. 代码修改建议可以自动生成,但合并前仍需要工程师审核

真正成熟的系统,往往不是全自动到底,而是知道哪里该自动,哪里必须把人拉回来。

8. Guardrails:给输入、过程、输出都加上护栏

Guardrails 可以理解成运行边界控制。

它不是单个组件,而是一组约束机制。常见放置点通常有三层:

  1. 输入前:敏感词、越权请求、恶意 Prompt 注入检查
  2. 执行中:工具权限校验、参数校验、速率限制、风险动作拦截
  3. 输出后:结构校验、内容审查、脱敏、合规检查

它解决的不是“让系统更聪明”,而是“让系统不要越界”。

不过这里也要分清:

Guardrails 不等于完整安全体系。

它更像 AI 运行时边界控制的一部分,而更大的 Security 还会覆盖鉴权、密钥管理、审计、数据隔离、网络安全等问题。

9. 真实项目里,这几层通常怎么配

更常见的工程组合通常是:

  1. 底层先准备一批职责明确的 Tool
  2. 把高频场景封成可复用的 Skill
  3. 把稳定主线写成 Workflow
  4. 只把真正需要动态判断的部分交给 Agent
  5. 在关键节点补 Guardrails
  6. 在高风险动作前加 Human-in-the-loop

可以把它理解成一套从“能做”到“做稳”的递进过程。

10. 一段更接近工程现实的总结

Tool 负责动作,Skill 负责把一类任务收成稳定能力,Workflow 负责把固定主线跑稳,Agent 负责在目标驱动下做动态判断,Guardrails 负责守住运行边界,Human-in-the-loop 负责把关键决定留给人。

它们不是互相替代的关系,而是同一个系统里经常同时存在的不同层次。真正成熟的 AI 编排,往往不是“全靠 Agent”,而是知道哪些地方该固定、哪些地方该放权、哪些地方必须收回来。

11. 继续展开看

基于 VitePress 构建的个人技术笔记。