51 lines
3.2 KiB
Markdown
51 lines
3.2 KiB
Markdown
---
|
||
title: "Claude Code 调用方法总结"
|
||
type: source
|
||
tags: []
|
||
date: 2026-04-22
|
||
---
|
||
|
||
## Source File
|
||
- [[raw/Agent/claude-code调用方法总结]]
|
||
|
||
## Summary(用中文描述)
|
||
- 核心主题:Hermes Agent 通过 terminal 工具调用 Claude Code 的两种模式及最佳实践
|
||
- 问题域:如何从外部 Agent(如 Hermes)可靠地触发并控制 Claude Code 执行任务
|
||
- 方法/机制:Print Mode(stdin 单次执行)与 TMUX 交互模式两种调用路径;关键参数包括 `--permission-mode bypassPermissions`、`--dangerously-skip-permissions`、`--add-dir`、`--max-turns`
|
||
- 结论/价值:明确了何时使用 `claude -p` 而非 `delegate_task`,以及如何正确传递任务、配置 Skill 加载、规避常见坑点
|
||
|
||
## Key Claims(用中文描述)
|
||
- Hermes Agent 使用 `terminal` 工具调用 `claude -p` 是调用 Claude Code 的推荐方式
|
||
- `--permission-mode bypassPermissions` 直接设置 bypass 模式,跳过所有交互确认
|
||
- 任务文本通过 stdin(heredoc)传入比命令行参数更可靠,可避免特殊字符转义问题
|
||
- `delegate_task` 调用的是 Hermes 子 Agent(API 调用),无法识别 SKILL.md;当任务需要 Claude Code 技能时应使用 `terminal` 调用 `claude -p`
|
||
- Skill 加载只需 `--add-dir <技能目录>`,Claude Code 会自动扫描 SKILL.md 和 `.claude/skills/` 目录
|
||
|
||
## Key Quotes
|
||
> "用 `--permission-mode bypassPermissions` 可直接跳过信任目录 + bypass 权限确认两步,不需要额外的 sleep + send-keys 模拟交互。" — 核心参数说明
|
||
> "不写 bypass 参数 → 文件写入被阻塞,任务卡住(优先用 `--permission-mode bypassPermissions`)" — 常见坑点
|
||
> "当任务需要调用 Claude Code 的 skill(如 fireworks-tech-graph)时,应使用 `terminal` 调用 `claude -p`,而非 `delegate_task`" — 结论
|
||
|
||
## Key Concepts
|
||
- [[Print Mode]]:通过 `claude -p print` 非交互单次执行模式,适合绝大多数任务
|
||
- [[TMUX 交互模式]]:通过 TMUX 创建持久会话并附加交互,适合超长任务
|
||
- [[bypassPermissions]]:`--permission-mode bypassPermissions` 参数,直接跳过所有权限确认
|
||
- [[Skill 加载]]:`--add-dir` 加载技能目录,自动识别 SKILL.md
|
||
- [[delegate_task vs claude -p]]:子 Agent vs 外部 CLI 的本质区别与适用场景
|
||
|
||
## Key Entities
|
||
- [[Claude Code]]:Anthropic CLI agent,被调用方
|
||
- [[Hermes]]:主 Agent,通过 terminal 工具调用 Claude Code
|
||
- [[TMUX]]:终端多路复用器,用于持久化 Claude Code 交互会话
|
||
|
||
## Connections
|
||
- [[Claude Code]] ← 调用方 ← [[Hermes]]
|
||
- [[claude-code调用方法总结]] ← 补充 ← [[如何在项目里安装Claude Code Templates Skills]]
|
||
- [[claude-code调用方法总结]] ← 对比 ← [[delegate_task vs claude -p]]
|
||
|
||
## Contradictions
|
||
- 与 [[llm-wiki]] 冲突:
|
||
- 冲突点:llm-wiki 中描述的 `delegate_task + acp_command='claude'` 调用 Claude Code 路径
|
||
- 当前观点:AGENTS.md 中说明只有 `provider=copilot-acp` 时 acp 参数才真正建立外部 CLI 通道;普通 `delegate_task` 调用的是 Hermes 子 Agent
|
||
- 对方观点:llm-wiki 描述了通过 ACP 协议调用 Claude Code 的方式,可能在特定配置下有效
|