新增第22章:Claude Code 调用方法
This commit is contained in:
@@ -933,3 +933,72 @@ tail -30 ~/.hermes/logs/gateway.log # gateway 日志
|
||||
- **Token**: `8653044481:AAFmqdOBOFeQB6JI3M0977rLgj0s28mvbeY`
|
||||
- **用户名**: `@shenwei_ubuntu2_yunzhi_bot`
|
||||
- 更换 bot:编辑 `~/.hermes/hermes-agent/.env` 中的 `TELEGRAM_BOT_TOKEN`
|
||||
|
||||
## 22. Claude Code 调用方法(Hermes Terminal)
|
||||
|
||||
### 核心模式
|
||||
|
||||
**Print Mode(推荐)** — 适合绝大多数任务:
|
||||
|
||||
```bash
|
||||
cat << 'TASK_END' | claude -p print \
|
||||
--dangerously-skip-permissions \
|
||||
--add-dir ~/.claude/skills/[技能名] \
|
||||
--add-dir [项目源码路径] \
|
||||
--max-turns 30 \
|
||||
2>&1
|
||||
[任务描述]
|
||||
TASK_END
|
||||
```
|
||||
|
||||
**TMUX 交互模式** — 适合超长任务:
|
||||
|
||||
```bash
|
||||
tmux new-session -d -s claude-work -x 140 -y 40
|
||||
tmux send-keys -t claude-work 'claude --dangerously-skip-permissions' Enter
|
||||
sleep 5 && tmux send-keys -t claude-work Enter
|
||||
sleep 3 && tmux send-keys -t claude-work Down && tmux send-keys -t claude-work Enter
|
||||
sleep 2 && tmux send-keys -t claude-work 'cat /tmp/task.txt' Enter
|
||||
```
|
||||
|
||||
### 关键参数
|
||||
|
||||
| 参数 | 作用 |
|
||||
|------|------|
|
||||
| `--dangerously-skip-permissions` | 跳过文件写入/网络确认提示(必写,否则卡住) |
|
||||
| `--add-dir <路径>` | 添加可访问目录,可多次使用 |
|
||||
| `--max-turns N` | 最大迭代次数,建议 20-30 |
|
||||
| `--bare` | 跳过插件/MCP/CLAUDE.md 加载,最快启动 |
|
||||
| `-p print` | 非交互单次执行模式 |
|
||||
|
||||
### 任务文本结构
|
||||
|
||||
```
|
||||
1. 告诉 Claude Code 要做什么
|
||||
2. 告诉它用哪个 skill
|
||||
3. 告诉它输出文件路径
|
||||
4. 如果需要格式转换,明确写出转换命令
|
||||
5. 最后要求输出 "done: 文件路径"
|
||||
```
|
||||
|
||||
### Skill 加载
|
||||
|
||||
`--add-dir <技能目录>` 会自动扫描该目录下的 `SKILL.md` 和 `.claude/skills/`,触发条件自动匹配激活。
|
||||
|
||||
### 常见坑点
|
||||
|
||||
1. **不写 `--dangerously-skip-permissions`** → 文件写入被阻塞
|
||||
2. **命令行参数直接传任务** → 特殊字符引发 shell 转义错误,用 stdin 管道
|
||||
3. **`max-turns` 太小** → 任务没跑完就超时,复杂任务设 25-30
|
||||
4. **环境变量 `ANTHROPIC_API_KEY`** → 需在 settings.json 或环境变量中配置
|
||||
|
||||
### delegate_task vs terminal 调用
|
||||
|
||||
| | delegate_task | terminal 调用 claude -p |
|
||||
|--|--------------|------------------------|
|
||||
| 本质 | Hermes 子 agent(API 调用) | 外部 Claude Code 进程 |
|
||||
| Skill 感知 | 无 | 能识别 SKILL.md |
|
||||
| 工具能力 | Hermes 工具集 | Claude Code 自身工具集 |
|
||||
| 适用场景 | 通用推理任务 | 需要 Claude Code 技能的特定任务 |
|
||||
|
||||
**结论**:需要调用 Claude Code skill(如 fireworks-tech-graph)时,用 `terminal` 调用 `claude -p`,不用 `delegate_task`。
|
||||
|
||||
Reference in New Issue
Block a user