理想的?一般的?汎用的?
日常運用に耐えるようなループの構想
最近Linearにはまっていて、日常での中長期的なタスクや目標は全てLinearで管理していると言っても過言ではない状況になってきた。
Linearの良さと言えばそのシンプルかつ見やすさ満点のUI・UXもさることながらMCPの安定性だろう。
少し前は手間取ることも多かったように思うが、今はChatGPTからもかなり簡単にアクセスが可能で、Codexからもかなり安定したアクセスが可能。
んでAIにばかり触らせていると誰が操作したか分からなくなってくるので、見分けがつく方法は無いかと探したところ、OAuth ApplicationsのBearer Token経由でMCPが使えるので、それで区別できるという話になった。
Codexの場合、起動時にMCP接続する為、環境変数を切り替えてから起動することで、同マシンでもOAuth Applicationの名義を切り替えられる。
これだとタスクの直接アサインとかはできないので、おそらく真面目に構築しようとするともっといい方法があると思うが、とりあえず個人的にはこの件でエージェントループ論に対してようやく実感がわいた気分。
ここからはただの日記
ここから派生して、複数エージェントで安定した作業ループを行う構想を考えてみた。
人間としてイメージ付きやすいのはやはりチャット。
今でもLinearのコメント欄とかでお互いに認識は出来る状態だとは思うが、もっとシームレスというか常に認識できるような柔軟性が欲しいなと思った。
するとDiscordとかか(凡庸)と思ったが、ここまで行くとYoutubeで見たマシン5台のAIがループ開発するやつになってしまいそうなので、自分にはとても制御できそうにないなと感じた。
んで、現状の問題点としては(これは多少は人間と同じとはいえ)前提認識や作業状況を共有するのにリポジトリ上やLinear等のタスクツールに文章が異常に増える。
これによってエージェントはある程度安定して動作できるわけだけど、ふと人間がそこに戻ると理解するまでにかなり時間を要するし、特にLinearとかタスクツールに重要なこととか置かれても、それを探すのに時間がかかる。
(だからせめてチャットでやってもらった方が見返しやすいのではと思ったわけだが)
考えてみれば今のエージェントは基本全員、そのセッションが終わればデータ消えるわけで、そりゃ安定性継続性がかなり難しいわとは思う。
LinearのAPIキー渡そうにも、やはりそれって鍵であり、誰が触ったかの証明にはならない。
例えばローカルの複数ワークツリー上でそれぞれに異なるAPIキーを渡す。そこで動作するエージェントはそれぞれのカギを使う。
その状態でコメントするとぱっと見はそのワークツリーに紐づいたエージェントがやったんだろうと思うが、実際の作業したエージェントというのは超短期記憶の自我しか持たないキャラクターなわけで、いわば1時間で退職するタイミーみたいな。
じゃあセッションIDを紐づければいいじゃんという話になるのだが、例えば実装に対しての意図を質問しようとしたときにそいつは既に退社していて、resumeしないともう会うことはない。
超ブラックが使ったタイミーがもう戻ってこないみたいな。
そんなこんなで、人間的な感覚で考えるとやっぱり人を管理するのとは全然違うアプローチになりそうで、ある程度任せて結果に対しては振れ幅を許容するというのが出来ないとダメだなと思った。
(レビューボット等でそれなりの安定性を保つのは出来るかもだが、そのレビューボットすら短期的な自我なわけで、そいつが思ったことはやはり数バイトの文字にしか宿らないのだと思うと)
困った。
やっぱり頭良くない側からすると作業の意図と方針とか、ちゃんと整理したドキュメントに残してくれたり、事故にあったりよほど嫌われたりとかの限定的な事象が無い限りは、ちょっと質問すれば意図を組んで答えてくれる「人」ってめっちゃすげえなと思った。
そんなこんなで、少なくともあと1年は--resumeを使い続けるんだろうなと思った秋この頃でした。
風邪にはお気をつけて。