自分用メモ
AITuber OnAirでコア的な役割を担う処理を、外部パッケージに分離させる作業をしている。
AITuber OnAirのソースコードは公開していませんが、AITuber OnAirの会話に関する機能は現在モジュール化を進めており、後々オープンソースにしようと考えています
— Yuki Shin🎥💫AITuber配信サービス作ってます (@shinshin86) March 12, 2025
自分だけのAITuberを開発してみたい方が、会話部分の実装にこちらを活用してもらえたら嬉しいです pic.twitter.com/e4UGwAJXvg
このソースコードは、開発スピードを最優先して作られた機能でもあるため、設計がしっかりしておらず、予想通りパッケージとして分離させる作業は大変。
(パッケージとして分離させたあとも、しばらくその状態は続く予定)
こういったケースでのパッケージ移行作業は本当に大変で、パッケージ内を疎結合にしたいのに外部と密結合していて、うまく分離できないケースがままある。
今回、この作業を行うに当たって、Cursorのagent機能をフル活用して進めることにした。
AIエージェントをフル活用してコードを書いていく経験を積みたかったというのもある。
さて、そんな作業を進めるうえで意識したことは以下。
細かくドキュメントを残す
テストを書けるところは書いていく(というかAIに書いてもらう)
- ドキュメント同様、テストもあればあるだけ良い。今回は無理せず、作成できそうなところから進めている。
examplesディレクトリ配下にサンプルコードを書いてもらい、そこをドキュメント的に参照してもらいながら作業を進めるコーディング規約などはCursor用に
.cursor/rules/foo.mdcで定義- 基本的に
mdcファイルもCursorに書いてもらう。ある程度チャットでやり取りしたあと、開発を進める上でのルールが固まれば「mdcに書いて」と依頼すれば書いてくれる。
- 基本的に
このような感じで、基本的にドキュメントやテストなどはすべてAIのためにもちゃんと書く、という意識を常に持っていた。
私自身、記憶力はポンコツなので、何か仕様が変わるようなことがあれば都度ドキュメントを更新してもらい、自分の記憶が薄れてもAIがなんとかしてくれる(なんとかしてくれそうな)状況を常に意識して作業した。
結果、目立ったトラブルもなく、予想よりも順調に作業は進められている。
AIエージェントと共に行うコーディングでは、作業に必要な情報をどのようにAIへ共有するかが重要かも、と思った次第。