何が起きたか
GitHubのCopilot CLI 1.0.96をACPモードで使う際、Autopilotの完了要約がエージェントの回答ではなく、`task_complete`ツール呼び出しとしてクライアントに送られる問題がGitHubのIssueで報告された。Issueは影響例としてJetBrains Air(IntelliJ IDEA)を挙げている。報告者によると、Copilot TUIでは同じ要約が最終回答として表示される一方、ACPでは回答メッセージが届かず、処理の終了理由は`end_turn`となる。
詳細
Issueの再現手順は、`copilot --acp --stdio`を起動してセッションを作成し、モードをAutopilotに設定したうえで、ファイル作成を指示するものだ。報告された通知では、`task_complete`が`kind: "other"`のツール呼び出しとして送られ、完了要約はツール更新の内容に含まれる。Issueは、同じバイナリが`@github/copilot-language-server` 1.554.0(`@github/copilot-win32-x64`)にも含まれるとしている。環境はWindows 11、x64。 Issueの活動記録には、Copilot 1.556.0とIntelliJで`task_complete`の`agent_message_chunk`がストリームされるように見えるとの確認コメントがある。ただし、記録上は「問題が解消した」と断定されていない。
Key Facts
| 報告対象はGitHub Copilot CLI 1.0.96を`copilot --acp --stdio`で起動した場合。 | [1] |
| Autopilotの`task_complete`要約がツール呼び出しとして届き、エージェントの回答メッセージが送られないと報告された。 | [1] |
| 影響例としてJetBrains Air(IntelliJ IDEA)が記載されている。 | [1] |
| 同じバイナリは`@github/copilot-language-server` 1.554.0にも含まれるとIssueに記載されている。 | [1] |
| Issueの活動記録には、Copilot 1.556.0とIntelliJでの確認時に改善したようだとのコメントがある。 | [1] |
本紙の見方
この問題の中心はAutopilotのタスク実行そのものではなく、完了結果をACPクライアントにどう伝えるかにある。報告では、`task_complete`の要約はツール呼び出しの更新に含まれるが、ACPでエージェントの回答を示す`agent_message_chunk`には載らない。Copilot TUIでは最終回答として描画されるという対照も示されており、同じ処理結果でも接続方式によって利用者に見える形が異なる点が論点となる。 本紙の関連記事であるGitHub、Copilot CLIのAutopilotモードの利用・制御方法を案内は、自動継続やツール権限など、Autopilotをどう制御するかを扱っている。今回のIssueはその制御設定とは別の層、つまり実行後の要約がクライアントに届く経路を問題にしている。Autopilotの開始・制御ができても、結果が通常の回答として表示されなければ、ACPを組み込む側はツール呼び出しの内容を展開するなど、別の扱いを利用者に求めることになる。Issue自身も、クライアントには`task_complete`が回答を意味すると一般的に判定する方法がないと説明している。 この差は、ACP対応クライアントとCopilot本体の接続境界におけるプロトコル上の一貫性に関わる。`task_complete`を内部制御用ツールとしながら、外部には回答メッセージとしても送るのか、ツール呼び出し自体を公開しないのかは、Issueが示す修正案の選択肢でもある。単に画面表示を変えるだけでなく、クライアントが実装依存のツール名を理解しなくても結果を扱えるかが焦点になる。 一方、Issueの活動記録にはCopilot 1.556.0とIntelliJで改善したようだとの確認があるものの、解消を確定する記述ではない。再現条件が同じか、他のACPクライアントでも`agent_message_chunk`が届くか、要約とツール実行結果の双方を受け取る場合に重複表示が起きないかは、記録だけでは判断できない。今後見るべきなのは、バージョンごとの通知仕様と、`end_turn`で終了するセッションに対するクライアント側の表示がそろうかである。
なぜ重要か
Issueの報告どおりなら、ACPを通じてAutopilotを使うクライアントでは、処理が完了しても要約が通常の回答として表示されず、利用者がツール呼び出しを展開する必要がある。Copilot TUIとACPで同一要約の伝達形式が異なるため、クライアント実装では回答メッセージと内部ツール通知の区別が重要になる。
