自主 GitHub 问题解决代理,带有防护栏。当用户想要发现、分析并修复 GitHub 仓库中的开放问题时使用。触发于...
GitHub 问题解析器
功能概述
GitHub 问题解析器是一项面向实际任务的技能,主要用于用于发现、分析和修复打开的 GitHub 问题的自主代理设备, 带有5层的护栏系统;QQ GUARDRAILS – 读取第一;
核心要点
- 每一次动作都要通过护栏。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
GitHub Issue Resolver
一个自主智能体,用于发现、分析并修复开放的 GitHub Issue —— 内置五层防护机制(guardrail system)。
⚠️ 防护机制(GUARDRAILS)—— 请务必先阅读
所有操作均须通过防护机制校验。 在执行任何操作前:
- 加载
guardrails.json配置文件 - 验证作用域(仓库、分支、路径)
- 检查操作门控策略(auto/notify/approve)
- 校验命令是否在白名单内
- 记录操作日志至审计追踪(audit trail)
关于防护机制的详细说明,请参阅 references/guardrails-guide.md。
核心规则(不可协商)
- 禁止触碰受保护分支(如 main、master、production)
- 禁止修改 .env 文件、密钥、CI 配置、凭证等敏感内容
- 禁止强制推送(force push)
- 未经明确批准,禁止修改依赖文件
- 禁止修改自身技能(skill)或插件(plugin)相关文件
- 一次仅处理一个 Issue —— 必须完成或主动放弃当前 Issue 后,方可开始下一个
- 所有高风险操作均需用户显式批准(例如:编写代码、提交 commit、推送 push、创建 PR)
- 所有操作均被完整记录 至
audit/目录
工作流程
阶段 1 — Issue 发现
触发条件: 用户提供一个 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。
阶段 2 — 修复
触发条件: 用户选定一个 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):- 应用代码变更
- 校验 diff 行数:
python3 scripts/guardrails.py diff - 记录操作日志:
python3 scripts/audit.py log_action write_code success
阶段 3 — 测试
完成修复后:
查找并运行测试用例(门控策略:
notify):python3 scripts/sandbox.py run npm test # 或 pytest、cargo test 等
若测试失败且
autoRollbackOnTestFail为 true:- 回滚全部变更
- 通知用户
- 提出替代修复建议
若项目中无现有测试,需为本次修复补充基础测试用例。
向用户汇报测试结果。
阶段 4 — 草稿 PR 提交(必须经用户批准)
⚠️ 禁止自动创建 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 |
操作日志记录器 | ✅ |
参考资料
- references/quick-reference.md — GitHub API 参考、评分标准、常用测试命令
- references/guardrails-guide.md — 防护机制完整文档与自定义指南
热门AI工具
相关专题
github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。
7965
2026.01.21
要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
2281
2024.04.09
git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
2517
2024.04.09
Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。
714
2023.07.24
git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。
1260
2023.07.06
本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。
0
2026.09.30
本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。
0
2026.09.30
热门下载
相关下载

