跳到主要内容

无头模式(Headless Mode)

无头模式(Headless Mode)在不启动 TUI 界面的情况下运行 Ante —— 接收输入提示词、执行任务并输出结果后退出。非常适合脚本编写、CI/CD 自动化流水线和自动化工作流。

基础用法(Basic usage)​

使用 -p / --prompt 参数传入提示词:

ante -p "explain what this project does"

也可以使用长参数形式:

ante --prompt "add tests for the auth module"

标准输入管道(Stdin input)​

通过标准输入传递内容:

cat src/main.rs | ante -p "review this code for bugs"

将标准输入与提示词组合使用:

echo "function add(a, b) { return a + b }" | ante -p "add TypeScript types"

当同时提供标准输入与提示词参数时,两者会自动拼接(先拼接 stdin 内容,后拼接提示词)。

重定向标准输出仅适用于无头模式。在未提供提示词的情况下直接运行 ante > out.txt 会被拒绝启动,因为 TUI 需要将界面绘制到 stdout 并在启动时探测游标位置。请传入提示词或通过管道输入以捕获输出到文件。

命令行参数参考(CLI reference)​

ante [OPTIONS] [--prompt <PROMPT>]
参数标识说明
-p, --prompt <PROMPT>要执行的任务提示词
-m, --model <MODEL>覆盖使用的模型名称
--provider <PROVIDER>覆盖 API 模型提供商(例如 anthropic、openai、gemini、xai、openrouter、local)
--profile <NAME>使用 ~/.ante/<name>.settings.json 替代默认的 settings.json;也可通过环境变量 ANTE_PROFILE 指定;内置的 bare Profile 会禁用环境感知特性、技能、MCP 服务器、会话持久化与自动记忆
--effort <LEVEL>覆盖模型的思考深度等级:min、low、medium、high、xhigh 或 max
--yolo使用 yolo 权限模式,自动批准工具调用
--permission-mode <MODE>使用 strict、auto 或 yolo。无头模式默认使用 yolo;显式选择 strict 或 auto 时,需要交互审批的调用会被立即拒绝,而不会无限暂停等待
--output-format <FORMAT>输出格式:json、human、minimal(默认:minimal)
--system-prompt <PROMPT>完全替换默认的系统提示词(与 --system-prompt-file 互斥)
--system-prompt-file <PATH>从 UTF-8 文本文件中读取系统提示词替换内容(与 --system-prompt 互斥)
--append-system-prompt <TEXT>向系统提示词末尾追加额外内容
--short-prompt使用更短的内置工具描述;系统指令已经精简,保持不变
--skills / --no-skills加载或跳过技能发现(覆盖 skills 配置);使用 --no-skills 时不会加载或声明任何技能
--include-skills <SKILLS>为本次运行添加精确匹配的技能名称,并替换 include_skills 设置。可传入逗号分隔值或重复使用参数
--exclude-skills <SKILLS>从本次运行移除精确匹配的技能名称,并替换 exclude_skills 设置。可传入逗号分隔值或重复使用参数;排除优先
--enable-auto-memory / --disable-auto-memory启用或禁用自动记忆(覆盖 auto_memory 设置,无头模式默认关闭)
--tools <TOOLS>用这些工具精确替换默认工具集。传入逗号分隔的值或重复使用参数;空格分隔列表会报错。旧参数名 --allowed-tools 已移除
--include-tools <TOOLS>在默认工具集或 --tools 基础集之上添加工具。传入逗号分隔的值或重复使用参数
--exclude-tools <TOOLS>在 --tools 与 --include-tools 处理后移除工具。传入逗号分隔的值或重复使用参数;已弃用的别名 --disallowed-tools 仍可使用
-r, --resume <SESSION_ID>根据会话 ID 恢复之前保存的历史会话
--session-save / --no-session-save保存或跳过会话持久化(覆盖 session_save 设置)。使用 --no-session-save 时不写入记录快照;与 --resume 互斥
--check在主任务完成后自动执行一轮自我验证检查
--offline-model [MODEL]通过 llama serve 加载本地或验证模型并使用 local 提供商,退出时关闭路由器。接受路径、已发现的文件名或验证模型名称/URL;省略值则使用已保存的默认模型。与 --model、--provider 互斥

无头模式恢复会话时保留已保存的系统提示词及提示词模式;提示词参数只作用于全新会话。模型调用与 TUI 共用流式传输及空闲超时,即使选定输出格式只显示完整消息也是如此。

输出格式(Output formats)​

极简模式(Minimal,默认)(Minimal (default))​

仅展示智能体回复文本、系统通知与错误:

ante -p "what does this project do"

人类易读模式(Human)​

以可读块展示消息、工具活动及轮次状态。仅在终端中使用 ANSI 样式;设置非空 NO_COLOR 可禁用样式:

ante --output-format human -p "fix the type error in main.rs"

JSON 模式(JSON)​

逐行输出结构化的 JSON 对象事件,适合脚本与程序解析:

ante --output-format json -p "list all TODO comments" | jq '.event'

自我验证检查(Verification check)​

--check 参数会在主任务执行完成后触发第二轮审查,要求智能体主动复核自身的工作:

ante --check -p "refactor the auth module to use async/await"

验证阶段将:

  1. 对照原始需求审查已完成的工作
  2. 补全任何缺失或未完成的部分
  3. 在不影响正确性的前提下尽可能优化

上下文自动补充(Context enrichment)​

在无头模式下,Ante 会自动将当前目录的文件夹结构追加到您的提示词中。这使得智能体能够直接感知项目布局,而无需您手动描述。

无头模式行为特性(Headless behavior notes)​

  • 抑制原始流式增量(Raw streaming deltas are suppressed) — 输出展示完整的消息而非增量片段,使日志保持整洁
  • 明确的无人值守策略(Unattended policy) — 默认使用 yolo。显式传入 --permission-mode strict 或 auto 时会按其执行,但任何需要提示确认的调用都会在准入阶段被拒绝,因为无头运行中无人可以回答
  • 默认提示词明确单轮无人值守 — 模型会被告知无人回答问题或发送后续消息,当前轮次结束即结束会话。请在初始提示词中提供必要输入及输出格式
  • 启动时即检查认证状态(Authentication is checked eagerly) — 若提供商未通过认证,Ante 会立即报错退出
  • 守护进程异常时快速失败(Fails fast if the daemon dies) — 若智能体进程在任务完成前异常退出,Ante 会报告错误而非返回成功退出码

恢复历史会话(Resuming a session)​

传入 --resume <SESSION_ID> 可继续之前保存的历史会话。Ante 会回放持久化历史,并将新提示词作为下一轮 Turn 执行:

ante --resume ses_01ARZ3NDEKTSV4RRFFQ69G5FAV -p "now add tests"

已保存的模型、提供商、思考深度和对话会被恢复;快照未固定的配置则从主机当前默认值解析。无头恢复不要求当前默认提供商与已保存会话的提供商一致。显式传入的 --provider 和 --model 会在执行新提示词前覆盖已保存的选择,因此可以换用另一个已连接的提供商继续工作。

自 v0.3.1 起,工具筛选也会在恢复时生效。--tools 替换基础集合,--include-tools 向其添加工具,--exclude-tools 优先于前两者。省略 --tools 时,基础集合来自当前 tools 设置或默认工具集:

ante --resume ses_01ARZ3NDEKTSV4RRFFQ69G5FAV \
--tools Read,Glob,Grep \
-p "review the previous changes without editing files"

会话 ID 会在 TUI 会话退出时打印提示(Resume this session with: ante --resume ses_...)。

使用 --no-session-save 启动的会话绝不会持久化保存,因此无法在后续恢复。

无头模式必须提供会话 ID:不带 ID 的 --resume 仅适用于交互式 TUI,与 -p 或管道输入一起使用时会报错。

使用示例(Examples)​

CI 流程:代码检查与修复(CI: lint and fix)​

ante --yolo -p "run cargo clippy and fix all warnings"

代码生成(Code generation)​

ante --model claude-sonnet-5-5 --check \
-p "add comprehensive unit tests for src/core/session.rs"

限制可用工具(Restricted tools)​

# 纯只读分析 — 禁止文件写入与 Shell 命令执行
ante --tools Read,Glob,Grep \
-p "analyze the codebase architecture and summarize it"

通过管道传递 Diff 进行代码审查(Pipe a diff for review)​

git diff HEAD~1 | ante -p "review this diff for bugs and security issues"