コンテンツにスキップ
Zidooka
スポンサーリンク

Codexがopencode runを呼んだとき、OpenCodeは聞き返せるか?待機して対話できるのか?

※ この記事の内容について、業務・開発上お困りの場合は個別に対応できます(5,000円〜)。

Codex(AnthropicのCLIエージェント)が opencode run "タスク" をbash経由で呼び出したとき、OpenCodeは「これ曖昧だよ」と聞き返せるのか?複数ターンの対話が成立するのか?

結論:できない。opencode run はワンショット。聞き返さないし、待たない。

なぜできないか

opencode run非対話型モード です。与えられたプロンプトを処理し、結果を標準出力に出して終了。標準入力からの対話は想定されていません。

公式ドキュメントの原文:

"Run opencode in non-interactive mode by passing a prompt directly. This is useful for scripting, automation, or when you want a quick answer without launching the full TUI."

OpenCodeが情報不足でも、推測して実行するかエラーを返すだけで、聞き返すことはありません。

じゃあ何のために使うの?

対話ではなく役割分担に価値があります。

  • Codex(高性能・高コスト)→ 全体設計、判断、レビュー
  • OpenCode Go Flash(低コスト・高速)→ 局所実行

Codexが一方的に「これをやれ」と投げ、結果を受け取る。対話は不要です。

対話したければ → opencode serve + HTTP API

ここが今回のポイントです。OpenCodeには opencode serve というモードがあり、HTTPサーバーとして起動できます。

opencode serve
# → localhost:4096 でREST API起動

このサーバーに対して POST /session/:id/message を送ると、OpenCodeがレスポンスを返します。セッションを維持したまま複数ターンの対話が可能です。

さらに、公式のJS SDK(@opencode-ai/sdk)を使えばTypeScriptで型安全にクライアントを書けます。

import { createOpencodeClient } from "@opencode-ai/sdk"
const client = createOpencodeClient({ baseUrl: "http://localhost:4096" })

// セッション作成
const session = await client.session.create({ body: { title: "対話" } })

// メッセージ送信(レスポンスを待つ)
const result = await client.session.prompt({
  path: { id: session.id },
  body: {
    parts: [{ type: "text", text: "このコードをレビューして" }],
  },
})

つまり、Codexが webfetch ツールでこのAPIを叩くようにすれば、bashの opencode run 経由ではない HTTPベースの対話 が構築できます。

ただし、Codexが自発的にこのパターンを実行するわけではありません。Codexに明示的に指示するか、ラッパースクリプトを用意する必要があります。

全体比較

サブエージェント(補足)

OpenCode(TUI)には内部のサブエージェント機能(@general@explore)があります。プライマリエージェントがtaskツール経由で子セッションに委譲できますが、これはOpenCode内部の話でCodexからの呼び出しとは無関係です。

結論

opencode run はワンショット非対話型。OpenCodeは聞き返さず待たない。しかし opencode serve + HTTP API を使えば、セッションを維持した擬似対話が構築可能。現在の実用パターンは「安いモデルに細かいタスクを投げる」という割り切りが正解。

opencode run からはOpenCodeに聞き返せない。対話が必要なら opencode serve + HTTP APIで橋渡しを構築する。今のCodex連携パターンは対話不要の役割分担として成立している。

スポンサーリンク

ZIDOOKA!

この記事の内容について、対応できます

ZIDOOKA!では、この記事で扱っている内容に関連する技術トラブルや開発上の問題について、フリーランスとして個別対応を行っています。
「調べても解決しない」「業務で詰まっている」「社内で対応が難しい」といった場合にご相談ください。

個別対応:5,000円〜 (内容・工数により事前にお見積りします)

AI活用に関するポリシー

当サイトでは、記事の執筆支援にAIを活用する場合があります。ただし、AIに記事作成を全面的に委任することはなく、あくまでライティングの補助として利用しています。「AIを活用することで生産性が向上し、より伝わりやすいコンテンツになるならば積極的に利用すべき」という方針のもと運営しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です