Cline を使ってみた
実際には Roo Code
使ったのは gemini-2.0-flash-100 (VSCode LM API / Google Gemini)
雑にデータ構造を変えて(ネストが変わっただけで情報としては等価)あちこちにエラーが波及してダルいというときに @problem と送るだけで LSP とかから出てくるエラーを見てどんどん直していく姿は頼もしかった
反面 Markdown の Codeblock コンポーネントを実装してと言ったら syntax highlight まで実装しようとしてコピペプログラマーがよ!となった
syntax highlight はいらない(けどもらうデータ構造を見るために Codeblock の実装は欲しい)みたいなことを言ったらすいませんと言いながら Codeblock を消してて厳しい顔つきに
これはもう少し賢いモデルを選んであげればよかったのかもしれないが
情報の非対称性を考えても別に自分よりプログラミングが得意という気はしない(数倍,もしくは桁レベルの差かもしれない)が,手数が多いのでその差は縮まっている
システムプロンプトに1つずつやれと書かれているというのもある
というか tool use は各応答で一回という制約があるからその中でいちばんやりたいことを考えてやっているんだと思う
かわいそう
かといってまとめて書き換えた場合(彼らに undo という選択を与えていないから)ひたすら間違った方向で書き換えることになりそうでそれはそれで厳しいのだろうと思う
とんでもない量のトークンを消費していそう
手数が多い
毎回 workspace のエラー情報とかを渡している(input token)
システムプロンプトにツールの使い方が書かれているためにプロンプトが長い(input token)
tool use する前によく考えろと書かれているためにたいてい write file する前に書こうとしている内容を吐き出して精査している(output token)
これを課金ベースのプロダクトとして出せる気はしないなと思う
Copilot Chat は Chat ということもあって出力が多くなることを嫌っているのか,Chat の出力を構造化させた上で生成させたコードをうまいこと適用するために Tree Sitter とか使ってやっているっぽい