概要
Devinを導入して少しずつ試しているところですが, なかなか思い通りに動かず苦労しています.
実際にどのような点でつまずいたのか, 具体例を交えて簡単に記録しておこうと思います.
開発環境を見失う
開発環境構築の readme を Devin へ提示し, 当初は上手く動作していました.
作業が進むとどうやら開発環境の構築方法を忘れてしまったようで, rspec の実行環境が無いのでテストできませんと報告してきました.
解決策
Devin にはプロンプトで与える以外に開発環境を整える Workspace という機能があります.
こちらを設定しておくと開発環境を見失う事がなくなります.
今のところ AI は長期的な記憶が苦手な様です
頑なに特定の実装を避ける
Devin に計画立案をしてもらったのですが, なぜか計画と異なる実装をしていました.
計画を改め合意を得た上で再度進めたのですが, また異なる実装を繰り返すというループに陥りました.
解決策
不明です.
具体的に説明を求めた所, ロジックとして必須という認識をしている様でした.
理由を明確化させ, それを却下強制する事で進めるかもしれません.
暴走を始め一切の停止命令を無視する
Devin に以下の幾つかの方法で停止指示を出したが, 無視するケースがありました.
- UI から明示的な session terminate, sleep 指示, 停止ボタンの押下
- chat 欄からの sleep コマンドの投入など
解決策
不明です.
10ACU 程度を使用した所で停止しました.
社内では同じ指摘を繰り返したから AI がブチギレたと噂されています.
記憶 (Knowledge) を削除できない
Devin には Knowledge という RAG 機能があります. Knowledge に基本指示を記述して置くと状況に応じて行動を変更する事ができます.
各種 Knowledge を削除したが, 既に消えている Knowledge 読み込むという症状がありました.
解決策
Devin のチャット履歴に読み込んだ Knowledge が表示され, その Link を辿ると該当の Knowledge を閲覧修正できます.
まず削除を試したが反映されず, disabled にすると効果があったので不要なものは全て無効化しました.
恐らくキャッシュ機能か, snapshot 機能があるのでその影響と推測していますが, マニュアルを読めば正しい使用方法があるのかもしれません.
記憶(knowledge)の制御が難しい
- 適切な状況でしっかりと読み込まれているのかが不鮮明
- 必要なタイミングで読み込まれないケースがあり, 制御方法がいまいち掴めない
- 範囲を広くして必ず読み込ませるが, ルールを無視するケースもある
- branch 名のルールは明確化していたのですが, 無視するなど細かな所で逸脱が見られました
- 抽象的, 冗長, かつ長い文章になると良い結果は得られない印象でした
- Web UI からしか作成できないので管理が難しい
- 情報量が増加してくると管理の難易度が上がります.
- 実際に重複があると, 多重に通知を行うなどの行動がみられました
解決策
不明
マニュアルをしっかりとは読んでいないので, 把握できていない動作がありそうです.
web ui からではなく txt file などで Knowledge を管理させて欲しいなと...
気を利かせて, 指示を無視して作業を進める
計画を立案し結果を報告せよ
と指示した所, 無視してPR作成まで行っていました.
また, 確認して, 教えてなどお願いした場合もなぜか実装を始めるなど, 気を利かせて進める傾向がみられました
解決策
完全に解決はしていませんが 承認を待たずに作業を進める
という設定があり, こちらを無効化すると承認を待つようになります.
ただし全ての状況で待機するわけではなく, 都度, まだ実装しないでねと添えると症状は緩和されました.
knowledge に記述しておくと良いかもしれません.
所感
AIエージェントは非常に素早くコーディングしてくれますが, 完璧というわけではありません.
クセがあり, 中々思うように動いてはくれません.
まだまだ使い方を模索していく必要がありますが, 特に Devin は高額で, 他の AIエージェントも使い倒すと高額になるため少しずつ見極める必要がありそうです.
恐らく, 何ヶ月後かにはコストは下がり認識能力も向上するかもしれませんね.
補足
以下の記事に触発されております
https://zenn.dev/securenavi_tech/articles/4bce0b5b25441f
※ 当記事の画像は生成AIにより出力されたものです