Proactive Trigger Vocabulary

Lucas Carlson· emerging

问题

具备多技能的Agent面临着路由问题:当收到用户的自然语言输入时,该由哪一项技能来处理?像基于嵌入的相似度匹配或LLM分类这类解决方案虽能奏效,但存在不透明性——用户不清楚哪些表述会触发哪项功能。

此外,Agent可能具备一些技能,需要在特定话题出现时主动激活(无需用户明确请求),但如果没有明确的触发词列表,Agent可能会错失触发时机,或者出现误激活的情况。

方案

为每个技能定义明确的触发词汇表:一份包含可激活该技能的短语、关键词和模式的列表。将这些触发条件清晰记录下来,让人类用户和智能体(Agent)都能明确激活规则。

# 带显式触发条件的技能定义
skill: priority-report
description: 生成按优先级排序的任务报告

triggers:
  exact: ["sup", "priority report", "standup prep"]
  # 完全匹配:输入与列表短语完全一致时触发,例如"sup"、"优先级报告"、"站会准备"
  contains: ["what should I work on", "what's pending", "my tasks"]
  # 包含匹配:输入内容包含列表短语时触发,例如"我该做什么工作"、"有哪些待办事项"、"我的任务"
  patterns: ["what.*on my plate", "action items"]
  # 模式匹配:输入符合正则表达式模式时触发,例如"我手头有什么事项"、"行动项"

proactive: true  # 主动触发标记:触发条件匹配时,无需用户显式请求即可自动激活该技能
graph TD
    A[用户输入] --> B{是否匹配触发条件?}
    B -->|"匹配'sup'"| C[priority-report 技能(优先级报告)]
    B -->|"匹配'search hn'"| D[hn-search 技能(HN搜索)]
    B -->|"匹配'check servers'"| E[salt-monitoring 技能(Salt监控)]
    B -->|无匹配| F[通用响应]

核心组成要素:

  1. 触发列表:每个技能对应一组显式短语,统一记录在技能定义文件中
  2. 主动触发标记:标记技能是否在匹配触发条件时自动激活
  3. 优先级排序规则:当多个技能同时匹配时,定义触发的优先级顺序
  4. 用户可见性:触发条件被公开记录,帮助用户学习并掌握触发词汇

如何使用

技能文档格式:

权衡

优势:

  • 透明度高:用户可了解触发短语,掌控感强
  • 可预测性强:相同输入始终匹配至同一技能
  • 易于调试:可轻松查看技能激活(或未激活)的原因
  • 响应迅速:字符串匹配比向量嵌入查询更快
  • 便于文档化:触发词可作为面向用户文档的一部分
  • 主动性强:当相关话题出现时,Agent可主动介入

劣势:

  • 灵活性不足:无法识别触发词列表外的同义表述
  • 维护成本高:需随词汇体系演变更新触发词
  • 易产生冲突:多个技能可能使用相同触发词
  • 存在文化/语言偏差:触发词在跨语言场景下可能不适用
  • 用户门槛高:用户必须学习特定词汇(或查阅文档)才能使用

混合方案: 将显式触发词与语义回退机制相结合:

  1. 优先检查显式触发词匹配(快速、可预测)
  2. 若无匹配项,采用向量嵌入相似度匹配(灵活但响应较慢)
  3. 记录未匹配的输入,用于挖掘新的触发词候选

参考文献

关键词

涵盖Claude技能文档模式、对话式AI意图分类、聊天机器人触发响应匹配、Slack工作流触发四大技术要点,涉及智能交互与自动化办公领域。

直译
  • Claude Code CLAUDE.md 技能文档模式
  • 对话式人工智能中的意图分类
  • 聊天机器人触发/响应模式匹配
  • Slack工作流触发

来源摘要

正在获取来源并生成中文摘要…

来源: https://github.com/anthropics/claude-code

← 返回社区