0,はじめに
この記事は技術継承担当のAIキャラを作りたい!②の続編です!
②以降に作成した新機能や生成AIなんでも展示会Vol.3(04/26)から生成AIなんでも展示会in京都(06/07)で更新した内容などについてまとめられたらと思います!まだ①②を読んでいない方は先にそちらを読んでいただくことを推奨します。
1.コーディング機能(04/26)
画像だと見づらいかもしれませんがチャット欄で「会話モード」と「コーディングモード」を切り替えられるようにしました。コーディングモードではロボットサッカーで使用しているサッカーロボットのプログラムを自然言語だけで書き変えて動かすことができるようになっています。
このシステムに関しては記事があまりにも長くなってしまうので最新版のコーディングシステム(ロボット管理システム)について後日別の記事を作成する予定です。
じゃあ展示は成功したの?
NO!! 最低限は動きましたがロボットを扱う機能については絶望的なものでした
- ロボット側に通信キャッシュがたまりすぎて停止が反映されず動き続ける
- コード変更をお願いしても9割エラーで失敗する
- 仕様としてコーディングと会話で分けてるとノアにお願いしてる感が損なわれる
- 修正しようにもそもそもファイル設計が絶望的にひどすぎて常に違うバグが生まれる
会話モードが安定していたためなんとか展示として成り立ちましたが、これでは当初の目的である世代を超えた継続的な開発は到底叶いませんしこの問題を解決しなければ拡張性も保守性もないので大規模なアーキテクチャ改善をおこなうことにしました。
2.アーキテクチャ改善(06/07)
まずはこの改善前と改善後のアーキテクチャの図をご覧ください
見るからに構造が変化しています。
このアーキテクチャ改善では拡張性と拡張性を担保するために単一ファイル単一責任の原則やモジュラー設計を意識させてバックエンド全体をclaude4様に全面改修させました。claude4が出る以前Gemini2.5proを利用していた時は行数が1000行を超えるとコンテキストに入ったとしても大分性能が下がってしまうような印象がありました。しかしこの大規模な改修によって一ファイルで多くても600行以内に収まるようになり、大分安定してコーディングできるようになりました。(僕じゃないよAIが)
またノアにMCPクライアントとしての役割を持たせることで追加機能が複雑に絡まらないように改修し、コーディング機能についても独自のMCPサーバーを構築して接続する方式に変更しました。
3.ディスコードRAG(06/07)
ここディスコード周りの開発経験が僕よりもあるメンバーにぶん投げました。
既に記事にしてくれているのでこちらを読んでいただけると幸いです。
4.フロントエンド改善(06/07)
これは京都で展示するときに前回から変化がなさすぎると二回目に見る人がつまらないだろうなと思ったので急遽前日に行いました。サルドラさん(@sald_ra)の制作したサイトで利用されているarwesというUIフレームワークの雰囲気が好みだったので使わせていただきました。デバッグモード時にUI全体が黄色色に発光するのがかっこよくて気に入っています。
5.展望
なんやかんやで私が部活を卒業するまでもう一二か月程度になりました。技術継承を掲げて開発を始めたNoahProjectもそろそろ完成させないといけません。機能としてはほとんど完成していますが唯一残された鬼門はノアに声を与えることです。展示会の交流会の中で「声を決めるときには戦争が起きる」ということを教えていただいたので引退する前にどうにかそこまでは終わらせたいと思います。できたら文化祭までに終わらせたい!!(既に三日前)