--- 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 的方式,可能在特定配置下有效