AI 摘要
本文档记录了使用 opencode + OhMyOpenAgent 进行 vibe coding 的完整工作流:从 Prometheus 需求访谈到 cicd-fullchain 全链路部署。2 个月内交付 5 个 xxx-service 服务到生产,343 次 commit 通过自研 9 个 CICD Skills 和 ops-dev agent 自动部署至 Kubernetes。
Chapter 01
概览 · 架构 · 数据
1.1
What is OpenCode
OpenCode 是运行在终端的 AI 编程助手 — 它是 "壳" (the shell)。提供多 agent 协作、后台并行任务、LSP 集成、技能 (Skills) 系统。它本身是一个通用框架,通过插件和 subagent 扩展能力。
官网: opencode.ai
核心定位:终端 AI 编程助手,是 OhMyOpenAgent 的宿主环境。没有 OpenCode,OMO 无从运行。
1.2
What is OhMyOpenAgent (OMO)
OhMyOpenAgent (OMO) 是 OpenCode 的 插件,为 OpenCode 添加多 agent 编排能力 — 11 个专业 agent、并行任务执行、多模型自动路由。
GitHub: code-yeongyu/oh-my-openagent
类比:就像 oh-my-zsh 是 zsh 的插件集 — zsh 本身已经是功能完整的 shell,但 oh-my-zsh 添加了主题、插件、自动补全、命令别名,让它从"可用"升级到"好用"。
同样地,OpenCode = zsh(基础能力),OMO = oh-my-zsh(编排层)。
安装仅需一条命令:bunx oh-my-openagent install。安装后,OpenCode 获得 11 个专业 agent,覆盖从需求访谈、计划审查、代码编写到运维部署的完整链路。
1.3
vibe coding 实践统计
两个月的产出,浓缩成数字。
363
Pipeline 执行
来源: push 316 + MR事件 24 + API触发 23
注 — Pipeline (363) > Commits (343) 的原因:
24 次 MR 事件 pipeline(创建/更新 MR 时触发) +
23 次 API 触发(xxx-registry 手动重跑) +
batch push 多次 commit 共享一个 pipeline(如 sma-simulator: 54 commits → 12 pipelines)。
Chapter 02
Inside OMO: The Agent Architecture
"OpenCode 只是个终端 AI,怎么能同时写代码、审查计划、部署上线?它背后是怎么组织多个 agent 协作的?"
Prometheus 和 Sisyphus-Junior 都是 OMO 的组成部分,不是独立的工具。OMO 内部采用 3 层架构,11 个专业 agent 各司其职。
2.1
支持工具 — LSP · AST-grep · Task/Delegation
除了 OMO agent 体系,OpenCode 还提供了以下核心工具,共同构成完整工程能力:
LSP 集成
语言服务器协议 — 代码跳转、引用查找、符号重命名、诊断检查。所有 IDE 级操作在终端完成。
AST-grep
AST 感知的代码模式搜索和替换。支持 25 种语言,用于大规模重构和跨文件代码修改。
Task / 委派系统
多 agent 并行任务分发 — 主 agent 将独立任务分发给 explore、librarian、build、ops-dev 等专业 agent,并行执行后聚合结果。
Chapter 03
E2E 完整工作流
"我有一个新功能要开发,从说需求到代码跑在 K8s 上,整个流程是怎样的?中间需要我做什么操作?"
3.1
Phase 1 → Phase 4: 需求到部署
Auto
Phase 1: PROMETHEUS 需求访谈
- 理解需求 & 边界
- 3 个并行 agent: librarian + explore × 2
- librarian 查文档, explore 查相似实现、测试基础设施
- 记录到
.sisyphus/drafts/{name}.md
需求清晰 → Clearance Check 通过 → 自动生成计划
Auto
Phase 2: METIS 计划分析
- 检查遗漏问题
- 识别 scope creep
- 补充 guardrails
- 缺失的验收标准
计划生成到 .sisyphus/plans/{name}.md
用户高精度模式
Phase 3: MOMUS 计划审查
- ≥90% 任务有验收标准
- 所有文件引用已验证
- 零业务逻辑假设
- 循环直到 "OKAY" — 没有妥协
用户触发
Phase 4: /start-work — Sisyphus 并行执行
- Wave 1: 并行 scaffolding — 7 个任务并发
- Wave 2: 并行核心模块 — 7 个任务并发
- Wave 3: 集成 — 6 个任务并发
- Wave Final: 4 agent 审稿 — F1-F4 4 路并行
Phase 5
Phase 5: CICD 全链路部署 (下方详解)
- commit + pre-commit gate → git push → pipeline
- ↓ 详见下方 CICD 水平流程图
3.2
Phase 1 详解 — 意图分类与带证据提问
意图分类
| 类型 | 特征 | 策略 |
| Build from Scratch | 新功能/从零开始 | librarian 查文档 + explore 查相似实现 |
| Refactoring | "refactor/restructure" | explore 查调用链 + 测试覆盖率 |
| Architecture | 系统设计/基础设施 | explore 查依赖图 + Oracle 咨询 |
| Mid-sized | 明确范围的功能 | 重点问边界和排除项 |
Pre-Interview Research (并行 3 agent)
librarian: 查官方文档、API 参考、production best practices, 跳过入门教程
explore: 查代码库中2-3个相似实现 — 目录结构、命名模式、共享 utilities
explore: 查测试基础设施 — 框架、断言风格、mock 策略、覆盖率
带证据的提问
Prometheus 不会空问。示例: "我找到你现有的 session pattern 在 lib/session.ts。是扩展现有模式,还是引入 NextAuth?"
每次有意义的交互后,更新 .sisyphus/drafts/{name}.md: 用户需求原文、技术决策 + 理由、调研发现、Scope 边界 (IN/OUT)。
3.3
Phase 2 — Metis 计划分析 (自动)
Metis 作为计划顾问,在生成计划前自动分析:
输入: 需求 + 访谈记录 + 调研结果
├─ 1. 应该问但没问的问题
├─ 2. 需要设置的 guardrails
├─ 3. 可能 scope creep 的区域 (如"也帮我写 adjacent module 的测试")
├─ 4. 未验证的假设 (如假设 test infra 存在)
├─ 5. 缺失的验收标准
└─ 6. 未覆盖的边界情况 (空状态/无效输入/高并发)
自动执行: 无需用户确认,结果直接整合到计划。
3.4
Phase 3 — Momus 计划审查 (可选高精度模式)
检查清单
| 检查项 | 通过标准 |
| 文件引用验证 | 100% 引用文件存在于代码库 |
| 关键文件验证 | 零失败 |
| 任务引用源 | ≥80% 任务有明确参考 |
| 验收标准 | ≥90% 任务有具体标准 |
| 业务逻辑假设 | 零假设 (或全部有证据支撑) |
| 全局理解 | 计划逻辑清晰,工作流正确 |
| 关键红旗 | 零严重问题 |
循环协议
while Momus.verdict != "OKAY":
读取 Momus 反馈
修复 ALL 提出的问题 (不是修一部分)
重新生成 .sisyphus/plans/{name}.md
重新提交 Momus
关键规则: 没有妥协 — Momus 说不行就修到行为止。不能跳过 — 用户要求高精度,Momus 就是门控。不限制次数 — 直到 OKAY 为止。
3.5
Phase 4 — Sisyphus 并行执行
设计原则
- →最大化并行: 每个 wave 5-8 个任务并发
- →依赖前置: Wave 1 是共享依赖 (类型/config/接口)
- →单关注点: 每个任务 = 1-3 文件,>3 文件就拆分
- →粒度规则: 任务少于 3 个 = 拆分不够
Wave 示例
Wave 1 — 7 个并行 (无依赖)
T1: 脚手架
T2: 类型定义
T3: Schema
T4: 接口
T5: 基础设施
T6: 中间件
T7: 客户端
Wave 2 — 7 个并行 (依赖 Wave 1)
T8: 核心逻辑 ←依赖 1,2,4
T9: API ←依赖 1,2,4
T10: 存储 ←依赖 2,4
T11: 重试/降级 ←依赖 2,4,8
T12: UI 框架
T13: 数据层
T14: Telemetry ←依赖 5,10
Wave 3 — 6 个并行 (集成)
T15: 路由整合 ←依赖 6,11,14
T16: 可视化
T17-19: 部署配置 ←依赖 15
T20: 构建验证
Wave Final — 4 agent 并行审稿
F1: Oracle — 计划符合度
F2: 代码质量 (tsc/lint/test)
F3: 真实 QA
F4: Scope 忠实性 (spec vs diff)
→ 4 个全部 APPROVE → 用户明确 "okay"
3.5
Phase 5 — CICD 全链路部署
Pre-Commit Gate (MANDATORY)
git rev-parse --short=8 HEAD → SHA 必须是 8 字符
echo -n "$SHA_8" | wc -c | grep -q "^8$"
kustomize build <overlay-path> → exit 0 才可 commit
CICD 流程图
⚡
OpenCode + OMO
commit → push → 触发 CI
🏗️
Pipeline
build + test + docker
📦
xxx-registry
Harbor proxy
🔄
ArgoCD
sync from CodeCommit
☸️
K8s 验证
rollout + pods + logs
K8s 验证详情
- →
kubectl rollout status (timeout 600s)
- →
kubectl get pods — Running, Ready, 0 restarts, >10min
- →
kubectl logs (grep ERROR/EXCEPTION/FATAL)
已知错误模式
Connection refused…kafka → bootstrap server 错
SSLHandshakeException → 证书问题
VaultException → Vault auth
OOM killed → JVM heap
BindException → 端口冲突
最后执行: lark-progress-notify 飞书通知
Chapter 04
自研 9 个 CICD Skills
"代码写好了,怎么推上去部署?CI/CD 能一键自动完成吗?"
4.1
核心 CICD Skills
cicd-fullchain
全链路部署
commit→pipeline→ECR→GitOps MR→ArgoCD→K8s; 支持所有 xxx-service 服务,china.dev/china.test/cn.prod; 8-char SHA pre-commit gate; 两种模式: 开发 (dev push) 和 发布 (release)
xxx-test-report
GitLab 测试报告
生成 xxx-service 三服务 (converter/manager/exchange-api) pipeline 测试 CSV 报告,导入飞书多维表格
xxx-new-service-design
新服务设计
Connected Safety 新服务创建完整指南: K8s namespace、Go 路由、CI 模板、ArgoCD 注册、overlay 结构
cicd-poc-deploy
POC 部署
概念验证服务的快速部署流程
cicd-quick-dev
快速开发
开发分支快速部署,跳过部分 CI 阶段
xxx-vin-scanner
VIN 调度
扫描 RMS Redis 活跃 VIN、查询 freshness、rotation、top-N 选择、/api/test/* endpoint 调用
artifactory-token
Artifactory 认证
JFrog Artifactory Maven token 自动获取 + settings.xml 配置、SSO 登录
xxx-kube-login
K8s 集群登录
xxx QA K8s SSO+2FA 自动登录、cookie 缓存避免重复 2FA、kube config 更新
lark-progress-notify
飞书通知
部署里程碑自动飞书通知 (ACL-deployed/code-deployed/verified/custom)
4.2
Ops-Dev Subagent (运维专属 Agent)
ops-dev 是 oh-my-openagent 中注册的专用 CICD 运维 subagent。
职责
- →ALL CICD: GitLab + GitHub + GitOps + ArgoCD + K8s
- →覆盖中国区所有微服务 (任何 china.dev / china.test / cn.prod 环境)
- →环境自治: token 过期刷新、kube 超时修复、proxy 自动处理
- →MR 自动合并: 定位 pipeline MR → 确认 → 合并
- →K8s 验证 + 日志 + 飞书通知
在 CICD 流程中的分工
cicd-fullchain skill: 理解工作流、准备前置步骤
┌─ Step 0-3: 常规 agent (commit, push, pipeline 监控)
│
▼
ops-dev subagent: Step 4+ (所有部署操作)
├─ 搜索 open MRs → 确认 → 合并
└─ ArgoCD sync 等待 → kubectl 验证 → 飞书通知
4.2
调研 & 数据 Skills
| # | Skill | 用途 |
| 11 | xxx-ds-query | Connected Safety 数据源查询 (4 文件: SKILL + 配置 + 参考) |
Chapter 05
/ulw 模式 — 持续工作到完成
"写完 plan 后,有没有一种方法让它自动跑完所有步骤,不用每步都来确认?不达目标不罢休。"
5.1
什么是 /ulw
Ultrawork 模式 — 连续工作循环,不中断、不询问 (除非阻塞):
/ulw → 设定明确目标 → Agent 自主执行 → 完成自动继续 → 全部完成
5.2
统计数据
/ulw 执行
共计 10 个成功案例,涵盖模拟器重构、协议迁移、路由修复、服务创建等场景。
工作计划
累计创建 20 个工作计划,覆盖从架构设计到部署验证的全生命周期。
Chapter 06
实战经验 & 最佳实践
"这套工作流在实际项目中踩了哪些坑?有什么可以避开的?"
6.1
CI/CD 关键教训
问题
根因
解决方案
ImagePullBackOff
SHA 只有 7 字符
Pre-commit gate, git rev-parse --short=8
pipeline CVE 扫描阻塞
历史已有 CVE
dp_upload_bom 临时跳过 → 修复后恢复
GitOps overlay 无效
YAML 缩进错误
kustomize build pre-commit lint
ArgoCD sync 失败
7-char vs 8-char tag
Harbor webhook 只认 8-char
Kafka mTLS 连接失败
SSL bundle 注册方式不匹配
尝试 7 种方式 → BeanPostProcessor
6.2
团队协作模式
- →Lark 通知 = 部署验收必要环节, 每个里程碑自动发送
- →Ops-Dev 独立于编码 agent — 代码专注功能, ops 专注部署
- →飞书多维表格 = 测试报告仪表盘, skill 自动上报
- →Confluence 文档 链接在 README, 每个服务标明
Chapter 07
命令速查
本地开发
cd xxx-service/<service>/
mvn clean install
mvn spring-boot:run \
-Dspring-boot.run.profiles=local
CICD
git add -A && git commit \
-m "type(scope): desc" && git push
kubectl get pods -n xxx-ns
kubectl logs -n xxx-ns \
-l app=<service> --tail=100
Pre-Commit Gate
SHA_8=$(git rev-parse --short=8 HEAD)
echo -n "$SHA_8" | wc -c | grep -q "^8$"
kustomize build apps/partner/<service>/\
overlays/china.dev
Opencode
/start-work {plan-name} # 执行计划
/ulw # 持续工作模式
/cancel # 取消
Lark 通知
./scripts/notify-progress.sh china.dev code-deployed "<Tag> / <Pod>"
Chapter 08
技术栈清单