Files
nexus/wiki/sources/claude-code调用方法总结.md
2026-04-22 16:03:25 +08:00

51 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 Modestdin 单次执行)与 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 模式,跳过所有交互确认
- 任务文本通过 stdinheredoc传入比命令行参数更可靠可避免特殊字符转义问题
- `delegate_task` 调用的是 Hermes 子 AgentAPI 调用),无法识别 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 的方式,可能在特定配置下有效