11.5 Opencode 智能体评估与迭代优化实践

本节介绍如何在 Opencode 中实践智能体评估与优化的具体配置与应用。

11.5.1 评估框架搭建

使用 AGENTS.md 记录评估标准

AGENTS.md 不仅用于指导智能体行为,还可以记录评估标准和经验教训。建议在 AGENTS.md 中维护三类信息:

  1. 质量检查清单:任务输出的必需要素和加分项
  2. 常见问题库:已发现的问题、根因和解决方案
  3. 评估阈值:各指标的合格线和目标线
## 评估标准

### 数据分析任务质量检查

**必须满足**:数据来源清晰标注、计算过程有明确步骤、结论有数据支撑

**加分项**:提供可视化图表、给出置信区间、指出数据局限性

### 常见问题

**问题**:智能体给出过于绝对的结论
**解决**:在提示词中加入「如果数据不足,说明局限性」

创建评估 Skill

.opencode/skills/eval-sentiment/ 目录下创建评估技能:

---
name: eval-sentiment
description: 评估情感分析任务的准确性
version: 1.0.0
---

# 情感分析评估技能

## 目的

自动测试智能体在情感分析任务中的表现,对比实际输出与期望标准。

## 使用方法

调用此技能时,智能体会:

1. 读取测试数据集
2. 对每个测试案例执行情感分析
3. 对比结果与期望输出
4. 生成评估报告

## 评估标准

每个测试案例检查:
- 情感分类准确性(正面/负面/中性)
- 关键实体识别完整性
- 是否避免越界行为(如给出投资建议)

## 输出格式

评估报告包含:
- 测试通过率
- 失败案例详情
- 改进建议

组织测试集

参考资料及素材/
└── evaluation/
    ├── test_cases/
    │   ├── sentiment_analysis.md    # 情感分析测试集
    │   ├── data_extraction.md       # 数据提取测试集
    │   └── report_generation.md     # 报告生成测试集
    └── evaluation_results/
        └── 2026-01-18_test_run.md   # 按日期记录测试结果

11.5.2 评估设计实践

评测数据分层实现

在 Opencode 中批量测试时,可以使用以下工作流:

> 帮我评估情感分类模型在测试集上的表现

智能体步骤:
1. 读取测试集数据(CSV 格式)
2. 调用分类提示词生成预测结果
3. 计算 Precision、Recall、F1 等指标
4. 生成混淆矩阵可视化
5. 输出详细的分类报告
6. 分析错误案例,识别常见误分类模式

人工抽检实践

设计人工抽检时,按照优先级分层:

  1. 自动评分在边界值(2.8-3.2 分)的样本:100% 抽检
  2. 边缘样本和对抗样本:30% 抽检
  3. 正常样本:10% 抽检

11.5.3 优化迭代配置

lessons_learned.md 经验积累

在项目根目录创建经验积累文件,记录每次迭代发现。使用 11.3.1 节的标准化模板:

# 智能体优化经验总结

## 2026-01-18:情感分析准确率提升

| 要素 | 内容 |
|------|------|
| 问题 | 智能体在处理含有转折词的句子时,情感判断准确率只有 65% |
| 根因 | 原提示词过于简单,没有说明如何处理「虽然...但是」结构 |
| 方案 | 新提示词:分析文本情感,注意转折词后的内容往往是关键观点 |
| 效果 | 准确率从 65% 提升到 88% |
| 关联 | test_cases/sentiment_analysis.md 案例 #5-8 |

---

## 2026-01-15:避免幻觉输出

| 要素 | 内容 |
|------|------|
| 问题 | 智能体在数据不足时会编造数字 |
| 根因 | 提示词未明确数据不足时的处理方式 |
| 方案 | 在提示词中加入:如果数据不足,明确说明局限性,不要编造 |
| 效果 | 幻觉案例从 5/20 降低到 0/20 |
| 关联 | test_cases/hallucination_check.md |

Prompt/Skill 版本迭代

使用 Git 管理提示词版本:

git commit -m "feat(sentiment): 增加转折词处理逻辑"
git commit -m "fix(sentiment): 修正中性情感误判问题"
git commit -m "test(sentiment): 新增 5 个转折句测试案例"

在 Skill 文件中标注版本号:

---
name: sentiment-analyzer
version: 2.1.0
---

11.5.4 监控与回归实践

创建回归测试 Skill

---
name: eval-regression
description: 回归测试:确保修改不破坏现有功能
---

# 回归测试技能

## 目的

在修改提示词或 Skill 后,自动运行所有测试集,确保:
- 所有历史测试案例通过
- 性能指标未显著下降

## 触发时机

- 提交代码前
- 部署到生产前

## 测试流程

1. 读取 test_cases/ 下所有测试集
2. 依次执行
3. 生成通过/失败报告
4. 如有失败案例,提供详细对比

部署前检查清单

创建 deploy-checklist.md

# 部署前质量检查

## 必须全部通过

- [ ] 回归测试通过率 ≥ 95%
- [ ] 无 P0 级 Bug
- [ ] 提示词已版本化并提交
- [ ] AGENTS.md 更新到位
- [ ] 敏感信息扫描通过

## 执行方式

在 Opencode 中运行:
> 执行部署前检查清单

智能体会:
1. 运行回归测试
2. 扫描代码中是否有硬编码的 API 密钥
3. 检查 AGENTS.md 是否包含最新经验
4. 生成检查报告
提示教学提示

将回归测试集成到 Git 工作流中。在 .git/hooks/pre-commit 中添加脚本,在提交前自动运行测试。如果测试失败,阻止提交。这样可以确保每次提交都经过验证,避免引入回归问题。