我们如何在一个月内关闭了1500个GitHub问题

我们如何在一个月内关闭了1500个GitHub问题

💡 原文英文,约1500词,阅读约需6分钟。
📝

内容提要

Next.js团队利用AI代理“closability”在一个月内关闭了1462个GitHub问题,将积压从2244降至995。代理在沙盒中研究问题、复现bug并评估关闭信心,维护者审核后关闭。99.8%的关闭保持有效,仅3个被重新打开。团队计划每周自动处理25个高置信度问题,以持续管理新积压。

🔎

延伸解读

AI代理的局限与人工审核的必要性

文章强调,closability代理虽然能自动研究问题并给出关闭建议,但最终决策仍由维护者人工审核。代理被设计为只读,无法直接关闭问题,且对提示注入有防护。这表明AI在处理开源维护时,仍需人类监督以确保准确性,避免误关重要问题。

关闭问题的原因分布揭示维护重点

在关闭的1462个问题中,37%为已修复,19%为重复,16%为预期行为,6%无法复现,5%为不支持或过时。这反映出大量积压问题其实已过时或无效,而AI代理能高效识别这些类别,帮助维护者聚焦于真正需要关注的活跃问题。

自动化关闭的谨慎起步与持续机制

团队计划每周自动处理最多25个高置信度问题,且需两个代理一致同意才关闭,并保留14天重新开启窗口。这种渐进式自动化策略,既减轻维护负担,又通过人工复核和用户反馈机制,降低误关风险,为未来扩大自动化奠定基础。

Q&A

Next.js团队是如何在一个月内关闭1500个GitHub问题的?

Next.js团队开发了一个名为closability的AI代理,该代理在沙盒环境中研究每个问题,尝试复现bug,并评估关闭信心。维护者审核代理的结果后关闭问题。通过这种方式,团队在一个月内关闭了1462个问题,将积压从2244降至995。

closability代理是如何工作的?

closability代理在隔离的沙盒环境中运行,包含Next.js仓库、Node.js、Playwright和Chromium。它读取GitHub对话,检查支持的版本,搜索相关的问题、PR、提交、发布和文档,并在必要时尝试在报告版本、最新稳定版和canary上复现bug。最后,它返回结构化数据,包括关闭信心分数、主要原因和证据。

Next.js团队如何确保AI关闭问题的准确性?

团队采取了多种措施:代理的关闭信心分数保持保守,高分数需要强有力的当前证据且没有可信的反驳;代理在沙盒外是只读的,不能自行关闭问题;配置代理忽略问题文本中的指令以防止提示注入;维护者审查每个结果;并添加了GitHub Action允许用户在14天内重新打开被关闭的问题。

被关闭的1462个问题的主要原因是什么?

根据统计,主要关闭原因包括:已修复(37%)、重复(19%)、预期行为(16%)、无法复现(6%)、不支持或过时(5%),以及其他(17%)。

Next.js团队如何处理新出现的GitHub问题?

团队计划每周一让closability代理研究最多100个至少30天无活动的问题,优先处理从未审查过的问题。对于关闭信心分数达到80或以上的问题,第二个代理会检查是否有证据表明应该保持开放。如果两个代理都建议关闭,则自动关闭,每周最多处理25个问题。

Next.js团队在关闭问题后如何允许用户申诉?

团队添加了一个GitHub Action,当维护者关闭问题时,会自动发布评论,告知用户如果认为关闭有误,可以在14天内回复“Reopen: <reason>”来请求重新打开。如果用户是问题的开启者或之前评论过,问题会自动重新打开。14天后,用户需要打开新问题并提供最新细节和复现步骤。

🏷️

标签

➡️

继续阅读