Go/Java 后端 AI 工程协作工作台
这是本专栏的综合项目:开发者提交一个后端任务,Harness 负责收集上下文、拆分工作、调用工具、修改代码、运行验证并生成审查结果。
总体架构
一次任务
text
需求:给订单创建接口增加幂等键
-> Planner 只读定位接口、事务、迁移和测试
-> 用户确认计划
-> Coder 修改 Go/Java 代码
-> Hook 格式化并运行窄范围测试
-> Reviewer 只读检查 diff、安全和兼容
-> Harness 汇总证据和未决问题Go 服务职责
- 提供任务和运行记录 API;
- 保存 Harness 任务状态、工具调用摘要和验证结果;
- 暴露只读代码检索 MCP Tool;
- 对运行记录做脱敏和权限校验。
一个运行记录可以设计为:
go
type Run struct {
ID string `json:"id"`
Task string `json:"task"`
Workspace string `json:"workspace"`
Status string `json:"status"`
Findings []Finding `json:"findings"`
CreatedAt time.Time `json:"created_at"`
}Java 服务职责
- 查询企业知识库和 API 契约;
- 根据用户身份过滤可见项目;
- 返回结构化上下文,不直接执行任意命令;
- 对外部系统错误保留 trace id。
java
public record ContextItem(
String source,
String title,
String content,
String traceId
) {}Skills 与 Hooks
text
skills/
├── backend-plan/
├── backend-implement/
└── backend-review/
hooks/
├── after-write-format
├── before-test
└── before-finishPlanner 只允许读取和搜索;Coder 允许修改工作区和运行测试;Reviewer 只允许读取 diff。删除文件、推送和发布永远不自动开放。
验收标准
- 能从任务创建到结果汇总完整走通;
- Go 和 Java 示例均有至少一个窄范围测试;
- 工具调用有 schema 校验和权限检查;
- 测试失败会回到修复阶段,且重试有上限;
- 最终结果包含修改文件、命令、测试状态和未决问题;
- 日志不含 API Key、Cookie、源码机密和完整用户输入;
- 任一 MCP Server 不可用时,任务能清晰失败或切换只读模式。
扩展任务
- 增加一个只读 Git MCP Server。
- 增加“数据库迁移审查” Skill。
- 为 Reviewer 增加 P0/P1/P2/P3 结构化输出。
- 将任务轨迹接入评测页面。
