自主 GitHub 问题解决代理,带有防护栏。当用户想要发现、分析并修复 GitHub 仓库中的开放问题时使用。触发于...
GitHub 问题解析器是一项面向实际任务的技能,主要用于用于发现、分析和修复打开的 GitHub 问题的自主代理设备, 带有5层的护栏系统;QQ GUARDRAILS – 读取第一;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
一个自主智能体,用于发现、分析并修复开放的 GitHub Issue —— 内置五层防护机制(guardrail system)。
所有操作均须通过防护机制校验。 在执行任何操作前:
guardrails.json 配置文件关于防护机制的详细说明,请参阅 references/guardrails-guide.md。
audit/ 目录触发条件: 用户提供一个 GitHub 仓库(格式为 owner/repo)。
步骤:
依据防护机制校验仓库合法性:
python3 scripts/guardrails.py repo
若被拦截,需向用户说明原因并立即中止流程。
获取、评分并呈现 Issue 列表,由推荐引擎(recommendation engine)完成:
python3 scripts/recommend.py
该脚本自动拉取全部开放 Issue,过滤掉 Pull Request,按严重性(severity)、影响范围(impact)、修复难度(effort)、新鲜度(freshness)进行加权评分,并输出结构化推荐结果。
必须始终使用 recommend.py —— 禁止手动格式化 Issue 输出。该脚本确保每次呈现方式完全一致。
如需原始 JSON 格式(例如用于后续程序处理):
python3 scripts/recommend.py--json
⏹️ 暂停。等待用户选择具体 Issue。
触发条件: 用户选定一个 Issue。
步骤:
锁定该 Issue(确保“一次仅处理一个”策略生效):
python3 scripts/guardrails.py issue_lock
完整阅读 Issue 讨论线程,包括所有评论。
克隆仓库(门控策略:notify):
python3 scripts/sandbox.py run git clone https://github.com// .git /tmp/openclaw-work/
创建安全分支(门控策略:auto):
python3 scripts/sandbox.py run git checkout -b fix-issue-
探索代码库 —— 读取相关源文件。对每个待读取文件执行:
python3 scripts/guardrails.py path
制定修复方案 —— 向用户清晰说明修复思路:
## 拟定修复方案 - 问题根源:[根本原因] - 解决方案:[拟实施的变更] - 涉及文件:[文件列表及各文件的具体变更点] - 预估 diff 行数:[行数]
⏹️ 暂停。必须获得用户对修复方案的明确批准后,方可进入实施阶段。
approve):python3 scripts/guardrails.py diff python3 scripts/audit.py log_action write_code success完成修复后:
查找并运行测试用例(门控策略:notify):
python3 scripts/sandbox.py run npm test # 或 pytest、cargo test 等
若测试失败且 autoRollbackOnTestFail 为 true:
若项目中无现有测试,需为本次修复补充基础测试用例。
向用户汇报测试结果。
⚠️ 禁止自动创建 PR。必须始终先征得用户同意。
切勿在聊天窗口中直接粘贴完整 diff。 对于任意非简单项目,请将分支推送至远程,并引导用户在 GitHub 上进行审查 —— 此处支持语法高亮、按文件导航及内联评论等完整功能。
提交变更(门控策略:approve):
python3 scripts/sandbox.py run git add . python3 scripts/sandbox.py run git commit -m "Fix #: "
提供变更摘要(而非原始 diff),保持简洁明了:
## 变更概览 - **src/models.py** — 新增字段校验(标题长度、枚举值检查) - **app.py** — 在 POST 接口添加校验逻辑,返回 400 错误响应 - **tests/test_app.py** — 新增 22 个测试用例,覆盖全部校验规则 - 共修改 4 个文件,约 100 行源码 + 约 150 行测试代码 - 所有测试均已通过 ✅
明确询问用户:“是否准备推送并创建草稿 PR?”
仅当用户明确回复“yes”后(门控策略:approve)才可执行:
python3 scripts/sandbox.py run git push -u origin fix-issue-python3 scripts/sandbox.py run gh pr create --draft --title "..." --body "..."
注意:PR 默认以草稿(draft)形式创建。PR 描述应包含所有变更的详细说明、测试结果汇总,以及指向原始 Issue 的链接(Closes #N)。
分享 PR 链接 —— 用户前往 GitHub 完成审查。
解锁 Issue:
python3 scripts/guardrails.py issue_unlock
| 脚本 | 用途 | 可直接运行(无需额外阅读文档) |
|---|---|---|
scripts/recommend.py |
主入口脚本 — 获取、评分并呈现 Issue | ✅ |
scripts/fetch_issues.py |
原始 Issue 获取器(recommend.py 内部调用) |
✅ |
scripts/analyze_issue.py |
对单个 Issue 进行深度分析 | ✅ |
scripts/create_pr.py |
PR 创建封装脚本 | ✅ |
scripts/guardrails.py |
防护机制执行引擎 | ✅ |
scripts/sandbox.py |
安全命令执行封装器 | ✅ |
scripts/audit.py |
操作日志记录器 | ✅ |