Claude CodeやCodexを使っていて、並列でのCLI管理が面倒だと思っていました。 ペインを開きまくると、どこで何をしてたのかを忘れるし、画面移動が面倒。
軽いタスクはCLIでやり取りをせず、リリースまで全部進めてくれたら楽だし、CLIをいろいろ開くのもやめて、1画面で全部の状況がみれて、1画面で承認や応答も完結させられたら便利そう。
そう思って1画面で全部のやり取りをできるツールを作ったら思いの外便利だったので、記事にまとめました。
作ったのは、シンプルなループツールです。基本的な仕組みは、
- 登録したskillを起動/停止できる
- 承認/応答ができる
大枠の仕組みはこれだけです。工夫したのは、
- UIで全部対応できるようにする
- 起動された並列agentが全部UIで1画面でノードとして見れる
- 承認/応答も一つのモーダルに集約されて、そこで全部対応できる
という点です。 こうすることで、いくつもCLIを起動して行き来したりせず、1画面で全部完結できるようになりました。
以下、使い方と仕組みをもう少し詳しく解説します。
基本的な使い方は、以下の通りです。
- ソースとskillを登録する
- UIでskillを起動して管理する
このツールでは、「何をきっかけに、どう回すか」をソースとしてコードで定義します。 ソースはコードなので、並列数の制御、レビューを必須にするかどうか、直列で固定するかなど、ループの動き方を自由に書けます。
設定ファイルでは、どのソースを使うか、どのプロンプトやskillを実行するか、どのモデルを割り当てるかなどのパラメータを登録します。 エントリを追加するだけでループを増やせます。
今あるソースは2種類です。 1つはタスク管理ツールとのポーリング連携で、AIタグがついた待機中のタスクを定期的に取得して、タスクがあれば専用のskillをプロンプトとしてオーケストレーターに渡して起動します。 あとはそのskillに沿って、オーケストレーターが任意のagentを並列に起動して進めてくれます。 タスクには「リリースまでやって」とか「仕様作成まで」と自然言語で書いておくだけで、どこまで進めるかを制御できます。
もう1つはタイマーで、一定間隔でskillを実行します。
UIではオーケストレーターの起動/停止、実行中のagentの監視、承認、応答が全部できます。
起動したオーケストレーターの中で動いているagentは、ノードグラフとして1画面に表示されるので、親agentが子agentを起動すると、ツリー構造でぶら下がっていくようになっていて、今何が並列で動いていて、どこまで進んでいるかが見えます。
承認や応答は、一つのポップアップに積み上がる方式になっているので、一括で管理できるようになっています(基本的には承認するので、ほぼ無条件でボタン連打するだけになってる)。
ちなみに、ノードをクリックするとログが見れるので、そのagentが今何をしているかなども、追跡できるようになっています。
仕組みはシンプルで、
- 基本のagentの行動はプログラム側で制御
- 動き方はskill
という構造になっています。
agentについては、ほぼcoding agentと同じで、それを抽象化しているだけです。 claude codeはagent sdkで、codexはapp serverで書かれていて、それらを使って起動・停止・並列管理・承認・応答周りを抽象化して、一つのagentとして使いまわせるようになっています。
それ以外の動き方については、ソースで定義したところと、あとはskillチェーンに任せる形で、できるだけskillで自由に回せるようになっています。
この分離をしているので、基本的にはskillの構造や中身を変えるだけで挙動が変えられるし、新しいskillも、既存のソースを使える内容ならskillを作って設定ファイルに登録するだけで使えるので、柔軟に挙動を切り替えたり試したりが可能になっています。
ほぼ自律ループで動くようにしているので、タスクの投げ方や、タスクの難易度によっては、微妙な出来になっているケースもあります。
ただ、これはツールの問題というより、skillの作りこみの問題や、ドキュメント/開発環境やCICDの問題によるものも多いと思うので、丁寧に整備されたものなら、だいぶ改善されると思います。
また、モデルの精度が上がると、勝手に解決されるケースもあると思います。
なので、むしろもっと抽象度や難易度を上げたタスクや、フィードバックループによる永続ループを回せるような仕組みをもっと作っていきたいと思っています。
ちゃんとみてないので詳しくないですが、claude codeのタスクスケジュールとか、codex appのautomationsあたりもほぼ同じことができると思うので、のちのちはこれもいらなくなる気がしています。
個人的には1画面で全部見れた方が便利なのと、モデルを使い分けたループを設定できる(オーケストレーターはopus、実行者はgpt-5.4みたいな)ようにして欲しいので、どっちかが公式にこんなツールもリリースして欲しい。