当前从 Issue 到 PR 的研发流程通常包含需求澄清、方案设计、编码、测试、截图验证、PR 描述和人工 Review。这个过程有大量重复劳动,也存在几个常见问题:
- Issue 描述不完整,Agent 直接开工容易误做。
- 复杂需求缺少 PRD 或技术方案沉淀。
- 自动化编码缺少隔离沙箱,存在污染主工作区或误改文件的风险。
- 前端变更缺少截图、视觉验证和可追溯记录。
- 后端变更缺少稳定的单元测试和接口契约验证。
- 多 Agent 并行时缺少任务看板、状态追踪和人工中断能力。
本项目希望构建一个“Issue 驱动的 Agent 自动研发系统”,让 Agent 能先理解需求,再判断是否需要人审,最后在沙箱中完成实现并提交 PR。
- 自动读取 Issue,进行 brainstorm 和需求澄清。
- 自动生成结构化 PRD 文档。
- 根据复杂度和风险判断是否直接执行,或先请求人工审核 PRD。
- 在隔离沙箱中启动实现 Agent 和若干 subagent。
- 前端任务必须产出 Chrome 截图、视觉检查记录和单元测试。
- 后端任务必须产出单元测试,必要时产出接口测试或迁移验证。
- 通过 build/lint/test/typecheck 和 Review subagent 后自动创建 draft PR,并附带 PRD、实现摘要、测试结果、截图和风险说明。
- draft PR 必须附带本地验证指令,让开发者可以快速 clone/checkout、安装依赖、运行质量门禁并启动页面验证。
- 支持仓库级 GitHub Bot 触发策略,让不同仓库选择自动触发、
@触发、标签触发、手动触发或禁用。 - 构建 Repo Navigation Graph,提升 Agent 在大仓库中定位入口、关联文件和测试的速度与准确度。
- 提供 trace replay、eval、policy guardrails、tool permission 和安全扫描能力。
- 提供 Web 看板展示任务状态、Agent 日志、产物、阻塞点和人工操作入口。
- 建立记忆管理接口,沉淀项目地图、历史 PR 经验和可复用验证流程,但长期记忆更新必须可审核。
第一阶段不追求完全无人值守合并代码;合并仍由人完成。
第一阶段不做通用 CI/CD 平台替代品;只编排需求分析、实现、质量门禁验证和 draft PR 创建。
第一阶段不覆盖所有项目类型;优先支持 GitHub Issue、Git 仓库、Node/TypeScript 前端、常见后端测试命令。
第一阶段不重点处理企业私有代码出域治理、私有化模型部署和复杂脱敏策略;默认使用 DeepSeek / Qwen 等 OpenAI-compatible API 完成 Agent 任务。
在 Issue 中描述需求,希望系统能自动补齐背景、边界和验收标准。
审核 PRD、技术方案、PR 风险和测试结果,决定是否继续或合并。
配置 prompt、skill、沙箱策略、复杂度阈值、仓库权限和执行预算。
当用户创建或标记一个 Issue 后,系统应自动读取标题、正文、标签、评论和关联文件,生成一份 PRD 草案。
PRD 必须包含:
- 背景与问题
- 目标与非目标
- 用户故事
- 验收标准
- 影响范围
- 风险与未知项
- 前后端分类
- 建议实现顺序
- 是否需要人工审核
当需求满足任意高风险条件时,系统不应直接进入实现,而应进入 PRD_REVIEW_REQUIRED 状态。
高风险条件包括:
- 需求涉及支付、权限、安全、数据删除、隐私、合规。
- 需要数据库迁移或跨服务改动。
- 预计改动文件超过阈值。
- 验收标准不清晰。
- Issue 中存在互相冲突的信息。
- Agent 置信度低于配置阈值。
当 PRD 被批准或需求被判断为低风险时,系统在沙箱中创建执行环境:
- 在 Docker 沙箱中 clone 完整仓库,从目标 base branch 创建当前 Issue 的独立任务分支。
- 安装依赖或复用缓存。
- 注入 PRD、prompt、平台 skill、项目业务 skill 和由 agentic search 生成的 ContextPack。
- 按任务类型启动主实现 Agent。
- 根据需要启动 subagent,例如搜索 Agent、测试 Agent、前端截图 Agent、代码审查 Agent。
- 每个 Issue 独立沙箱、独立分支、独立 PR,不复用其他未合并 Issue 的 diff。
前端任务完成后,系统必须:
- 运行 build。
- 运行 lint。
- 运行类型检查,如果项目存在对应命令。
- 启动本地开发服务器或 Storybook。
- 使用 Chrome/Playwright 打开目标页面。
- 保存桌面和移动视口截图。
- 运行单元测试。
- 如果配置了视觉回归基线,执行截图 diff。
- 将截图链接和测试摘要写入 PR。
后端任务完成后,系统必须:
- 运行 build。
- 运行 lint。
- 运行相关单元测试。
- 运行类型检查,如果项目存在对应命令。
- 如果涉及 API,运行接口测试或契约测试。
- 如果涉及数据库,运行迁移 dry run 或本地迁移验证。
- 将测试结果写入 PR。
系统应提供 Web 看板,展示:
- 当前任务列表
- 每个任务状态
- Issue 链接
- PRD 文档
- 执行沙箱
- Agent 日志
- 当前 subagent
- 测试结果
- 前端截图
- PR 链接
- 人工审核、继续、暂停、取消、重试按钮
系统应允许每个仓库配置触发方式:
auto:Issue 创建、重开或打标签后自动进入流程。mention:只有 Issue 评论包含仓库配置的@bot才触发。label:只有包含 allowlist 标签才触发。manual:只能通过 Web 看板或 API 手动导入。disabled:仓库安装 Bot 但暂停执行。
触发策略必须写入事件日志,便于解释“为什么这个 Issue 被 Agent 接手”。
Agent 创建 draft PR 时,PR 描述必须包含:
- GitHub CLI 验证路径:
gh repo clone+gh pr checkout。 - plain Git 验证路径:
git clone+git fetch origin <branch>+git checkout。 - install、build、lint、typecheck、test 命令。
- 前端任务的 dev server 和截图 URL。
- base branch、base commit、agent branch、sandbox image。
- 截图、测试报告、Review subagent artifact 链接。
Review subagent 应检查这些说明是否足以让开发者快速复现 Agent 的验证过程。
系统应把每次任务的高价值经验沉淀为可审核的记忆更新建议:
- semantic project memory:业务术语、模块关系、测试指南。
- episodic memory:历史 Issue/PR 摘要、失败和人工反馈。
- procedural memory:某类任务的验证流程和修复 playbook。
长期记忆不能静默写入,必须以 artifact 或 PR 内容形式让人审核。
系统应为每个仓库维护代码导航图,帮助 Agent 快速定位:
- 页面入口、API endpoint、worker、CLI command。
- 相关组件、service、model、schema、migration。
- import/export 和调用链。
- 源文件对应测试。
- CODEOWNERS 和高风险目录。
- 历史 PR 中经常一起修改的文件。
- 与业务术语和 memory 相关的模块。
每个任务应产出 navigation-route.json,说明当前 Issue 的入口、必读文件、相关测试、排除区域和选择理由。
系统应支持:
- Trace Replay:回放状态转移、LLM call、tool call、memory hit、guardrail decision。
- Golden Issue Eval:用固定 Issue fixtures 回归评估 PRD、ContextPack、导航路线、Review 和 PR body。
- MCP Tool Gateway:统一管理工具 schema、权限、timeout、redaction 和审计。
- Policy-as-Code:通过配置阻断危险文件、危险命令和高风险领域。
- Security Scan:secret scan、dependency audit、SAST、prompt injection scan。
- Model Router:按任务复杂度、风险和预算选择模型,并记录 token、成本和耗时。
建议状态如下:
ISSUE_RECEIVEDCONTEXT_COLLECTINGBRAINSTORMINGPRD_DRAFTEDPRD_REVIEW_REQUIREDPRD_APPROVEDSANDBOX_PREPARINGISSUE_BRANCH_CREATEDCODEBASE_INDEXINGAGENTIC_SEARCHINGCONTEXT_PACK_CREATEDIMPLEMENTINGQUALITY_GATES_RUNNINGSUBAGENT_REVIEWINGPR_CREATINGHUMAN_REVIEWDONEBLOCKEDFAILEDCANCELLED
系统应给每个 Issue 计算复杂度分数 0-100。
建议维度:
- 需求清晰度:0-20
- 改动范围:0-20
- 安全/权限/数据风险:0-20
- 测试可验证性:0-15
- 跨模块/跨服务程度:0-15
- Agent 置信度:0-10
建议门禁:
0-39:可自动执行。40-69:生成 PRD 后等待人工确认。70-100:必须人工拆分或补充方案,不自动编码。
- GitHub Issue webhook 或手动导入 Issue。
- PRD 自动生成。
- 复杂度评分和人工审核门禁。
- 沙箱工作区创建。
- Agentic search 和 ContextPack。
- Repo Navigation Graph 和 navigation route artifact。
- 每个 Issue 独立分支和独立 PR。
- 主 Agent 执行。
- 前端截图验证。
- 后端测试验证。
- build/lint/test/typecheck 质量门禁。
- draft PR 自动创建。
- Web 看板。
- PR 本地验证指令。
- 记忆架构与 memory/project-map update artifact。
- Trace Replay 和基础 eval harness。
- Policy-as-Code 和安全扫描门禁。
- 多仓库联动。
- 自动拆分 Epic。
- 自动静默写入长期记忆系统。
- 视觉回归基线管理。
- 生产环境部署审批。
- 自动合并。
- 低风险 Issue 自动生成 PR 的成功率。
- 人工修改 PRD 的比例。
- 自动 draft PR 被接受的比例。
- 每个任务平均耗时。
- 因需求理解错误导致的返工率。
- 自动测试覆盖率与失败定位准确率。
- 人工审核者对 PR 摘要和截图材料的满意度。
- 开发者按 PR 本地验证指令成功复现的比例。
- memory proposal 被人工接受并复用的比例。
- Agent 误判需求复杂度,导致过早执行。
- 沙箱权限过大,误触外部资源。
- 前端截图无法代表真实交互质量。
- 测试命令在不同仓库差异过大。
- Skill 和 prompt 版本不可追踪,导致结果不可复现。
- Web 看板只展示状态但无法解释 Agent 决策。
- 长期记忆过期或被过度泛化,误导 Agent 修改错误区域。
第一阶段建议做一个“多仓库配置、单任务单仓库、GitHub Issue、人工确认 PRD、Docker 沙箱执行、质量门禁、Review subagent、自动 draft PR、本地验证指令”的闭环。
默认策略可以保守一些:只要复杂度超过 40,就先要求人审 PRD。这样能先保证系统可信,再逐步放宽自动执行范围。