新增第22章:Claude Code 调用方法

This commit is contained in:
2026-04-13 12:17:16 +08:00
parent 9a9c263e88
commit 7d9751d154
2 changed files with 587 additions and 0 deletions

View File

@@ -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 子 agentAPI 调用) | 外部 Claude Code 进程 |
| Skill 感知 | 无 | 能识别 SKILL.md |
| 工具能力 | Hermes 工具集 | Claude Code 自身工具集 |
| 适用场景 | 通用推理任务 | 需要 Claude Code 技能的特定任务 |
**结论**:需要调用 Claude Code skill如 fireworks-tech-graph用 `terminal` 调用 `claude -p`,不用 `delegate_task`。