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

5个Agent无头模式:拒绝与放行

0
分享至

把AI编程Agent塞进CI流水线,最怕的不是它报错,是它一声不吭地把活干砸了。五个主流Agent CLI的无头模式,权限模型各不相同,其中有的会在没人值守的时候直接拒绝工具调用,然后继续往下跑。


Claude Code的文档写得很直白:一次运行碰到需要审批的工具调用,现场没人批,调用被拒,运行照常继续。Agent最后还能交回一条消息说它修好了那个不稳定的测试,任务显示绿色,diff却是空的。Gemini CLI是故意这么设计的——在非交互模式下,一条本该弹出来问你的规则,"被视为拒绝"。

下面按各家当前文档拆一遍,五个Agent、五套权限模型,有的拒绝你还不告诉你。

Claude Code:模式要显式给,CI里加--bare

不指定权限模式,运行会落到内置的起始模式,文档说这个模式"可能自动"。acceptEdits允许它写文件,但只读集合之外的shell命令仍然需要一条--allowedTools条目。

CI里还要加--bare。不加的话,一个-p会话会跑仓库.claude/settings.json里的钩子、连.mcp.json里的服务器,全程没有信任弹窗。bare模式跳过这些,也不读订阅登录,所以得设ANTHROPIC_API_KEY。

示例命令里,--output-format json把结果写进文件,再用jq检查permission_denials数组长度是否为零,有任何拒绝就让任务失败。Bash(npm test *)这条规则同时匹配裸的npm test。

Codex:默认只读沙箱

codex exec默认"跑在只读沙箱里"。你不加--sandbox workspace-write就让它修bug,它能读你的仓库,改不了。旧的--full-auto标志"已不再支持"。要写文件用--sandbox workspace-write,或者用--approve-for-me把审批请求送进自动审查。danger-full-access留给受控环境。

Codex还要求当前目录是Git仓库,--skip-git-repo-check可以绕过。同一页文档警告:在会执行仓库控制代码的工作流里,别把OPENAI_API_KEY或CODEX_API_KEY设成任务级变量。

Gemini CLI:策略文件管住非交互

--approval-mode接受default、auto_edit、yolo、plan四个值。--yolo和--allowed-tools都已废弃,后者让位给策略引擎。用户策略放在~/.gemini/policies/下,可以只允许某一条命令,且只在没有终端附着时生效——规则里写interactive = false,这条策略就"只在非交互(无头)模式下"适用,你手动开的会话照样会问你。

Gemini CLI还有个前提:文档说它"已于2026年6月18日被Antigravity CLI取代",针对免费层和Google One用户。账号还跑Gemini CLI的,上面这行成立;已经迁走的,继任者的打印模式是agy -p,在Antigravity CLI 1.1.8里拿到了--output-format和--json-schema。打印模式的用法错误以状态码2退出,1.3.4修掉了最后一个仍然退出0的问题。

Copilot CLI:拒绝规则优先级最高

Copilot的编程参考文档没说-p碰到一个你从未允许的工具会怎样。那就把能跑的和不能跑的都列出来。拒绝规则"即使设置了--allow-all"也照样生效,而--allow-all(别名--yolo)等于同时打开工具、路径和URL三扇门。

示例里用--allow-tool放行写入和shell(npm:*),用--deny-tool挡掉shell(npm publish),再加--no-ask-user防止它停下来问澄清问题。另一个坑:如果既管道输入又传-p,管道输入会被忽略。--continue和--resume在命令参考里是通用标志,但没写清怎么和-p组合,流水线依赖它之前先手动试一次恢复。

OpenCode:反着来,默认放行

OpenCode是另外四个的反面。"大多数权限默认允许",只有doom_loop和external_directory默认询问,.env读取被拒。所以opencode run不加任何标志就能改文件、跑shell命令。你的防线是项目opencode.json里的拒绝规则。

加--auto会批准每一个"未被显式拒绝"的请求,每条ask变成yes,那两行deny就是全部的围栏。不加--auto时,无头模式下的ask行为没有文档,只能当未知处理。还有个容易踩的:opencode run上的-p意思是--password,服务器的basic-auth密码,不是提示词。提示词是位置参数。

输出和退出码:别把日志当答案

第二个坑是解析日志,而你要的是答案。Claude Code用--output-format json打一个JSON对象,文本在result里,附带session_id和total_cost_usd(客户端估算)。加--json-schema,解析后的答案落在structured_output。Codex默认很干净:进度走stderr,只有最终消息走stdout;--json把stdout变成JSONL,从thread.started到turn.completed或turn.failed;-o把最终消息写进文件。Gemini CLI在JSON模式返回response、stats和可选的error对象。Copilot CLI不加-s会带上统计和装饰,--output-format json输出JSONL。OpenCode用--format json输出"原始JSON事件",但CLI页面没描述结构,解析前先锁版本。

五个里只有两个为无头运行写了退出码。Claude Code成功为0,失败非零,运行内部的失败(比如缺认证)会作为结果打到stdout,SIGTERM给143,JSON里的is_error和subtype(如error_max_turns)说明原因。Gemini CLI是0成功、1一般或API错误、42输入错误、53超出轮次上限。Codex只点名了一种失败退出:required = true的MCP服务器启动失败。Copilot的参考给的是copilot workflow run的退出码,不是-p的。OpenCode的CLI页面关于run的退出码只字未提。

退出0只说明进程结束了。所以Agent步骤之后自己加两道检查:Codex失败轮次就失败;任何本该改文件的Agent步骤,什么都没改就失败。第二道检查能抓住空diff的绿色构建,不管跑的是哪个Agent。

无头模式是给没人看的运行用的。其余时候,你大概还是想让同样的Agent把提示词摆在屏幕上。

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

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-17 15:38:44
网传“退休金比打工人工资还高”,评论区炸锅了

网传“退休金比打工人工资还高”,评论区炸锅了

墨言执笔
2026-10-13 05:47:41
一觉醒来,中国油轮在波斯湾遇袭!这不是误炸,是有人想“破窗”

一觉醒来,中国油轮在波斯湾遇袭!这不是误炸,是有人想“破窗”

闫树军论评
2026-05-08 18:11:21
裴淳华接受中国日报专访坦言:我想在中国安度晚年!理由不是钱也不是事业,而是这么简单的小事情

裴淳华接受中国日报专访坦言:我想在中国安度晚年!理由不是钱也不是事业,而是这么简单的小事情

一盅情怀
2026-10-16 18:49:16
上海徐浦大桥发生惨烈车祸,变道致多车相撞有死伤!监控画面曝出

上海徐浦大桥发生惨烈车祸,变道致多车相撞有死伤!监控画面曝出

胡侃社会百态
2026-10-17 18:38:26
社会上开始出现独居青年猝死家中的事了,媒体报道北京一个47岁的外卖员出租屋猝死后一个月才被发现!

社会上开始出现独居青年猝死家中的事了,媒体报道北京一个47岁的外卖员出租屋猝死后一个月才被发现!

黯泉
2026-10-18 10:22:01
发现没:凡是校招进体制内单位的,简历都写满了这三行

发现没:凡是校招进体制内单位的,简历都写满了这三行

户外阿毽
2026-10-17 07:55:01
乌克兰恢复炸俄炼油厂,民主党中期选举初告捷

乌克兰恢复炸俄炼油厂,民主党中期选举初告捷

名人苟或
2026-10-17 15:47:51
暴跌93%,中国人的梦中神车,崩了!

暴跌93%,中国人的梦中神车,崩了!

i黑马
2026-10-16 20:26:14
2-0!送对手赛季首败 11.5亿豪门重返英超前四 门神重伤被担架抬出场

2-0!送对手赛季首败 11.5亿豪门重返英超前四 门神重伤被担架抬出场

狍子歪解体坛
2026-10-17 21:34:55
武网大冷门!赫瓦林斯卡2-0首胜世界前十 晋级决赛将战卡塔尔

武网大冷门!赫瓦林斯卡2-0首胜世界前十 晋级决赛将战卡塔尔

醉卧浮生
2026-10-17 22:01:23
轮到日本掀桌,中俄警告无效,日本正式宣布,高市:拥核不再是选择

轮到日本掀桌,中俄警告无效,日本正式宣布,高市:拥核不再是选择

徐癘解说
2026-10-17 10:00:20
黄奇帆和唐宁有什么关系?

黄奇帆和唐宁有什么关系?

西虹市闲话
2026-10-15 13:28:15
男子是AB型血,老婆是A型血,刚出生的女儿却是O型血?医生:别急,这事真有可能

男子是AB型血,老婆是A型血,刚出生的女儿却是O型血?医生:别急,这事真有可能

观察者网
2026-10-18 07:40:09
庞峥麟出战36分钟,投篮21中7,贡献20分2篮板5助攻

庞峥麟出战36分钟,投篮21中7,贡献20分2篮板5助攻

林子说事
2026-10-18 01:26:33
赵一荻到底有多美,竟让张学良如此倾倒,看看这些珍贵老照片就明白了!

赵一荻到底有多美,竟让张学良如此倾倒,看看这些珍贵老照片就明白了!

历史龙元阁
2026-10-17 10:15:33
男子和四十多岁女网友认识后,频繁发生关系,最后一次在车内,男子死亡后家属向女子索要巨额赔偿

男子和四十多岁女网友认识后,频繁发生关系,最后一次在车内,男子死亡后家属向女子索要巨额赔偿

丫头舫
2026-10-13 22:10:25
最强反腐来了!中纪委:2026坚决清除害群之马,贪官末路到了!

最强反腐来了!中纪委:2026坚决清除害群之马,贪官末路到了!

职场资深秘书
2026-10-17 15:24:47
31岁新加坡女子网恋中东富豪,骗到迪拜遭控制,被逼卖淫数月

31岁新加坡女子网恋中东富豪,骗到迪拜遭控制,被逼卖淫数月

四海神君
2026-10-16 15:00:04
小泉进次郎声称日本既不拥有核武器,也不拥有战略轰炸机,而中国同时拥有这两类装备却反过来批评日本,中方驳斥

小泉进次郎声称日本既不拥有核武器,也不拥有战略轰炸机,而中国同时拥有这两类装备却反过来批评日本,中方驳斥

扬子晚报
2026-10-16 20:41:57
2026-10-18 13:07:00
码上闲叙
码上闲叙
有态度网友ytd
224文章数 102关注度
往期回顾 全部

科技要闻

王江舟院士:6G到底是不是骗局 是不是收割

头条要闻

男子100多万买的车3年修几十次 最严重时高速直接熄火

头条要闻

男子100多万买的车3年修几十次 最严重时高速直接熄火

体育要闻

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

娱乐要闻

曝郭麒麟与25岁知名女星已经结婚,女方回应关系

财经要闻

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

汽车要闻

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

态度原创

手机
数码
本地
时尚
公开课

手机要闻

DOOGEE Note60 W系列手机亮相:6.38英寸90Hz阔面屏设计,撞脸华为Pura X View

数码要闻

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

本地新闻

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

伊姐周六热推:电视剧《喜剧之王》;电视剧《把黑夜点燃》......

公开课

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

无障碍浏览 进入关怀版