章节 01
导读 / 主楼:OpenCode Plugins:为 AI 编程 Agent 构建的反射审查层,解决 78% 的过早停止问题
基于真实会话数据训练的 Judge 层插件,可捕获 AI 编程 Agent 的过早停止行为,强制执行测试、CI、PR 等工作流门控,支持 OpenCode 和 Claude Code。
正文
基于真实会话数据训练的 Judge 层插件,可捕获 AI 编程 Agent 的过早停止行为,强制执行测试、CI、PR 等工作流门控,支持 OpenCode 和 Claude Code。
章节 01
基于真实会话数据训练的 Judge 层插件,可捕获 AI 编程 Agent 的过早停止行为,强制执行测试、CI、PR 等工作流门控,支持 OpenCode 和 Claude Code。
章节 02
opencode.json 的 plugin 数组中添加 "opencode-reflection":\n\n全局配置(~/.config/opencode/opencode.json,应用于所有项目):\njson\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"plugin\": [\"opencode-reflection\"]\n}\n\n\n项目级配置(在仓库根目录创建 opencode.json):\njson\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"plugin\": [\"opencode-reflection\"]\n}\n\n\n本地克隆安装(开发/固定到特定提交):\njson\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"plugin\": [\"/absolute/path/to/opencode-plugins/packages/reflection\"]\n}\n\n\n编辑 opencode.json 后重启 OpenCode 即可激活。\n\n### Claude Code 安装\n\n通过插件市场安装(推荐):\n\n在 Claude Code 会话中:\n\n/plugin marketplace add dzianisv/opencode-plugins\n/plugin install reflection-cc\n\n\n或从 CLI 直接安装:\nbash\nclaude plugin marketplace add dzianisv/opencode-plugins\nclaude plugin install reflection-cc\n\n\n手动安装:\n\n将 Stop hook 添加到 ~/.claude/settings.json(全局)或 .claude/settings.json(项目级):\njson\n{\n \"hooks\": {\n \"Stop\": [\n {\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"node /absolute/path/to/opencode-plugins/claude/bin/reflect.mjs\",\n \"timeout\": 30\n }\n ]\n }\n ]\n }\n}\n\n\n注意:事件名称必须是 \"Stop\"(大写 S),小写的 \"stop\" 会被静默忽略。\n\n## Agent Skills 技能库\n\n该项目还提供了 Agent Skills(https://agentskills.io)——可复用的 AI 编程 Agent 能力。\n\n### 安装技能\n\nbash\nnpx skills add dzianisv/opencode-plugins\n\n\n### 可用技能\n\n| 技能 | 描述 |\n|------|------|\n| opencode-session-db | 直接从 SQLite 数据库读取 OpenCode 会话和消息 |\n| agent-evaluation | 使用 LLM-as-judge 评估 GenAI Agent 任务执行 |\n| feature-workflow | 从规划到 PR 合并的标准功能开发工作流 |\n| plugin-testing | 用可操作的测试用例验证插件规范要求 |\n| readiness-check | 验证所有 OpenCode 插件服务是否健康就绪 |\n\n## 技术实现细节\n\n### 架构概览\n\n\n┌─────────────────────────────────────────────────────────────────────────────┐\n│ OpenCode Plugins │\n├─────────────────────────────────────────────────────────────────────────────┤\n│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐ │\n│ │ reflection-3.ts │ │ tts.ts │ │ worktree-status.ts │ │\n│ │ │ │ │ │ │ │\n│ │ • Judge 层 │ │ • 本地 TTS │ │ • Git 脏检查 │ │\n│ │ • 任务验证 │ │ • Whisper STT │ │ • 分支状态 │ │\n│ │ • 自动继续 │ │ • Telegram 通知 │ │ • 活跃会话 │ │\n│ └──────────────────┘ └────────┬─────────┘ └──────────────────────┘ │\n│ │ │\n│ ┌──────────────┼──────────────┐ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌────────────┐ ┌──────────────────────┐ │\n│ │ TTS 引擎 │ │telegram.ts │ │ Supabase 后端 │ │\n│ │ │ │ (helper) │ │ │ │\n│ │ • Coqui XTTS │ │ │ │ • Edge Functions │ │\n│ │ • Chatterbox │ │ • 通知器 │ │ • PostgreSQL + RLS │ │\n│ │ • macOS say │ │ • Supabase │ │ • 实时订阅 │ │\n│ └──────────────┘ └────────────┘ └──────────────────────┘ │\n└─────────────────────────────────────────────────────────────────────────────┘\n\n\n### 反射插件的工作原理\n\n1. Agent 完成一个回合并触发 Stop 事件\n2. Reflection-3 Judge 分析会话历史和当前状态\n3. Judge 根据预定义的标准评估任务完成度\n4. 如果判定为过早停止,生成有针对性的反馈\n5. 反馈被注入 Agent 上下文,提示 Agent 继续工作\n6. 最多重试 3 次,避免无限循环\n\n## 实践效果与价值\n\nReflection-3 插件通过解决过早停止问题,为 AI 编程工作流带来了显著改进:\n\n### 提高效率\n\n减少了因 Agent 过早停止而需要的人工干预次数,让开发者可以更专注于高价值的工作。\n\n### 保证质量\n\n通过强制执行测试、CI、PR 等工作流门控,确保代码在交付前经过充分验证。\n\n### 改善体验\n\n开发者不再需要频繁地提示 Agent "请继续"或"请运行测试",Agent 能够更自主地完成完整的工作流程。\n\n## 总结与展望\n\nOpenCode Plugins 项目通过引入反射审查层,为 AI 编程 Agent 的可靠性问题提供了一个优雅的解决方案。其基于真实数据训练的 Judge 标准,确保了评估的准确性和实用性。\n\n对于使用 OpenCode 或 Claude Code 的开发者来说,这个项目值得认真考虑。它不仅能提高工作效率,还能改善人机协作的体验,让 AI 编程助手真正成为可靠的开发伙伴。\n\n随着 AI 编程助手的普及,像 Reflection-3 这样的审查层将变得越来越重要,帮助我们在享受 AI 自动化便利的同时,保持对工作质量的控制。章节 03
原作者与来源
opencode.json 的 plugin 数组中添加 "opencode-reflection":\n\n全局配置(~/.config/opencode/opencode.json,应用于所有项目):\njson\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"plugin\": [\"opencode-reflection\"]\n}\n\n\n项目级配置(在仓库根目录创建 opencode.json):\njson\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"plugin\": [\"opencode-reflection\"]\n}\n\n\n本地克隆安装(开发/固定到特定提交):\njson\n{\n \"$schema\": \"https://opencode.ai/config.json\",\n \"plugin\": [\"/absolute/path/to/opencode-plugins/packages/reflection\"]\n}\n\n\n编辑 opencode.json 后重启 OpenCode 即可激活。\n\nClaude Code 安装\n\n通过插件市场安装(推荐):\n\n在 Claude Code 会话中:\n\n/plugin marketplace add dzianisv/opencode-plugins\n/plugin install reflection-cc\n\n\n或从 CLI 直接安装:\nbash\nclaude plugin marketplace add dzianisv/opencode-plugins\nclaude plugin install reflection-cc\n\n\n手动安装:\n\n将 Stop hook 添加到 ~/.claude/settings.json(全局)或 .claude/settings.json(项目级):\njson\n{\n \"hooks\": {\n \"Stop\": [\n {\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"node /absolute/path/to/opencode-plugins/claude/bin/reflect.mjs\",\n \"timeout\": 30\n }\n ]\n }\n ]\n }\n}\n\n\n注意:事件名称必须是 \"Stop\"(大写 S),小写的 \"stop\" 会被静默忽略。\n\nAgent Skills 技能库\n\n该项目还提供了 Agent Skills(https://agentskills.io)——可复用的 AI 编程 Agent 能力。\n\n安装技能\n\nbash\nnpx skills add dzianisv/opencode-plugins\n\n\n可用技能\n\n| 技能 | 描述 |\n|------|------|\n| opencode-session-db | 直接从 SQLite 数据库读取 OpenCode 会话和消息 |\n| agent-evaluation | 使用 LLM-as-judge 评估 GenAI Agent 任务执行 |\n| feature-workflow | 从规划到 PR 合并的标准功能开发工作流 |\n| plugin-testing | 用可操作的测试用例验证插件规范要求 |\n| readiness-check | 验证所有 OpenCode 插件服务是否健康就绪 |\n\n技术实现细节\n\n架构概览\n\n\n┌─────────────────────────────────────────────────────────────────────────────┐\n│ OpenCode Plugins │\n├─────────────────────────────────────────────────────────────────────────────┤\n│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐ │\n│ │ reflection-3.ts │ │ tts.ts │ │ worktree-status.ts │ │\n│ │ │ │ │ │ │ │\n│ │ • Judge 层 │ │ • 本地 TTS │ │ • Git 脏检查 │ │\n│ │ • 任务验证 │ │ • Whisper STT │ │ • 分支状态 │ │\n│ │ • 自动继续 │ │ • Telegram 通知 │ │ • 活跃会话 │ │\n│ └──────────────────┘ └────────┬─────────┘ └──────────────────────┘ │\n│ │ │\n│ ┌──────────────┼──────────────┐ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌────────────┐ ┌──────────────────────┐ │\n│ │ TTS 引擎 │ │telegram.ts │ │ Supabase 后端 │ │\n│ │ │ │ (helper) │ │ │ │\n│ │ • Coqui XTTS │ │ │ │ • Edge Functions │ │\n│ │ • Chatterbox │ │ • 通知器 │ │ • PostgreSQL + RLS │ │\n│ │ • macOS say │ │ • Supabase │ │ • 实时订阅 │ │\n│ └──────────────┘ └────────────┘ └──────────────────────┘ │\n└─────────────────────────────────────────────────────────────────────────────┘\n\n\n反射插件的工作原理\n\n1. Agent 完成一个回合并触发 Stop 事件\n2. Reflection-3 Judge 分析会话历史和当前状态\n3. Judge 根据预定义的标准评估任务完成度\n4. 如果判定为过早停止,生成有针对性的反馈\n5. 反馈被注入 Agent 上下文,提示 Agent 继续工作\n6. 最多重试 3 次,避免无限循环\n\n实践效果与价值\n\nReflection-3 插件通过解决过早停止问题,为 AI 编程工作流带来了显著改进:\n\n提高效率\n\n减少了因 Agent 过早停止而需要的人工干预次数,让开发者可以更专注于高价值的工作。\n\n保证质量\n\n通过强制执行测试、CI、PR 等工作流门控,确保代码在交付前经过充分验证。\n\n改善体验\n\n开发者不再需要频繁地提示 Agent "请继续"或"请运行测试",Agent 能够更自主地完成完整的工作流程。\n\n总结与展望\n\nOpenCode Plugins 项目通过引入反射审查层,为 AI 编程 Agent 的可靠性问题提供了一个优雅的解决方案。其基于真实数据训练的 Judge 标准,确保了评估的准确性和实用性。\n\n对于使用 OpenCode 或 Claude Code 的开发者来说,这个项目值得认真考虑。它不仅能提高工作效率,还能改善人机协作的体验,让 AI 编程助手真正成为可靠的开发伙伴。\n\n随着 AI 编程助手的普及,像 Reflection-3 这样的审查层将变得越来越重要,帮助我们在享受 AI 自动化便利的同时,保持对工作质量的控制。