jpskill.com
💬 コミュニケーション コミュニティ 🟡 少し慣れが必要 👤 経営者・事業責任者・マーケ

💬 Heterogeneousエージェント

heterogeneous-agent

Claude Codeのような異なる種類のAIエージェント(異

⏱ メール返信10件 30分 → 3分

📺 まず動画で見る(YouTube)

▶ 【最新版】Claude(クロード)完全解説!20以上の便利機能をこの動画1本で全て解説 ↗

※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。

📜 元の英語説明(参考)

Guide for implementing and debugging LobeHub heterogeneous agent integrations such as Claude Code, Codex, and future external CLI agents. Use when working on adapter event mapping, Electron IPC transport, renderer persistence, tool-call chaining, subagent threads, resume/session handling, or regressions like mixed multi-tool messages, broken step boundaries, stuck tool loading, and orphan tool messages. Triggers on 'heterogeneous agent', 'hetero agent', '异构 agent', 'claude code adapter', 'codex adapter', 'external agent CLI', '孤立 tool 消息', 'raw Codex trace', or adapter/executor bugs.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Claude Codeのような異なる種類のAIエージェント(異

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o heterogeneous-agent.zip https://jpskill.com/download/1278.zip && unzip -o heterogeneous-agent.zip && rm heterogeneous-agent.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/1278.zip -OutFile "$d\heterogeneous-agent.zip"; Expand-Archive "$d\heterogeneous-agent.zip" -DestinationPath $d -Force; ri "$d\heterogeneous-agent.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して heterogeneous-agent.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → heterogeneous-agent フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
2

💬 こう話しかけるだけ — サンプルプロンプト

  • Heterogeneous Agent で、私のビジネスを分析して改善案を3つ提案して
  • Heterogeneous Agent を使って、来週の会議用の資料を作って
  • Heterogeneous Agent で、現状の課題を整理してアクションプランに落として

これをClaude Code に貼るだけで、このSkillが自動発動します。

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] heterogeneous-agent

Heterogeneous Agent の開発

このスキルは、バグや機能が通常のサーバーサイドのエージェントランタイムではなく、外部の CLI エージェントパイプラインに存在する場合に使用します。

このスキルを使用するケース

  • apps/desktop/src/main/modules/heterogeneousAgent/drivers/ 以下にドライバーを追加または変更する場合
  • packages/heterogeneous-agents/src/adapters/ 以下のアダプターを編集する場合
  • heteroAgentRawLine トランスポート、window.__HETERO_AGENT_TRACE、または executeHeterogeneousAgent をデバッグする場合
  • Claude Code の stream-json のバグ(重複する部分/完全なチャンク、壊れた message.id 境界、tool_result の欠落、TodoWrite 状態のずれ、サブエージェントスレッドのルーティングなど)を修正する場合
  • Codex の JSONL のバグ(混合したマルチツールメッセージ、壊れたターン境界、ツール結果マッピングの欠落など)を修正する場合
  • Claude Code / Codex のフローにおけるステップ境界、ツール永続性、サブエージェントスレッド、または再開に関するバグを修正する場合
  • マルチツールの混合、孤立したツールメッセージ、またはツール結果の読み込みが停止する問題を再現する場合

パイプラインマップ

  1. CLI の生の stdout / JSONL
  2. Electron のメインプロセスが CLI を起動し、heteroAgentRawLine をブロードキャストします。
  3. アダプターがプロバイダーの生イベントを HeterogeneousAgentEvent にマッピングします。
  4. executeHeterogeneousAgent がアシスタント/ツールメッセージを永続化し、ストリームイベントを転送します。
  5. createGatewayEventHandler が UI をハイドレートします。
  6. このパスが正しいことを確認してから、agent-tracing または context-engine のデバッグに進んでください。

まずこれらのファイルを読んでください

  • apps/desktop/src/main/controllers/HeterogeneousAgentCtr.ts
  • apps/desktop/src/main/modules/heterogeneousAgent/drivers/claudeCode.ts
  • apps/desktop/src/main/modules/heterogeneousAgent/drivers/codex.ts
  • packages/heterogeneous-agents/src/adapters/claudeCode.ts
  • packages/heterogeneous-agents/src/adapters/codex.ts
  • src/store/chat/slices/aiChat/actions/heterogeneousAgentExecutor.ts
  • src/store/chat/slices/aiChat/actions/__tests__/heterogeneousAgentExecutor.test.ts

デフォルトのデバッグ順序

  1. UI コードに触れる前に、生の CLI 出力が正しいことを証明してください。
  2. 生の出力が正しい場合は、アダプターの出力と比較してください。開発環境では、executeHeterogeneousAgentwindow.__HETERO_AGENT_TRACE を公開します。
  3. アダプターされたイベントが正しいように見える場合は、persistToolBatchpersistToolResult、ステップ遷移、およびサブエージェントのルーティングを検査してください。
  4. 修正する前に、再現手順を絞り込んだテストに変換してください。
  5. トランスポート/アダプター/エグゼキューターのパスが健全に見える場合にのみ、後続のメッセージ処理をデバッグしてください。

重要な不変条件

  • 1つの生のツールアイテムは、1つの安定した ToolCallPayload.id にマッピングされなければなりません。
  • 新しいメインエージェントのステップは、イベントが新しいアシスタントに転送される前に、境界シグナルを発行しなければなりません。
  • Claude Code では、同じ message.id を持つ複数のアシスタントイベントは1つのターンであり、複数のターンではありません。
  • Claude Code では、tool_result はアシスタントイベントではなく、type: 'user' イベントに存在します。
  • Claude Code の部分モードでは、message_delta.usage が権威的です。すべてのアシスタントブロックでエコーされる usage を信頼しないでください。
  • persistToolBatch は、ツールメッセージを作成する前にアシスタントの tools[] を事前登録しなければなりません。
  • すべてのツールメッセージは、所有するアシスタントと等しい parentId と、ツール ID と等しい tool_call_id を保持しなければなりません。
  • tool_result は、既存の toolMsgIdByCallId を解決しなければなりません。
  • サブエージェントのチャンクはスレッドスコープ内に留まり、メインのアシスタントストリームに転送されてはなりません。
  • メインステップの境界でグローバルな toolMsgIdByCallId マップをクリアしてはなりません。

よくあるバグパターン

  • Claude Code がテキストまたは思考を重複させる場合: 部分的なデルタと、その後の完全なアシスタントブロックの両方が発行されているか確認してください。
  • Claude Code がアシスタントメッセージを過剰に開く場合: アダプターが message.id の変更時だけでなく、すべてのアシスタントイベントでステップを区切っているか確認してください。
  • Claude Code のツール結果が届かない場合: コードがアシスタントイベントのみを検査しているため、type: 'user'tool_result ブロックが無視されていないか確認してください。
  • Claude Code の TodoWrite カードが古く見える場合: 合成された pluginState.todos がツール結果時にアタッチされているか確認してください。
  • Claude Code のサブエージェントのトランスクリプトがメインのバブルに漏れる場合: parent_tool_use_id の処理と、サブエージェントのチャンクがメインのゲートウェイハンドラーに転送されているか確認してください。
  • 複数の Codex ツールが1つのアシスタントメッセージに集約される場合: まず、アダプターが newStep や同等のターン変更シグナルなど、使用可能なステップ境界を発行しているか確認してください。
  • 孤立したツールメッセージ: まず、ステップ遷移の順序と、ツールメッセージ作成前に persistToolBatch のフェーズ1が実行されたか確認してください。
  • ツールバブルが読み込み中のままになる場合: tool_result for unknown toolCallIdresult_msg_id のバックフィル不足を探してください。
  • サブエージェントのツールがメインのバブルに表示される場合: サブエージェントのチャンクがメインのゲートウェイハンドラーに到達しているか確認してください。

参照

  • コマンド、トレースキャプチャ、不変条件、および絞り込んだテストコマンドについては、references/debug-workflow.md をお読みください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Heterogeneous Agent Development

Use this skill when the bug or feature lives in the external CLI agent pipeline, not the normal server-side agent runtime.

Use This Skill For

  • Adding or changing a driver under apps/desktop/src/main/modules/heterogeneousAgent/drivers/
  • Editing an adapter under packages/heterogeneous-agents/src/adapters/
  • Debugging heteroAgentRawLine transport, window.__HETERO_AGENT_TRACE, or executeHeterogeneousAgent
  • Fixing Claude Code stream-json bugs such as duplicate partial/full chunks, broken message.id boundaries, missing tool_result, TodoWrite state drift, or subagent thread routing
  • Fixing Codex JSONL bugs such as mixed multi-tool messages, broken turn boundaries, or missing tool-result mapping
  • Fixing step-boundary, tool persistence, subagent thread, or resume bugs in Claude Code / Codex flows
  • Reproducing multi-tool mixing, orphan tool messages, or stuck tool-result loading

Pipeline Map

  1. CLI raw stdout / JSONL
  2. Electron main spawns the CLI and broadcasts heteroAgentRawLine
  3. Adapter maps raw provider events into HeterogeneousAgentEvent
  4. executeHeterogeneousAgent persists assistant/tool messages and forwards stream events
  5. createGatewayEventHandler hydrates the UI
  6. Only after this path looks correct should you move on to agent-tracing or context-engine debugging

Read These Files First

  • apps/desktop/src/main/controllers/HeterogeneousAgentCtr.ts
  • apps/desktop/src/main/modules/heterogeneousAgent/drivers/claudeCode.ts
  • apps/desktop/src/main/modules/heterogeneousAgent/drivers/codex.ts
  • packages/heterogeneous-agents/src/adapters/claudeCode.ts
  • packages/heterogeneous-agents/src/adapters/codex.ts
  • src/store/chat/slices/aiChat/actions/heterogeneousAgentExecutor.ts
  • src/store/chat/slices/aiChat/actions/__tests__/heterogeneousAgentExecutor.test.ts

Default Debug Order

  1. Prove whether the raw CLI output is correct before touching UI code.
  2. If raw output is correct, compare it with adapter output. In dev, executeHeterogeneousAgent exposes window.__HETERO_AGENT_TRACE.
  3. If adapted events look correct, inspect persistToolBatch, persistToolResult, step transitions, and subagent routing.
  4. Turn the repro into a focused test before fixing.
  5. Only after the transport/adapter/executor path looks sound should you debug later-stage message processing.

Critical Invariants

  • One raw tool item must map to one stable ToolCallPayload.id.
  • A new main-agent step must emit a boundary signal before events are forwarded to the new assistant.
  • In Claude Code, multiple assistant events with the same message.id are one turn, not multiple turns.
  • In Claude Code, tool_result lives in type: 'user' events, not assistant events.
  • In Claude Code partial mode, message_delta.usage is authoritative; do not trust echoed usage on every assistant block.
  • persistToolBatch must pre-register assistant tools[] before creating tool messages.
  • Every tool message must keep parentId equal to the owning assistant and tool_call_id equal to the tool id.
  • tool_result must resolve an existing toolMsgIdByCallId.
  • Subagent chunks must stay in thread scope and must not be forwarded into the main assistant stream.
  • Never clear the global toolMsgIdByCallId map at main step boundaries.

Common Bug Patterns

  • Claude Code duplicates text or thinking: check whether partial deltas and the later full assistant block are both being emitted.
  • Claude Code opens too many assistant messages: check whether the adapter is cutting steps on every assistant event instead of only on message.id changes.
  • Claude Code tool results never land: check whether type: 'user' tool_result blocks are being ignored because the code only inspects assistant events.
  • Claude Code TodoWrite cards look stale: check whether synthesized pluginState.todos is being attached at tool-result time.
  • Claude Code subagent transcript leaks into the main bubble: check parent_tool_use_id handling and whether subagent chunks are being forwarded to the main gateway handler.
  • Multiple Codex tools collapse into one assistant message: first check whether the adapter emits a usable step boundary such as newStep or an equivalent turn-change signal.
  • Orphan tool messages: first check step-transition ordering and whether persistToolBatch Phase 1 ran before tool message creation.
  • Tool bubble stays loading: look for tool_result for unknown toolCallId and missing result_msg_id backfill.
  • Subagent tools show up in the main bubble: check for subagent chunks reaching the main gateway handler.

References

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。