4.5 Opencode 初实践
本节将前面学习的提示词工程技术整合到 Opencode 的实际应用中。
4.5.1 系统提示配置
Opencode 采用分层提示架构,每层有不同的作用域和注入时机:

各层特点对比:
| 层级 | 机制 | 触发方式 | 典型用途 |
|---|---|---|---|
| 消息级 | AGENTS.md | 自动加载 | 项目上下文 |
| 消息级 | Slash Commands | /command |
可重复工作流 |
| 消息级 | Skills | 模型判断 | 专业能力扩展 |
| 对话级 | Subagent | 委托触发 | 任务委派 |
Skill 目录结构:
.opencode/skills/
└── financial-analysis/
├── SKILL.md # 核心定义文件(必需)
├── templates/ # 模板文件(可选)
│ └── report.md
└── examples/ # 示例(可选)
└── sample_analysis.md4.5.2 Few-shot 示例实现
在 Skill 中嵌入 Few-shot 示例:
---
name: sentiment-analysis
description: |
金融新闻情感分析技能。分析新闻的市场情感倾向。
---
# 金融情感分析技能
## 分析框架
判断金融新闻的情感倾向(积极/消极/中性)。
## 示例
输入:公司第四季度净利润同比增长 25%,超出市场预期。
情感:积极
置信度:90%
输入:受原材料价格上涨影响,公司毛利率环比下降 3 个百分点。
情感:消极
置信度:85%
输入:央行维持基准利率不变,符合市场普遍预期。
情感:中性
置信度:80%
## 边界案例
输入:公司宣布大规模裁员计划,预计年节省成本 10 亿元。
情感:中性
置信度:65%
分析:裁员是负面事件,但成本节省是正面影响,整体中性。4.5.3 输出格式控制
在 Skill 中定义输出格式:
---
name: financial-data-extraction
description: |
财务数据提取技能。从文本中提取结构化财务数据。
---
# 财务数据提取技能
## 输出格式
必须按以下 JSON 格式输出:
{
"company_info": {
"name": "公司名称",
"stock_code": "股票代码",
"report_period": "报告期"
},
"metrics": {
"revenue": {"value": 数值, "unit": "单位"},
"net_profit": {"value": 数值, "unit": "单位"},
"yoy_growth": 百分比数值
}
}
## 输出要求
- 直接输出 JSON,不要使用代码块
- 确保所有字符串使用双引号
- 数值不带引号
- 未提及的字段填 null4.5.4 意图路由实现
在 Opencode 中,可以通过设计一个专门的路由 Skill 来实现意图分流:
---
name: financial-router
description: |
金融问题智能路由技能。当用户提出金融相关问题时,
自动分类并路由到合适的专业 Skill。
Use PROACTIVELY for any financial question.
---
# 金融问题路由技能
## 功能说明
本技能作为金融问题的入口路由器,负责:
1. 分析用户问题的意图
2. 提取关键实体
3. 路由到对应的专业 Skill
## 路由目标
| 意图类型 | 目标 Skill | 触发场景 |
|---------|-----------|----------|
| market-query | market-query | 价格、行情、涨跌幅 |
| financial-analysis | financial-analysis | 财报、财务指标 |
| policy-interpretation | policy-interpretation | 政策、监管 |
| general | 直接回答 | 概念解释、基础知识 |
## 路由决策格式
{
"intent": "路由目标",
"confidence": 0.0-1.0,
"reasoning": "分类理由",
"next_action": "调用的 Skill 或直接回答"
}