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

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 10:47:18
巴沙尔被打跑以后,朱拉尼抄家式查抄,把巴沙尔集团500亿美元财产全部查出来充公!

巴沙尔被打跑以后,朱拉尼抄家式查抄,把巴沙尔集团500亿美元财产全部查出来充公!

古古聊军事
2026-10-12 21:42:12
十元快剪逼死35元理发店?女子怒斥恶性竞争,网友却一边倒:怪你自己

十元快剪逼死35元理发店?女子怒斥恶性竞争,网友却一边倒:怪你自己

一丝不苟的法律人
2026-10-17 15:33:20
索尼新Walkman曝光:40小时续航,售价或翻倍

索尼新Walkman曝光:40小时续航,售价或翻倍

算力游侠
2026-10-16 00:02:51
每体:梅西在22年世界杯最高速度是29.8km/h,26年达到31km/h

每体:梅西在22年世界杯最高速度是29.8km/h,26年达到31km/h

懂球帝
2026-10-18 17:10:24
详解特斯拉会飞的汽车:自己给高压空气罐推进器充气,倒挂爬升用的是风扇吸力

详解特斯拉会飞的汽车:自己给高压空气罐推进器充气,倒挂爬升用的是风扇吸力

红星新闻
2026-10-16 19:09:29
广东一饭店推出“水蟑螂蛋挞”,老板:28元3个,口感像薯片

广东一饭店推出“水蟑螂蛋挞”,老板:28元3个,口感像薯片

极目新闻
2026-10-18 14:18:26
三镇vs申花:双方均四外援出战,李申圆、高天意、杨泽翔首发

三镇vs申花:双方均四外援出战,李申圆、高天意、杨泽翔首发

懂球帝
2026-10-18 16:47:20
尊界出具的这份报告,触碰到了中国车圈最深的障碍

尊界出具的这份报告,触碰到了中国车圈最深的障碍

刘远举
2026-10-18 14:04:11
世道变了,养老规则颠倒,江浙沪多地,已经掀起大范围反向养老

世道变了,养老规则颠倒,江浙沪多地,已经掀起大范围反向养老

童童聊娱乐啊
2026-10-18 15:27:25
黄奇帆:我上任重庆市副市长之初的7个遭遇战

黄奇帆:我上任重庆市副市长之初的7个遭遇战

砚田文化
2026-10-18 09:31:24
庾澄庆,亲自回应!10月16号,离婚了17年的庾澄庆伊能静,罕见一起冲上热搜

庾澄庆,亲自回应!10月16号,离婚了17年的庾澄庆伊能静,罕见一起冲上热搜

东方不败然多多
2026-10-18 14:51:24
雷克萨斯ES200给到12.59万,曾经30多万落地,如今还剩多少底气!

雷克萨斯ES200给到12.59万,曾经30多万落地,如今还剩多少底气!

沙雕小琳琳
2026-10-17 00:14:28
真没油了!季前赛仅4.3分+15%三分命中率,4届冠军后卫生涯进入倒计时

真没油了!季前赛仅4.3分+15%三分命中率,4届冠军后卫生涯进入倒计时

篮球圈里的那些事
2026-10-17 21:55:20
已超预期!“蔷琵”或挑战年度西北太平洋“风王”!登我概率趋大

已超预期!“蔷琵”或挑战年度西北太平洋“风王”!登我概率趋大

声情专递
2026-10-18 10:15:38
澳洲知名保健品暴雷, 紧急召回! 中国官方发布警告, 大批华人家中都有, 千万别吃了!

澳洲知名保健品暴雷, 紧急召回! 中国官方发布警告, 大批华人家中都有, 千万别吃了!

澳微Daily
2026-10-18 15:01:34
泽连斯基的结局,离终场还有多远?三则消息已经预示了未来

泽连斯基的结局,离终场还有多远?三则消息已经预示了未来

战友老邓
2026-10-17 10:12:28
缅北电诈头目当庭晕厥!25岁湖南宁乡人廖景芳是如何走向死亡的?

缅北电诈头目当庭晕厥!25岁湖南宁乡人廖景芳是如何走向死亡的?

社会日日鲜
2026-10-18 09:28:09
白崇禧晚年谈论各路将帅,冷冷地甩出一句:真正懂打仗的不过3人,其余的是仗着人多撑场面

白崇禧晚年谈论各路将帅,冷冷地甩出一句:真正懂打仗的不过3人,其余的是仗着人多撑场面

史源观点
2026-10-15 19:56:11
阿里P8:人一旦失业,就会“扣扣搜搜”。家庭收入从去年140万降到今年50多万

阿里P8:人一旦失业,就会“扣扣搜搜”。家庭收入从去年140万降到今年50多万

蚂蚁大喇叭
2026-09-06 17:09:52
2026-10-18 17:47:00
码上闲叙
码上闲叙
有态度网友ytd
224文章数 102关注度
往期回顾 全部

科技要闻

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

头条要闻

法国骚乱爆发数小时前 马克龙夫妇被拍到在演唱会跳舞

头条要闻

法国骚乱爆发数小时前 马克龙夫妇被拍到在演唱会跳舞

体育要闻

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

娱乐要闻

郭麒麟被传领证,女方戳破谣言

财经要闻

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

汽车要闻

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

态度原创

本地
艺术
家居
数码
公开课

本地新闻

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

艺术要闻

一位“恶霸官员”却写出最美行书,字字美若天仙,400多年来无人比肩!

家居要闻

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

数码要闻

大屏追番更震撼!海信电视小墨E5S Pro带你沉浸式入局《凡人》修仙宇宙

公开课

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

无障碍浏览 进入关怀版