两种写法对比
自然语言描述(推荐)
## 触发条件
- 用户要求分析某只A股股票的技术面
- 用户提到"K线"、"MACD"、"RSI"等技术指标
- 每日定时技术分析任务触发关键词列表(适合精确匹配)
## 触发条件
Keywords: [技术面分析, K线, MACD, RSI, KDJ, 布林带, 均线]
Patterns: [分析.*股票, .*技术面.*, 帮我看看.*走势]自然语言描述对AI更友好,覆盖面广;关键词列表精确但容易漏掉变体表达。通常两者结合使用。
过宽 vs 过窄的问题
过宽(导致误加载)
# ❌ 错误示例
## 触发条件
- 用户提到股票或投资
→ 这会导致任何涉及股票的问题都加载这个Skill,
包括"股票是什么意思"这样的基础问题过窄(导致漏加载)
# ❌ 错误示例
## 触发条件
- 用户说"请用baostock分析002472的MACD指标"
→ 这个条件太精确,稍微换个说法就触发不了正确的平衡
# ✅ 正确示例
## 触发条件
- 用户要求对某只具体股票做技术面分析(有股票代码或名称)
- 用户询问某股票的均线、MACD、RSI、KDJ等技术指标情况
- 每日A股复盘定时任务触发5个好的触发条件示例
- 用户要求分析A股某只股票,并明确提到技术面或技术指标
- 用户说"帮我配置Hermes的模型"、"切换默认模型"、"添加provider"
- 用户要求生成投资学习计划,需要系统性课程安排
- 用户提到"微信没有回复"、"WeChat连接问题"、"gateway报错"
- 每周一09:00的定时周报生成任务
3个反面案例
- ❌"用户提到股票" → 太宽,覆盖所有股票相关问题
- ❌"用户说'帮我分析一下'" → 没有任何约束,所有分析任务都触发
- ❌"用户输入包含数字" → 几乎所有消息都会触发
触发条件测试方法
# 构造10个真实用户表达,检验哪些应该触发哪些不该触发
test_inputs = [
("002472今天怎么样", True), # 应触发
("股票是什么意思", False), # 不应触发
("帮我看看双环传动的K线", True), # 应触发
("最近有没有好的投资机会", False), # 不应触发
]设计触发条件的核心原则:精确描述用户的意图和场景,而不是列举关键词。"用户想做X,且有Y这个前提条件"这种格式最有效。