资讯动态

Ekko Agent 内置 gh-issues 技能实战:从 GitHub Issue 分流到 Pull Request 的自动化工作流

发布时间:2026/9/24 15:29:44 来源:尧图企业网站定制
AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载本篇技术指南以 Ekko Agentekko-studio 开源仓库中的 AI 编程代理运行时内置的gh-issues技能为对象系统讲解如何让 Agent 自主完成Issue 分流 → 修复实现 → 提交 PR → 处理评审反馈的完整闭环。读者将掌握该技能声明的输入契约、仓库解析、去重、隔离、提交与评审处理等全部流程并结合 delegate_task 工具实现 与 运行时约束 理解其底层执行边界。技能定位与适用场景gh-issues是 Ekko Agent 内置技能集中的一员其 frontmatter 声明如下name: gh-issues description: Triage GitHub issues, select safe candidates, implement focused fixes, open pull requests, and address actionable review feedback. metadata: keywords: - github issues - issue to pr - gh issues - issue triage从 内置技能清单测试 可以看到gh-issues与github、spike、skill-creator等技能一起被打包为内置技能集并在每个 profile 初始化时同步安装。技能分为两层gh-issues本技能面向issue 到 PR的端到端工作流编排github配套技能提供ghCLI 在仓库、Issue、PR、CI、Release 与结构化 API 查询上的操作细则见 github/SKILL.md。执行本工作流之前必须先读取github技能因为所有 GitHub 写操作、提交、推送、PR 创建与评审回复都必须在用户请求的结果边界内进行。技能开头明确强调If the user asked only to inspect, triage, or plan, stop before changing files, branches, issues, or PRs.——即用户只要求检查/分流/规划时禁止执行任何变更。输入契约技能接受的输入可分为五类仓库接受owner/repo形式或从git remote get-url origin推断可选过滤条件label标签、milestone里程碑、assignee指派者、state状态、limit数量上限可选 fork 模式把分支推送到指定 fork并针对源仓库打开 PRDry run试运行只列出候选与计划动作不改变本地与远端状态仅评审模式跳过 issue 选择只处理用户明确圈定的 PR 反馈。步骤 1解析并验证仓库工作流第一步是确认环境就绪技能给出的基准命令为git remote get-url origin git status --short gh auth status gh repo view OWNER/REPO --json nameWithOwner,defaultBranchRef随后必须显式推导并保持以下四个变量贯穿全程SOURCE_REPO承载 issue 的源仓库PUSH_REPO仅在用户明确要求时使用 fork否则等于源仓库BASE_BRANCH源仓库默认分支除非用户另行指定PUSH_REMOTE配置好的 fork remote或origin。该步骤包含三条硬性安全约束认证缺失即停止GitHub 认证不可用时立即停止。严禁搜索本地配置文件找 token、打印gh auth token、或要求用户把 token 粘贴进对话脏工作区不混入如果 checkout 是脏的存在与本次 issue 无关的未提交改动必须保留这些改动并询问用户如何处理或先确认仓库与 base 分支后创建独立 git worktreefork 模式先公示在添加或修改 git remote 之前必须展示精确的源仓库、fork、base 分支与 remote 信息。步骤 2拉取候选 Issue候选拉取使用gh issue list注意gh issue list天然排除 PRgh issue list --repo $SOURCE_REPO --state open --limit 10 \ --json number,title,labels,url,body,assignees,milestone只添加用户明确要求的过滤器。若无匹配项直接报告并停止。若为 dry run则以紧凑列表issue 编号、标题、标签、URL展示候选后停止不做任何状态变更。步骤 3避免重复劳动对每个候选在选择前必须排查是否已有现成修复gh pr list --repo $SOURCE_REPO --search $SOURCE_REPO#n --state open \ --json number,url,title,headRefName gh pr list --repo $SOURCE_REPO --head fix/issue-n --state open \ --json number,url gh api repos/$PUSH_REPO/branches/fix/issue-n /dev/null三类探测分别覆盖引用该 issue 的开放 PR、标准命名的修复分支、fork 中已存在的同名分支。判定规则已有开放 PR 或分支的 issue 直接跳过除非用户要求继续该工作阅读 issue 正文与相关代码后才能判定其可执行性优先选择小、可复现、有明确验收条件的 issue对语义模糊或安全敏感的 issue标记为需澄清多个候选且用户未指定时先展示候选并询问用户要修复哪些 issue 编号。步骤 4隔离工作worktree 与子代理委托默认一次只处理一个 issue。技能特别指出Ekko subagents share the workspace, so never let concurrent workers checkout different branches in the same working tree.——由于 Ekko 子代理共享工作区绝不允许并发 worker 在同一工作树中检出不同分支。隔离策略分两种单个 issue本地实现或以前台模式foreground调用delegate_task传入自包含目标与全部所需上下文相互独立的并行任务先为每个 issue 创建一个专属 git worktree再把精确的 worktree 路径交给每个后台子代理。后台模式仅在启用且确实有用时使用——进度对用户可见但父代理不得假装同步收集到了结果。委托任务的上下文必须包含六要素issue URL、标题、正文、标签与验收条件源仓库与推送仓库、base 分支、推送 remote、fork 模式隔离工作目录与目标分支fix/issue-n要求的测试与证明授权变更边界是否包含 commit、push、PR 创建。底层实现delegate_task 的语义与边界delegate_task由 delegation.ts 实现其参数模式为{ goal, context?, mode }mode仅允许foreground等待并返回结果或background立即返回、独立完成。从源码可以看到三条核心约束goal必须非空否则直接失败运行时通过context.delegationDepth 0检查禁止递归委托——Recursive delegation is disabled for Ekko subagents.若运行时不支持委托context.delegateTask缺失返回Subtask delegation is unavailable in this runtime.在 runtime.ts 中还有更细的控制当delegationDepth 0时才暴露delegate_task工具当后台委托被禁用时工具定义会被替换为仅前台版本。这印证了 SKILL.md 中Delegated subagents cannot ask the user questions or delegate recursively. Resolve ambiguity before delegation.的规定——歧义必须在委托前解决因为子代理无法回头提问。子代理与父代理共享模型、provider、工作区与工具但没有父代理的对话历史。步骤 5实现并证明修复对每个选中的 issue执行 8 步流水线在隔离工作树中从已验证的BASE_BRANCH创建fix/issue-n复现或定位问题实现最小连贯修复避免无关重构适当补充或更新聚焦的测试运行相关测试、类型检查与构建步骤审查 diff 中是否有无关文件、生成产物、密钥与误改的用户改动若已授权用清晰的 conventional message 提交不带 force推送若已授权针对SOURCE_REPO与BASE_BRANCH打开 PR。PR 正文必须使用文件而非 shell 插值与github技能中 Use--body-filefor comments and bodies containing backticks, shell snippets, environment names, or user-provided text 的约束一致。PR 正文应包含解决的问题为何做此改动用户影响测试证据需要自动关闭 issue 时附上Fixes SOURCE_REPO#n。技能对证据真实性有硬性要求Never mark a test as passing unless it actually ran. If a failure is environmental, separate it from product failures and include the exact evidence.——不得把未运行的测试标记为通过环境性失败必须与产品失败分离并附精确证据。评审反馈处理发现被圈定的 PR 与评论gh pr view n --repo $SOURCE_REPO \ --json url,headRefName,comments,reviews,reviewDecision gh api repos/$SOURCE_REPO/pulls/n/comments gh api repos/$SOURCE_REPO/issues/n/comments处理范围被严格限定只处理用户点名的 PR或本次任务中由该工作流创建的 PR。规则包括按 PR 分组可执行的评论忽略表扬、纯状态说明、重复评论与已处理的评论每个 PR 在其独立工作树中检出分支做最小改动运行相关测试正常提交并推送除非用户明确要求绝不 force-push仅在请求包含该外部写操作时才回复评审评论且必须引用实际修复与证据。报告格式每个 issue 或 PR 返回紧凑结果编号与标题状态planned已计划、skipped已跳过、fixed locally本地修复、PR openedPR 已开、failed失败、blocked受阻分支与 PR URL若存在已运行的测试及结果跳过、失败或剩余评审评论的精确原因。技能加载机制源码佐证gh-issues之所以能作为可执行技能被 Agent 调用依赖 Ekko 的技能同步与加载体系directories.ts 在同步内置技能时会扫描packages/ekko-agent/skills下每个含SKILL.md的子目录将其复制到目标 profile 目录tools/skills.ts 的skill_view工具可加载SKILL.md全文默认路径skill_manage用于创建/编辑技能文件且要求 SKILL.md 保持紧凑的英文 ASCII frontmattermetadata.keywords以保证宿主机侧确定性发现运行时在每轮模型请求前会把技能内容注入上下文runtime.ts 中[skill_view] name...的日志格式可见其内容哈希与目录记录。这意味着用户可以直接阅读 gh-issues/SKILL.md 查看完整工作流原文并通过skill_view让 Agent 在任何会话中加载该技能。安全边界总结纵观整个工作流授权变更边界贯穿始终可归纳为以下守则维度约束认证gh auth status失败即停止禁止读取本地 token、禁止gh auth token、禁止索取粘贴 token变更范围只做用户请求的结果内动作仅检查/分流/规划时禁止一切变更重复规避有开放 PR/分支的 issue 跳过多候选先询问隔离同一工作树禁止并发分支检出并行必须用独立 worktree委托子代理不可提问、不可递归委托歧义须在委托前解决推送不带 force 推送force-push 需用户明确要求证据测试必须真实运行环境性失败与产品失败分离报告每项给出精确状态与原因skips/failures 必须有理由这套边界正是gh-issues技能在生产环境中可被安全复用的根基它把自主性与可控性通过显式变量SOURCE_REPO/PUSH_REPO/BASE_BRANCH/PUSH_REMOTE、显式授权commit/push/PR 三开关与显式报告六态状态机制度化为 Issue 驱动的开源贡献与内部维护流程提供了一个可直接落地的 Agent 工作流模板。赞分享AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载相关推荐OpenClaw gh-issues 技能实战从 GitHub Issue 到自动修复 PR 的全自动工作流OpenClaw gh issues 技能实战从 GitHub Issue 到自动修复 PR 的全自动工作流 导读 gh issues 是 OpenClawAI 应用AI Agent交互助手后端即时通讯网关seamless_communication的GitHub贡献流程从Issue到Pull Requestseamless_communication的GitHub贡献流程从Issue到Pull Request 引言你还在为开源贡献流程感到困惑吗 在开源社区中人工智能NLP语音多模态大模型Reactive Resume 的 Agent 化 Issue 追踪用 GitHub Issues 与 gh CLI 驱动的规范、Triage 与 Wayfinder 工作流Reactive Resume 的 Agent 化 Issue 追踪用 GitHub Issues 与 gh CLI 驱动的规范、Triage 与 Wayfi前端后端AI 应用MCP 服务dsh-plugin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价