agy Headless 运行

agy(Antigravity CLI)可以以 headless / 非交互方式运行。这个模式适合 CI/CD、自动化脚本,或需要把单次任务结果直接写到标准输出的场景。

核心入口是 --print,也可以使用 -p--prompt。它接受一个单次 prompt,运行完成后将结果打印到 stdout,然后退出。

基本用法

agy -p "请读取当前目录下的 package.json 文件,并总结其中的依赖项"

权限处理

在没有交互界面的环境中,文件读写、命令执行等操作可能等待用户授权。受控环境 中可以使用:

agy -p "请检查当前项目的测试失败原因" --dangerously-skip-permissions

--dangerously-skip-permissions 会自动跳过权限确认。它适合隔离的 runner 或可信工作区;不要在不可信仓库、共享机器、或未隔离的自动化环境中默认开启。

常用参数

Mix Task 封装

这个 package 提供 mix agy,用于把常见的 headless agy 交互模式包装成 可重复调用的 headless 任务。

常用模式:

mix agy --readme
mix agy --mode plan /path/to/implementation_plan.md --dry-run
mix agy --mode walkthrough /path/to/walkthrough.md --timeout 10m
mix agy --mode commit-review /path/to/walkthrough.md --skip-permissions
mix agy --conversation-name release-review --log-file auto --mode plan /path/to/implementation_plan.md

--dry-run 只打印将要执行的命令和 prompt,不调用 agy。默认不会传 --dangerously-skip-permissions;只有显式使用 --skip-permissions 时才会启用。

支持的模式包括:

Conversation 管理

mix agy 支持把常用的 agy conversation 绑定到当前项目内的稳定名称, 避免每次手动复制 UUID。默认 registry 路径是:

.antigravitycli/agy_conversations.tsv

典型流程:

mix agy --mode plan implementation_plan.md --save-conversation release-review
mix agy --conversation-name release-review --mode walkthrough walkthrough.md

也可以直接复用 agy 自己的最近一次 conversation:

mix agy --continue --mode ask --prompt "继续上一轮 review"

管理命令:

mix agy --list-conversations
mix agy --forget-conversation release-review

--conversation <UUID> 仍然可以直接传原始 UUID;如果传入的值正好是已保存的 名称,task 会先把它解析为对应 UUID。--save-conversation NAME 在真实运行 成功后写入 registry;--dry-run 只打印命令和 prompt,不会修改 registry。

共享日志

为了让外层 wrapper 和使用者同时观察同一次 headless 运行,建议给长任务加上:

mix agy --conversation-name release-review --log-file auto --watchdog-timeout 30m --mode plan implementation_plan.md

mix agy 会默认开启 wrapper audit log。这个日志不依赖 agy 成功初始化 conversation;只要外层进程启动,它就会记录:

默认 wrapper log 位于:

.antigravitycli/logs/<timestamp>-<mode>.run.log

可以用 --run-log PATH 指定路径,或用 --run-log none 关闭 wrapper 日志。

--log-file auto 仍然会额外把 agy --log-file 指向项目内忽略提交的底层日志:

.antigravitycli/logs/<timestamp>-<mode>.log

任务开始前,mix agy 会打印两类可追踪入口:

这些路径都可以直接用 tail -f 观察。对于明确绑定了 --conversation--conversation-name 的任务,transcript 路径在任务启动前就能确定;对于全新 conversation,先用 --save-conversation NAME 保存,再从 registry 复用。

边界:agy transcriptagy --log-file 都属于被观察对象内部日志。如果 agy 在初始化、鉴权、网络请求或 runtime 启动阶段阻塞,它们可能不写入任何 内容。因此长任务应以 wrapper audit log 作为首要观察面,再把 transcript 作为 更细粒度的语义审计。wrapper 的 watchdog 也会把 transcript 和 agy --log-file 的增长视为活动,避免在模型没有 stdout 但仍在读写代码时误杀进程。

使用边界

Headless 模式更适合明确、可一次性完成的任务。需要长时间交互、逐步澄清需求、 或人工确认风险的任务,仍然更适合交互模式。