智能体知识点大杂烩

Posted by iceyao on Sunday, March 1, 2026

智能体知识点

Tool Call原理

大模型返回建议用tool_call工具,为什么客户端就知道要去执行对应的代码呢?

大模型的 tool_call 本质上只是返回一个结构化的“调用建议”,模型本身既不会执行代码,也没有任何系统权限;真正的执行发生在本地的 Agent Runtime 或客户端。因为在请求模型时,本地程序已经注册了可用工具并持续解析模型返回结果,一旦检测到符合约定协议(如 tool_calls 字段)的响应,就会根据工具注册表自动匹配对应函数或 API 并执行,然后再把执行结果回传给模型继续推理。因此,看起来像是“大模型调用了工具”,实际是 模型负责决策,本地运行时负责解析协议并完成执行。

Skills原理

Skill = 带上下文能力的 Tool + Prompt + 执行流程,可以把 Skills看成是Tool Calling的工程化封装。

Skill的原理就是:让大模型先选择“哪种能力模式”,再在该模式内部通过tool_call循环完成真实执行。

Skill构建指南

来自Anthropic官方指南:The Complete Guide to Building Skills for Claude

成功标准定义(Define Success Criteria)

指南指出这些是"aspirational targets"(理想目标),粗略基准而非精确阈值,接受一定程度的vibes-based评估。

定量指标

  • 触发准确率:Skill应在90%的相关查询上被触发。测量方式:运行10-20个应触发Skill的测试查询,跟踪自动加载 vs 需手动调用的比率
  • 工作流效率:在X次工具调用内完成工作流。测量方式:对比启用/未启用Skill时完成相同任务的工具调用次数和总token消耗
  • API零失败:每个工作流中0次失败的API调用。测量方式:在测试运行期间监控MCP服务端日志,跟踪重试率和错误码

定性指标

  • 自主性:用户不需要提示Claude下一步操作。评估方式:测试过程中记录需要重新引导或澄清的频率,收集Beta用户反馈
  • 免纠正:工作流无需用户手动纠正即可完成。评估方式:对同一请求运行3-5次,比较输出的结构一致性和质量
  • 跨会话一致性:不同会话中结果保持一致。评估方式:新用户是否能首次尝试就完成任务,且只需最少指导?

三类测试维度

1. 触发测试(Triggering Tests)

目标:确保Skill在正确时机被加载

  • ✅ 在明确任务描述时触发
  • ✅ 在改述/换说法请求时触发
  • ❌ 在无关话题上不触发

示例:

应触发:
- "help me plan this sprint"
- "I need to create a project in ProjectHub"
- "Initialize a ProjectHub project for Q4 planning"

不应触发:
- "What's the weather in San Francisco?"
- "Help me write Python code"
- "Create a spreadsheet"(除非Skill处理表格)

2. 功能测试(Functional Tests)

目标:验证Skill产生正确输出

  • 生成有效输出
  • API调用成功
  • 错误处理正常工作
  • 覆盖边缘情况

3. 性能对比(Performance Comparison)

目标:证明Skill相比基线有提升

未启用Skill:
- 用户每次都要提供指令
- 15轮对话交互
- 3次失败的API调用需要重试
- 消耗12,000 tokens

启用Skill后:
- 自动执行工作流
- 仅2次澄清提问
- 0次失败的API调用
- 消耗6,000 tokens

迭代改进信号

触发不足(Undertriggering)信号

  • Skill在应该加载时没有加载
  • 用户需手动启用
  • 出现"什么时候用这个Skill"的支持问题

解决方案:在description中添加更多细节和关键词

过度触发(Overtriggering)信号

  • Skill在不相关查询时加载
  • 用户频繁禁用它
  • 用途混淆

解决方案:添加负面触发词,描述更具体化

Skill质量检查清单

开发前

  • 确定2-3个具体用例
  • 识别所需工具(内置或MCP)
  • 规划文件夹结构

开发中

  • 文件夹使用kebab-case命名
  • SKILL.md文件存在(必须精确大写)
  • YAML frontmatter有---分隔符
  • name字段:kebab-case,无空格,无大写
  • description同时包含做什么何时使用
  • 无XML标签(< >
  • 指令清晰可执行
  • 包含错误处理
  • 提供示例
  • 引用资料清晰链接

上传前

  • 测试明确任务是否触发
  • 测试改述请求是否触发
  • 验证无关话题不触发
  • 功能测试通过
  • 工具集成正常(如适用)

上传后

  • 在真实对话中测试
  • 监控触发不足/过度触发
  • 收集用户反馈
  • 迭代优化description和指令
  • 更新metadata中的版本号

「真诚赞赏,手留余香」

爱折腾的工程师

真诚赞赏,手留余香

使用微信扫描二维码完成支付