网易首页 > 网易号 > 正文 申请入驻

修Bug的AI不给Shell权限,反而更安全?

0
分享至

生产环境报错,其实特别适合交给AI代理处理。有堆栈信息,有代码仓库,"做完"的标准也很明确:一个等人审核的Pull Request。

但这类工具通常长什么样?你把仓库的读权限交给一个SaaS服务,往往连AI密钥也一起交了,然后祈祷一切顺利。所以作者从一条规则出发:负责协调代理的服务,永远不该有能力读取代码。

下面所有设计,都是从这条规则推出来的。

拆成两半:控制面碰不到代码

整个系统分两部分。控制面知道报错、配置和运行历史;运行器跑在你自己的GitHub Actions里,代码和AI密钥都在它手上。

流程是这样走的:

  • 错误追踪器送来一条报错。
  • 控制面找到映射的仓库,在里面启动一个workflow。
  • 在你的运行器里,代理探索已检出的代码,写出修复。
  • 修复提交到新分支,开出一个Pull Request。
  • 运行器把状态、PR链接、摘要和token用量报回去。

控制面是一个GitHub App,只有两个权限:Metadata读,以及Actions读写。没有Contents权限。它没法克隆你的仓库,也读不了任何文件。它能做的只有一件事:用workflow_dispatch启动一个workflow。

workflow本身住在你的仓库里,所以你能看清它到底跑了什么。AI密钥是你仓库里的secret,控制面从头到尾看不到它。

一个只能用一次的令牌

运行器需要拉取报错上下文、上报结果,而GitHub没法向这个服务证明它的身份。于是控制面签发一个单次运行的令牌,作为workflow输入传进去:

  • 它是对运行id和过期时间做的HMAC签名,有效期30分钟。
  • 它只作用于一次运行,只能读这次运行的报错上下文、提交这次运行的结果,别的都干不了。
  • 它在任务日志里被::add-mask::遮掉。

作者纠结过的点是:workflow输入会显示在运行页面上。任何能看你仓库Actions运行记录的人,都能在令牌过期前看到它。所以它必须短命、范围窄,而不是一个指望没人去看的长期凭证。

四个工具,没有Shell

代理只有四个工具,没有Shell,也没法自己发网络请求。原因是模型的输入有一部分受攻击者影响:报错信息、堆栈、代码注释里,可能藏着别人写的文字。一个只能读文件、产出diff的代理,爆炸半径很小,而且diff还要过代码审核。

读取走一个路径守卫,拒绝../逃出检出目录。搜索用的是git grep -l -I -F,最多返回20个文件名。修复只在一个地方落地:create_pull_request新建分支、以bot用户提交、推送、开PR。它从不推送到你的基础分支,也从不合并。

这个设计的代价很实在:代理没法跑你的测试。它能读测试文件、能提一句,但执行不了任何东西。作者认为眼下这是对的默认值,但不确定永远都对。

循环有预算

循环在30次工具调用或20分钟墙钟时间里停下,谁先到算谁。workflow的任务超时是25分钟,留出开PR和上报的余量。

真正要紧的细节是:每次模型调用只拿到剩余的时间,而不是固定超时。没有这一条,第19分钟来一个慢响应,就能把任务拖过超时,这次运行永远不会被标记为结束。

几个坑

  • GitHub默认拒绝来自Actions的PR。仓库默认关掉"允许GitHub Actions创建和批准Pull Request",workflow里的pull-requests: write也覆盖不了。推送成功,开PR却返回403。现在这被当成单独一种情况处理:分支保留,运行失败并明确告诉你该翻哪个设置,拟好的PR文本也留着,工作不丢。
  • 把易变数据挡在运行器外。模型价格变得勤,早期action自己算成本,每次调价就得发新版本。现在action只上报每次模型请求的token用量,控制面用自己的价目表算钱。加模型、改价格都不用发版。
  • 较新的OpenAI模型通过Responses API做工具调用,所以OpenAI适配器走的是Responses API。支持多家供应商时,把每家藏在一个小适配器后面,返回同样归一化的"turn"。
  • JavaScript action直接从仓库运行,没有安装步骤,打包好的dist/index.js必须提交。用户引用一个移动的主标签@v1,每次发布也打标签以便固定。
  • git add -A是个陷阱。PR提交会把工作区里所有东西都暂存。如果有人在action之前加了构建步骤,产物就会跑进PR里。

什么会离开运行器

"你的代码从不离开你的基础设施"这句话是错的,准确的说法是:控制面永远收不到你的源代码。代理的摘要是模型自己写的文字,所以它可能提到文件名或短片段。

它不跑你的测试,不保证修复正确,也从不合并。默认指令要求最小diff、不加新依赖、不改测试;代理没把握时,应该只开一个带防御性守卫的PR,并附上"Uncertain fix"一节,说明审核者必须检查什么。

作者留了几个问题:你会让代理从生产报错开PR吗?该不该让它开PR前先跑测试——那意味着给它Shell,爆炸半径就回来了。路径守卫够不够,还是该解析符号链接、把任务放进没有secret的容器里跑?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
体制内外退休金的巨大差距引起老百姓的很大不满!

体制内外退休金的巨大差距引起老百姓的很大不满!

逍遥论经
2026-10-08 14:57:40
前任莱维特,27岁,首秀47分钟控场如机关枪扫射

前任莱维特,27岁,首秀47分钟控场如机关枪扫射

叒女紫121
2026-10-17 12:17:27
Shams:尼克斯将裁掉布鲁斯-布朗,怀斯曼将进入常规赛大名单

Shams:尼克斯将裁掉布鲁斯-布朗,怀斯曼将进入常规赛大名单

懂球帝
2026-10-18 08:07:07
傅作义刚宣布北平和平解放,妻子便在重庆机场遭特务劫持,地下党强攻无门,周恩来靠香港报上一则假消息把人救了

傅作义刚宣布北平和平解放,妻子便在重庆机场遭特务劫持,地下党强攻无门,周恩来靠香港报上一则假消息把人救了

唠叨说历史
2026-10-16 15:41:45
雅思停考风波背后:巅峰时内地一天7万人次考试,主办方近5财年累计净亏损1.84亿英镑,欲以藏品抵债!

雅思停考风波背后:巅峰时内地一天7万人次考试,主办方近5财年累计净亏损1.84亿英镑,欲以藏品抵债!

每日经济新闻
2026-10-15 14:59:23
难忍卡塔尔习俗却赚翻了:J罗坐拥七千万欧元巨额身家

难忍卡塔尔习俗却赚翻了:J罗坐拥七千万欧元巨额身家

星耀国际足坛
2026-10-17 23:50:51
入职第一天因截图社死:他偷偷留个纪念,结果全公司都“看见”了

入职第一天因截图社死:他偷偷留个纪念,结果全公司都“看见”了

大稻网络科技
2026-10-16 00:02:41
俄罗斯当年割占了中国588万平方公里土地,相当于三分之一的中国版图,可如今再看,这些曾经水草丰美的宝地,大半都成了人迹罕至的荒地

俄罗斯当年割占了中国588万平方公里土地,相当于三分之一的中国版图,可如今再看,这些曾经水草丰美的宝地,大半都成了人迹罕至的荒地

回京历史梦
2026-10-13 09:21:51
薄一波究竟属于哪一级别?是正国级,还是副国级?

薄一波究竟属于哪一级别?是正国级,还是副国级?

人生录
2026-10-15 05:18:24
9球10助,亚马尔是本赛季首位助攻上双的五大联赛球员

9球10助,亚马尔是本赛季首位助攻上双的五大联赛球员

懂球帝
2026-10-18 02:17:02
Model Y,已经“无法无天”了……

Model Y,已经“无法无天”了……

小李车评李建红
2026-10-15 09:54:15
哀悼!张瓦城教授逝世

哀悼!张瓦城教授逝世

双一流高校
2026-10-18 00:22:42
人间清醒啊!2句话终结相亲:女方二婚带儿子,提出婚后不再生育,男方怒斥其不是找伴侣,而是找工具人

人间清醒啊!2句话终结相亲:女方二婚带儿子,提出婚后不再生育,男方怒斥其不是找伴侣,而是找工具人

火山詩话
2026-10-17 10:28:48
2027款大众帕萨特升级第三代EA888 2.0T,外观更年轻但值得等吗?

2027款大众帕萨特升级第三代EA888 2.0T,外观更年轻但值得等吗?

沙雕小琳琳
2026-10-18 05:47:47
民调:若勒庞赢得总统大选,近半数居住在法国的穆斯林会考虑离开

民调:若勒庞赢得总统大选,近半数居住在法国的穆斯林会考虑离开

像梦一场a
2026-10-17 10:22:56
千万不要在家闲着,即使没工作、没事干,也千万别躺平,因为人一旦躺下,一晃一天就过去了,没收入还躺出一身病,心情也……

千万不要在家闲着,即使没工作、没事干,也千万别躺平,因为人一旦躺下,一晃一天就过去了,没收入还躺出一身病,心情也……

十点读书
2026-10-17 18:38:55
“降维打击”也难救主!青岛海牛0-4辽宁铁人:邝兆镭被打6.8分

“降维打击”也难救主!青岛海牛0-4辽宁铁人:邝兆镭被打6.8分

足球大腕
2026-10-17 22:17:32
“蔷琵”加强为超强台风,未来或将继续加强

“蔷琵”加强为超强台风,未来或将继续加强

界面新闻
2026-10-18 07:39:34
秘鲁新操作太迷!不找中企麻烦,反倒开建对中国开放的新港口?

秘鲁新操作太迷!不找中企麻烦,反倒开建对中国开放的新港口?

丁丁鲤史纪
2026-10-18 08:19:44
为李克勤救场的草根歌手侯浪成都开唱,门票售罄,半场后换回标志性牛仔战袍

为李克勤救场的草根歌手侯浪成都开唱,门票售罄,半场后换回标志性牛仔战袍

极目新闻
2026-10-17 22:52:23
2026-10-18 09:40:49
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
208文章数 121关注度
往期回顾 全部

科技要闻

刘煜辉:99%的黄金分析师报告一钱不值

头条要闻

女生科目三没过出来发现教练走了 跟其语音听到麻将声

头条要闻

女生科目三没过出来发现教练走了 跟其语音听到麻将声

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

李连杰回应抛妻弃女传闻,透露四个女儿关系

财经要闻

马斯克:美债问题只能靠AI和机器人解决

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

亲子
数码
家居
本地
公开课

亲子要闻

哥哥我也要喝!

数码要闻

联想P7 AI主机1024开启预约:此芯P1 SoC +后摩M50 dNPU方案

家居要闻

2026建博会(广州) 公装联探展交流活动

本地新闻

因新荣记出圈,这座浙东小城才是吃货天堂

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版