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

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-07 12:13:41
胸大屁股翘如人间水蜜桃,那年的藤原纪香,迷得郭富城神魂颠倒!

胸大屁股翘如人间水蜜桃,那年的藤原纪香,迷得郭富城神魂颠倒!

白夜书声
2026-09-25 18:48:27
中国最安逸的七个城市,累了就去小住三五天

中国最安逸的七个城市,累了就去小住三五天

赏玩夜忘归
2026-10-09 10:34:35
威廉松口和解,对梅根立下硬核规矩,破冰来之不易!

威廉松口和解,对梅根立下硬核规矩,破冰来之不易!

老吴教育课堂
2026-10-18 13:43:21
终于,泽连斯基等到这天,日本援兵冲进俄乌战场,俄召回军演兵力

终于,泽连斯基等到这天,日本援兵冲进俄乌战场,俄召回军演兵力

历史的烟火
2026-08-17 05:30:49
李嘉诚再预言,今年不买房,明年是 “买不起” 还是 “大降价”?答案很是出人意料

李嘉诚再预言,今年不买房,明年是 “买不起” 还是 “大降价”?答案很是出人意料

巢客HOME
2026-10-19 05:50:07
79岁李保田老到认不出,住处杂乱喝10元桶装水,儿子求着他拍视频

79岁李保田老到认不出,住处杂乱喝10元桶装水,儿子求着他拍视频

长歌侃娱
2026-10-12 09:22:42
细思极恐!梅艳芳骨灰被盗真相曝光,窃贼逃去东南亚,网友揪心

细思极恐!梅艳芳骨灰被盗真相曝光,窃贼逃去东南亚,网友揪心

东方不败然多多
2026-10-19 07:10:18
个人收入要开始严查?2026年起如果账户收入超过这个数,注意下准没坏处。

个人收入要开始严查?2026年起如果账户收入超过这个数,注意下准没坏处。

巢客HOME
2026-10-13 05:10:03
红果漫剧播放霸屏!1.7亿播放量强势登顶,你追的番在榜单上吗?

红果漫剧播放霸屏!1.7亿播放量强势登顶,你追的番在榜单上吗?

坠入二次元的海洋
2026-10-19 12:18:16
称前总经理是"蛇",几小时后他遭遇跟腱重伤

称前总经理是"蛇",几小时后他遭遇跟腱重伤

甜份超标的我
2026-10-19 12:56:42
男子甜言蜜语哄37岁情妇开心,情人给6万让他回去离婚,2015年,竟趁情妇昏迷男子将其活埋

男子甜言蜜语哄37岁情妇开心,情人给6万让他回去离婚,2015年,竟趁情妇昏迷男子将其活埋

丫头舫
2026-09-14 22:03:56
张水华选对了!辞职10个月或赚520万 当护士1年工资只有15万

张水华选对了!辞职10个月或赚520万 当护士1年工资只有15万

念洲
2026-10-19 13:33:40
张家齐妈妈称没动女儿一分钱!网友灵魂拷问:十几年不工作哪来的钱?

张家齐妈妈称没动女儿一分钱!网友灵魂拷问:十几年不工作哪来的钱?

动物奇奇怪怪
2026-10-18 16:55:12
王曼昱打佐藤瞳那场,看台上有个大老爷们咬着后槽牙的那种吼法

王曼昱打佐藤瞳那场,看台上有个大老爷们咬着后槽牙的那种吼法

江启
2026-10-18 18:00:05
美籍华人发帖炮轰:中国引以为荣的扫码支付,真是最蠢的设计吗?

美籍华人发帖炮轰:中国引以为荣的扫码支付,真是最蠢的设计吗?

素衣读史
2026-10-08 01:23:20
全红婵上海活动造型翻车!“宽松套装显壮又拖沓”,网友发帖引发争议

全红婵上海活动造型翻车!“宽松套装显壮又拖沓”,网友发帖引发争议

火山詩话
2026-10-19 05:27:06
浙江一男子服刑七年后出狱,发现50多万元存款仅剩6.43元;其中47万元转入银行卡后被用于多人充值、转账及还款消费,警方:已立案侦查

浙江一男子服刑七年后出狱,发现50多万元存款仅剩6.43元;其中47万元转入银行卡后被用于多人充值、转账及还款消费,警方:已立案侦查

极目新闻
2026-10-19 09:42:14
男子花3500找了一个小姐,又觉得不过瘾,让小姐再喊个闺蜜过来“一起玩”

男子花3500找了一个小姐,又觉得不过瘾,让小姐再喊个闺蜜过来“一起玩”

张晓磊
2026-10-18 11:58:47
岳云鹏常州相声专场突发演出事故!现场回声巨大多次中断,观众8点离场排队申请大麦退票

岳云鹏常州相声专场突发演出事故!现场回声巨大多次中断,观众8点离场排队申请大麦退票

火山詩话
2026-10-18 11:43:34
2026-10-19 14:11:00
码上闲叙
码上闲叙
有态度网友ytd
183文章数 102关注度
往期回顾 全部

科技要闻

王晟:近千亿资金涌入后 具身智能开始退烧

头条要闻

三季度亏了521万 “浙江早餐大王”关闭132家店

头条要闻

三季度亏了521万 “浙江早餐大王”关闭132家店

体育要闻

从NBA退役10年后,他真去警局上班了

娱乐要闻

演员许君聪近况曝光 婚恋成谜让人唏嘘

财经要闻

黄奇帆之子往事:从广微系到魏桥的跳跃

汽车要闻

不知道二代海鸥多好玩? 上赛道跑两圈 很过瘾的

态度原创

游戏
本地
旅游
亲子
公开课

《雾锁王国》正式版游民评测8.2分:再攀高峰

本地新闻

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

旅游要闻

自驾游客吐槽理小路隧道口广告牌遮挡雪山景观,当地相关部门迅速拆除

亲子要闻

卵巢功能减退还可以自然怀孕吗?辅酶q10备孕是有什么作用?

公开课

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

无障碍浏览 进入关怀版