Claude Code 不止会聊天:Headless 模式 + Agent SDK,让AI自动执行任务
一个开发者必须面对的痛点
坦白说,截至目前,你和 Claude Code 的交互方式,本质上依然是“一问一答”——你在命令行输入指令,它给出回应。你发出“审查这个文件”的请求,它执行审查;你下达“编写一个组件”的命令,它完成编写。

这种交互模式虽然直观,却存在一个根本性的局限:你始终需要全程在场陪伴。
- 它无法在凌晨 2 点自动扫描代码仓库,并将质量报告推送到钉钉群。
- 它无法在每次收到 Pull Request 时,自动执行一轮静默的代码审查。
- 它也无法一次性批量处理 100 个文件的文档生成任务。
换句话说,目前是你驱动它,而不是它自主运行。那么,如何解决这些自动化痛点?Claude Code 提供了两种“脱离终端”的解决方案:Headless 模式和 Agent SDK。
一、Headless 模式——一条命令,Claude 自主执行
实际操作并不复杂。最简单的用法,就是在命令行中直接向 Claude 下达指令:
claude -p "扫描 src/app/page.tsx 并分析其性能瓶颈"
无需交互界面,不需要你在旁边监控,运行完毕直接输出结果。
三种输出格式详解
# 纯文本:适合开发者直接阅读的结果claude -p "列举项目中所有 TODO 注释" --output-format text# JSON:便于程序解析结构化输出claude -p "列举项目中所有 TODO 注释" --output-format json# Stream JSON:逐条流式输出,适用于实时处理claude -p "重构 ArticleList 组件的逻辑" --output-format stream-json
关键参数速查表
| 参数 | 功能说明 | 示例值 |
|---|---|---|
--output-format | 选择输出格式 | text / json / stream-json |
--max-turns | 限制最大执行轮次(控制Token消耗) | 3 |
--allowedTools | 限制可用的工具权限(增强安全性) | Read,Grep,Glob |
--model | 指定使用的模型版本 | sonnet |
实战案例:批量审查近期变更文件
# review-recent.sh 自动化脚本for file in $(git diff --name-only HEAD~5 -- '*.ts' '*.tsx'); doecho "
