Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIネイティブスタートアップが実践するAI駆動開発

1.2k

 AIネイティブスタートアップが実践するAI駆動開発

Avatar for 森本タカヒロ

森本タカヒロ

May 12, 2025
Tweet

Transcript

  1. AIのための開発基盤を整える LLMが 得意な言語やフレームワークを利用する Stack Overflow や GitHub がLLMの学習元 であるため LLMにはナレッジカットオフがあり、

    最新のライブラリの知識がない バージョンを混同する Cursorのdocs機能を使えば克服でき る Typescript(Javascript) Pythonが有力 枯れたフレームワークを使用 ソース: https://arxiv.org/abs/2503.17181v1
  2. 設計 計画 実装 Reasoningモデルに設計させる 設計〜実装の流れ いきなり コーディングしない o3でまずは仕様を深掘り MD化 MD化

    覚えておきたいプロンプト 「仕様の抜け漏れや考慮不足はありますか?」 その仕様の詳細な実装計画を 立てる あとは、その計画に従い実装
  3. Agent でコード生成を回す エージェントをハンドリングする 実装計画が立ったら、あとはAgentに任 せて実装していくだけ 実装してほしくない挙動をしたら、それ をDocsに追加していく コーディングではgemini-pro-2.5 / Claude

    3.7 Sonnetが有力 違うなと思ったら、何度も出力させる (ガチャ) 。3回以上実行して、違和感が あるなら入力しているものが間違えてい る。 編集範囲が被らないのであれば、マルチ タブ & git worktreeもおすすめ。
  4. AI 駆動開発して失敗した話 AI 駆動開発して失敗した話 環境構築がうまくできない。monorepoとかな ら尚更 実装計画がうまく立てられずに詰み 今まで記述されてきたコードベースがいいもので ないなら、いい出力は得られない プロジェクトのコンテキストを読み込むため、ど

    うしてもプロジェクトの書き方に引っ張られる。 例:ORMで書かれていたところと、生SQLで書かれていたところが別れ ていた。たまに生SQLで書いていたところを参照してしまい、ORMで記 述してほしいのに生SQLを生成してしまった。 一から小規模以上のプロジェクト開発 by devin Garbage in, Garbage out 非エンジニアが 小さいアプリを作るならReplitがいい Replitなら最初からスタックが決まっているので、環境構築につま づくということがない。1〜3ページのプロジェクトならOK。デプ ロイもしてくれる。 サンプルコードを示す or AIで1から作り直す
  5. Index プロジェクトのアーキテクチャや設計意思決定に関す る重要なコンテキストを保持 コードや機能の進化を文書化 プロジェクト固有の慣習や要件を維持 AIがより一貫性のある、コンテキストに即したサポート を提供できるようにする Cline のMemory Bank

    機能とは? CursorのようなAIアシスタントは、セッション間で記憶を本質的に保 持しないため、Memory Bankは開発者が包括的なプロジェクトコンテ キスト、進捗履歴、アーキテクチャ上の意思決定、主要な技術仕様を文 書化し維持するための構造化された知識リポジトリとして機能します。
  6. Index Cursor に Memory Bank 代替を入れる Memory Bankのディレクトリ構造を作成する プロジェクトルートにmemory-bank/ディレクトリを作成し、必要なMarkdownファイルを整理します。 Cursorルールを設定する

    .cursor/rules/ディレクトリにcore.mdcとmemory-bank.mdcファイルを作成し、AIの動作ルールを定義します。 Memory Bankファイルを初期化する プロジェクト概要、アーキテクチャ、コンポーネントなどの基本テンプレ ートを作成します。 CursorがMemory Bankを使用するようにトレーニングする Cursor、Memory Bankファイルを読み込むよう促します。 定期的に維持し更新する 重要な変更後にMemory Bankを更新し、正確性を確保するために定期的 にレビューします。
  7. Index 全部モノレポで管理しよう(再掲) ワークスペース例(Web + Native(iOS / Android)+ API) これらを一つのワークスペースとして管理することで サービス仕様を複数箇所に記述せずに済みます

    デプロイはそれぞれ別のDockerfile.apiや Dockerfile.webを作成すればOK その他にも... WebとAPIは bun workspaces によって 相互に呼び出しつつ、DB設定を 切り出すのもありだと思います
  8. Index +αの設定Tips システムプロンプトに以下を設定しよう 01 定期的に Memory Bank を見にいくように指示を記載 02 重要なサービス仕様を見つけた場合、Memory

    Bank に追記するよ うに記載 03 その他設定のところに、なるべく具体的に採用技術を記載する   (できればLLMに何も指定しなくても出力する方向性に従う)