お疲れ様です、ゆきおです
最近、バイブコーディングというものに取り組んでおりまして
Mastraを使ったサンプルアプリの構築をGemini CLIを導入してやってみよう!と思ったものの
何かとエラーにハマるわなかなか実装が上手くいかないわで日々頭を抱えています。
そこで今回はバイブコーディングを実施する上でこうしたら良いんではないか?というのを忘れないうちにアウトプットしておこうと思った次第です。
まず問題としてぶち当たったのが、Mastraという新進気鋭のフレームワークです。
更新が激しく、かつここ一年くらいで盛り上がってきたフレームワークなので、GeminiだろうがClaudeだろうが学習のカットオフが2025年初頭〜半ばくらいですので、知らないことがたくさんあるわけですね。
情報の鮮度を高めるためにどうしようかと思っていたのですが、Tavilyという何とも便利なAI向け検索エンジンがあります。
AIに使わせることに特化した検索エンジンですね。
無料アカウントで即APIキーが発行され、月1000リクエストまで無料です。
んで、AIがチャットだけでなくいろんな機能にアクセスするためのプロトコルである「MCP」というものがあり、そのMCPサーバーももちろん利用可能
つまりGeminiCLIやClaudeCodeに設定すればTavily APIを使ってまるで人間がリアルタイムに検索して情報を集めるが如く情報収集が可能なわけです。
これで公式ドキュメントなど調査させて鮮度の高い情報を手に入れることができます。
それを.md形式でまとめさせて、エージェントに参照させるって流れですね。
それに味を占めてTypeScriptやReact、Honoなど色んなことを調べさせてコーディングや設計のベストプラクティスを.mdファイルにまとめてローカルに持っておくことができます
情報収集が終わったら次のステップ、Skillsの設定です。
各CLIエージェントはSkillsという便利な機能を持っています。
GeminiCLIだったら.gemini/skills/というディレクトリ構成でプロジェクトに作成すればそのスキルが遺憾無く発揮されます。
/coderというSkillsを作成し、Tavilyで収集した鮮度の高い情報を/referencesに格納して、SKILL.mdにハイレベルなシニアエンジニアとしてのシステムプロンプトを定義することでつよつよエンジニアが爆誕するのではなかろうかと踏んでおるわけです。
もちろんこれだけではなく、/reviewerや/testerなど作ってプッシュ前にレビューしてもらったりテストを実行したり、AIがモリモリ書いたコードの品質を担保するための仕組み作りも狙っております。
アプリの要件や設計、ディレクトリ構成などを.md化して前もってプロジェクトに配置して、それを読み込ませることで人間が実装を追いかけやすくしたり品質を担保したりと試行錯誤していたんですが、肝心の実装でグタグタしてしまったのでこのようなTavilyとの掛け合わせを試してみました。
またMCPやSkillsというのはClaudeCodeやGeminiCLI、CodexのようなCLIエージェントでは共通項なはずなので、ローカルにこういったナレッジを持っておくことで即適用することができるというのも美味しいところですね。
これでどのような効果が得られるか、今後試していきたいと思います。
