Codexの「タスク」「スレッド」「サブエージェント」を整理。新規チャットから理解する3つの単位

親ノートからページの流れを経て二つの作業机へ分かれるイラスト

Codexを使っていると、「タスク」「スレッド」「サブエージェント」という言葉が出てきます。似た場面で使われるため、どれが新しいチャットで、どれがAIの分身なのか混乱しやすいところです。

この記事では、厳密な内部実装を断定するのではなく、Codexを使うときに困らない実用的な整理をします。Codexの画面やクライアントによって呼び方が違う場合もあるため、最後に「この記事ではこう呼ぶ」という基準も決めます。

先に3つの違いを表にすると

用語 何を指すか AIじてんでの理解
タスク 達成したい仕事や目的の単位 「この記事を下書きする」「この不具合を直す」のような1つの成果
スレッド 会話・指示・実行履歴がまとまる作業場所 新規チャットとして開いた会話のまとまり
サブエージェント 親のタスクから委任された仕事を担当する別のAI 親スレッドから起動され、結果を返す作業担当

日常的には、タスクとスレッドをほぼ同じ意味で使っても会話は成立します。ただし、タスクは「何を終わらせたいか」、スレッドは「どの会話の流れで進めているか」と考えると整理しやすくなります。

新規チャットを開くと何が始まるのか

Codexで新規チャットを開くと、そこに会話の履歴と作業コンテキストが積み上がります。AIじてんでは、この新規チャットで取り組む1つの目的をタスクと呼ぶことにします。

たとえば「Obsidianの記事を書く」という目的で新規チャットを開いたら、そのチャットがメインのスレッドで、目的が1つのタスクです。同じチャットで指示を追加していく限り、背景や判断の履歴を共有しながら作業できます。

公式マニュアルでも、同じ問題なら1つのチャットを続け、別の成果物なら新しいチャットを開始する考え方が説明されています。つまり、新規チャットは会話を分ける操作であり、タスクはその会話で達成したい成果です。

スレッドは「会話の容器」と考える

スレッドには、ユーザーの指示・AIの返答・ツールの実行・ファイル変更・判断の履歴がまとまっています。長い作業を続けるときに「このスレッドの続き」と言えるのは、同じ履歴を使っているからです。

別のスレッドを作ると、同じプロジェクトやフォルダを見られても、会話の履歴は別になります。必要な背景は新しいスレッドへ渡し直す必要があります。

元の会話を残したまま別案を試すforkや、新しいチャットを開く操作は、スレッドを分ける操作です。ファイルを共有していても、会話の文脈まで自動的に同じになるとは限りません。

サブエージェントは「タスクの一部を担当するAI」

サブエージェントは、新しいチャットを自分で始めるユーザー向け機能というより、親のタスクから仕事を委任されたAIです。親エージェントが調査・テスト・レビューなどの範囲を切り出し、サブエージェントが担当して、最後に結果を親へ返します。

サブエージェントにも独自のエージェントスレッドがあります。したがって、次のような関係になります。

  • 親タスク:全体として達成したい目的
  • 親スレッド:その目的を進めるメインの会話
  • サブエージェント:親タスクの一部を担当する作業者
  • サブエージェントスレッド:作業者が実際に動く会話

サブエージェントは単に新しいチャットを開いただけではありません。親から委任され、結果を戻すという関係がある点が違います。

今回のLunaのように「別スレッド」で回避する場合

サブエージェント候補のモデルに制限があるときは、Lunaをメインモデルにした別スレッドを起動する方法があります。この場合、そのスレッドは親タスクのサブエージェントではありません。

同じプロジェクトフォルダを扱う別タスクとして、Lunaに目的・対象ファイル・完了条件を渡します。親スレッドから結果を読むことはできますが、サブエージェントのように自動で親へ要約が戻るとは限りません。

この違いを意識せず「Lunaのサブエージェント」と呼ぶと、モデル候補や履歴共有の挙動を誤解しやすくなります。今回の記事では、子として委任する場合をサブエージェント、別のメイン作業として起動する場合をスレッドと書き分けます。

AIじてんでの用語の使い分け

今後の記事では、次の基準で書きます。

  • タスク:新規チャットで始める、1つの目的や成果物
  • スレッド:そのタスクを進める会話の履歴・作業単位
  • サブエージェント:親タスクから委任された仕事を別スレッドで担当するAI

画面上の表記が「タスク」でも、実際には会話スレッドを指している場合があります。迷ったときは、タスクを目的、スレッドを履歴、サブエージェントを委任先、と置き換えると判断しやすくなります。

まとめ

タスク・スレッド・サブエージェントは、似ていますが指している範囲が違います。タスクは目的、スレッドは会話の容器、サブエージェントは親から委任された作業者です。

新規チャットを開いて自分で作業するなら「新しいタスク」または「新しいスレッド」、親から一部を任せるなら「サブエージェント」と考えると、モデル指定や履歴共有の違いも理解しやすくなります。

Codexの公式マニュアルでは、チャットを成果ごとに分けること、サブエージェントが独自のエージェントスレッドで動くことが説明されています。クライアントやアップデートによって表示名・操作方法が変わる可能性があるため、ここでは実際の使い分けを優先して整理しています。

サイト内検索