🤖
ClineをDevin化して、slack上で完結させるための検証してみた
DoneとTodo
やっていること
- ユーザーへの返答をslackで受け取る
- slackから /approve /rejectが送れる
- タスクごとにスレッドが分かれるので、複数立ち上げても別々に使える
- タスクの初回送信をslackから行うこと(面倒なのでcut、メソッドも用意されているし簡単ではある)(更新 1/15)
できていないこと
- /approve, /reject以外の処理
- ユーザーの返答のformat
- ポーリングで無理やりスレッド監視しているので、websocket化など
検証したリポジトリ
実行例(適当ですみません)
実装方針
- 最初はslackのboltを組み込んで実行しようとした
- どうも立ち上げはうまくいくが、その他の部分が密になっていて難しそう
- 内部的にMCPを呼び出せば応答がうまくいくことがわかった
commit説明
cleanupMessageForSlackをしないと、ノイズのようなデータがすごく乗るので一旦json全部削除した(これにより一部のデータを受け取れなくなっているので要修正)
3sごとのポーリングでスレッドを監視、タスクの終了時にこのwatchThreadRepliesは破棄される
スレッドの内容に応じてhandleWebviewAskResponseで対応する
感想
Devinくらいまで自律は難しいかもしれないが、この上のレイヤーでもうまいことワークフローを組んであげれば
$500も払わなくても自前で構成できそうだなと思った。
ちなみに一行も手で書いてないです。cursor Agent万歳
Discussion