AI PLAY玩法更新持续收录
← 回到更新流

2026-09-08 · 原文发布日

四个AI角色互盲评审GitHub issue再合成修复方案

表单输入仓库、issue号和固定commit SHA下的1到6个文件,四个角色(架构师、开发者、评审、测试)用同一个自选模型独立审阅同一份证据且互不可见,可选BVC机制决定是否追加一轮交叉批评,最后在5次或9次调用预算内合成修复计划;被拒答或截断时输出失败报告。全程只读GitHub,不改代码不提PR,结果和技术审计交人工复核。

原文要点

该工作流用表单收集GitHub仓库、issue号、固定commit SHA和1到6个指定文件,通过GitHub API只读拉取issue与文件作为证据;架构师、开发者、评审、测试四个角色用同一自选模型互盲独立审阅,可选BVC机制在分歧时追加一轮交叉批评;总预算为5次或9次计数的模型调用(含失败调用),留1次给合成;拒答、截断或格式异常时输出失败报告而非方案。支持OpenAI、Claude、Gemini、DeepSeek、Yandex及OpenAI兼容端点,需n8n 2.37.10且启用JavaScript Code节点,从作者GitHub release下载workflow.json、README和测试。工作流不改GitHub、不提PR、不评论。作者标注n8n Cloud及多数服务商实测未验证。

这次做成什么

搭一个"四角色盲审+合成"的issue会诊台:输入一个真实issue和固定版本的代码文件,产出一份供人工复核的修复计划或失败报告,并保留每次调用与停止原因的审计记录。

准备什么

  • n8n 2.37.10且启用JavaScript Code节点(Code、HTTP Request、Form节点可用)
  • 一个GitHub只读token,仅授contents、issues、metadata读权限
  • 自选模型服务商的API账号与密钥,费用由你的账号承担
  • 从作者GitHub release下载的workflow.json及README
  • 至少一个有真实issue的测试仓库

具体怎么做

  1. 下载并导入工作流

    打开作者的release页(github.com/jabrailkhalil/xynapse/releases/tag/n8n-bvc-v0.1.0),下载workflow.json、README和测试文件。在n8n 2.37.10中导入workflow.json;若导入报错先确认实例版本和JavaScript Code节点已启用。

  2. 创建GitHub只读凭据

    在GitHub生成fine-grained token,只勾选目标仓库的contents、issues、metadata读取权限。在n8n建Header Auth凭据,值填Authorization: Bearer 你的token,并绑定到全部8个GitHub HTTP节点。

  3. 配置模型与预算

    在Configure approved input节点选择服务商、填精确模型ID、把maxCalls设为5或9(9含一轮交叉批评的余地)。按README为所选服务商建Header Auth凭据,绑定到全部9个Model HTTP节点;换服务商必须重新绑定。

  4. 跑表单测试

    手动执行工作流打开表单,填仓库owner/name、一个真实issue号、该仓库当前完整commit SHA(git rev-parse HEAD获取,勿用分支名),并明确列出1到6个相关文件路径。先不勾Use BVC跑一次,观察四份独立评审与合成计划。

  5. 核对审计并发布

    检查Final report中的attempts、分歧点与停止原因;再勾选Use BVC对比是否追加了批评轮。确认无误后发布工作流获得可复用表单URL,使用者需有授权的n8n登录。

可直接复制的材料

四个盲审角色提示词(本站编写,供你理解或自建简化版,非原工作流内部提示词)

原工作流的真实角色提示词在其源码中,本提示词为本站练习用替代;使用时替换角色名并拼接issue与文件内容

你是{架构师|开发者|代码评审|测试工程师}。以下是一个GitHub issue描述和固定版本的若干源文件,它们是唯一证据,你看不到其他角色的结论。任务:1) 用证据推断缺陷根因,引用具体文件与行;2) 给出你角色视角下的修复建议,说明影响的模块;3) 列出你不确定、需要其他角色确认的点。若证据不足以定位,明确说"证据不足"而不是猜测。输出为三个小节的纯文本。

表单测试输入示例

本站虚构示例;commit_sha必须为完整40位SHA,files限定1到6个

{
  "repository": "yourname/demo-shop",
  "issue_number": 42,
  "commit_sha": "9f02c1d4e5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0",
  "files": ["src/cart/calc.js", "src/cart/calc.test.js"],
  "use_bvc": false,
  "maxCalls": 5
}

人工复核清单配置

本站编写的复核流程,非原工作流节点

复核顺序:1. 四角色是否都完成且互不相同(排除模型复读);2. 根因是否引用了具体文件行号;3. 修复建议是否触及issue未提到的文件(警惕臆测);4. 审计中attempts是否超限、stop reason为何;5. 若为失败报告,确认是拒答、截断还是格式异常,再决定换模型重跑。

输入与输出示例

本站虚构演示,非作者运行结果,未实际调用任何模型

输入

表单填:仓库yourname/demo-shop,issue #42"购物车满200减30未生效",commit SHA为9f02c1d4…(40位),文件选src/cart/calc.js和calc.test.js,不勾BVC,maxCalls=5。

对应输出

合成计划要点:架构师指出calc.js第38行满减判断在折扣前执行导致门槛计算错误;开发者给出把满减移到小计之后的改法;评审提醒该改动影响优惠券叠加分支;测试要求补三条边界用例(199.99、200、200.01)。审计显示5次调用全部成功、无追加批评轮、stop reason为budget_exhausted_after_synthesis。

做完检查这些

  • 四份角色评审内容互不雷同,且合成计划引用了具体文件名与行号
  • 审计记录中模型调用次数不超过设定的5或9,且含失败调用的计数
  • 表单使用完整commit SHA时两次运行读到的文件内容完全一致
  • 工作流全程未对GitHub产生任何写入(无PR、无评论、无提交)

容易卡住的地方

  • 用分支名或短SHA代替完整commit SHA会破坏可复现性,表单要求完整SHA
  • GitHub token若给了写权限违背只读设计,应仅授contents/issues/metadata读权限
  • 5次预算勾BVC可能不够追加批评轮,想体验BVC建议设9
  • 作者明确n8n Cloud及对多数服务商的实测未验证(verification=not_run),先在自托管实例小步测试
  • 模型被拒答或输出截断时得到的是失败报告,属正常设计而非工作流故障

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Discuss GitHub issues with council-style AI reviewers and optional BVC
原作者
Dzhabrail Khalilov
原始发布日期
2026-09-07T21:40:04.473Z
来源
https://n8n.io/workflows/19339