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

Roo Codeにすべてを委ねるためのルール運用

Roo Codeにすべてを委ねるためのルール運用

PharmaXでは、メインでRoo Codeを使っています。医療・ヘルスケア業界向けのAIエージェントを開発するために新しく立ち上がったAX事業部では、AIコーディング・オンリーという制約で開発しています。Roo Codeにすべてを委ねるためにルールをどのように設定しているのかや、今の課題感をお伝えします。

More Decks by PharmaX(旧YOJO Technologies)開発チーム

Other Decks in Technology

Transcript

  1. (C)PharmaX Inc. 2025 All Rights Reserve 2 自己紹介 上野彰大 PharmaX共同創業者・CTO/AX事業部長

    好きな料理はオムライスと白湯とコーラ マイブームはLLMとRust X:@ueeeeniki
  2. (C)PharmaX Inc. 2025 All Rights Reserve 5 医療アドバイザーに体調 のことをいつでも気軽に相 談できる

    相談型医療体験 30種類以上の漢方薬からあ なたに合ったものを月毎に 提案 パーソナライズ漢方薬 定期的に漢方をお届けし、 一人ひとりに寄り添うかか りつけ医療を提供 継続的なかかりつけ 一生涯にわたって寄り添うかかりつけ漢方薬局「 YOJO」
  3. (C)PharmaX Inc. 2025 All Rights Reserve 7 YOJOで稼働する OTC医薬品相談 AIエージェント

    患者さまからの一次対応をすべて AIエージェントが行う(裏側では 100近いのプロンプトが稼働) 基本的にはメッセージを自動送信し、必要があれば薬剤師に承認を求める 一次的な漢方選択や、こちらから送信する体調確認などもエージェントが自律的に作成 薬剤師に重要な 返信や判断の確認を依頼 一次的な漢方選択なども行う 薬剤師が返信する場合もある AIエージェント 薬剤師 ユーザー AIが人に指示をするような体験
  4. (C)PharmaX Inc. 2025 All Rights Reserve 9 • Roo Code

    ◦ 弊社で最も使われているツール ◦ Cursorよりも”グイグイ感”が強く、より開発スピードは速いように感じるが一方で、その分暴走する & 不安定になる確率も少し高いように感じる • Cursor ◦ スコープが絞られており、与えるファイルも自分で指定できる場合は、 Cursorが最も安定性は高い ◦ エンジニアの”補助ツール”な的側面が最も強い • Devin ◦ ”人間味”を最も感じる ◦ 独立した1まとまりのまるっとタスクを任せるのには向いている気がする 上野(弊社)の AIコーディングツールの使い分け 私は下記のようにAIコーディングツールを使い分けている
  5. (C)PharmaX Inc. 2025 All Rights Reserve 10 コーディング AIエージェントの Cline

    / Roo Code 弊社もClineに最も賭けていると言っても過言ではないが、最近はガッカリが勝っている https://zenn.dev/mizchi/articles/all-in-on-cline
  6. (C)PharmaX Inc. 2025 All Rights Reserve 11 • IDE型:GitHub Copilot

    Agent, Cursor agent, Cline, Roo Code, ◦ 私の観測範囲では、現時点では使っている人が一番多そう ◦ 開発者が進捗を確認し、対話的に作業を進める • CLI型:Claude Code, OpenAI Codex ◦ Claude Codeが流行っているのは精度が高いからだと思うが、実際ちょっと見づらくない ▪ 他のタイプのエージェントが Sonnet 4使ってくれればいい話では?と思ったりしている • リモート環境(非同期)型: Devin, Cursor background agent, ChatGPT Codex, GitHub Copilot Coding Agent, Google Jules ◦ 指示したら非同期にエージェントがタスクを遂行 ◦ 現時点では不安定だが、今よりも格段に精度が向上したらこの形式が主流になる気もする ◦ PCからの作業にとらわれないので、格段に活用の場も広がりそう コーディング AIエージェントの設計パターン コーディングAIエージェントには大きく分けて下記のようなパターンがある 参考:『コーディングAIエージェントを作っているけどうまくいかなかった話〜あるいは二ヶ月本気でコーディングAIエージェントと向き合った話』
  7. (C)PharmaX Inc. 2025 All Rights Reserve 13 難しいゲームではあるが、独自のコンテキストは不 要
 =必要な情報がすべて揃っていれば複雑なアプリ

    ケーションも作ることができる 
 なぜテトリスはうまく作れるのか?を考える 参考:『Roo Clineで「一行プロンプト+@」しただけで、約15分でKubernetes上で動くテトリスゲームが無からできました』 テトリスはすでによく知られたゲームであり、 • ゲームのルール・目的
 • ブロックの形状のパターン
 • 操作方法
 • 落下速度
 など必要な情報はすべて事前に揃っている
 テトリスはAIが開発する上で必要な情報はすべて揃っている
  8. (C)PharmaX Inc. 2025 All Rights Reserve 14 開発に必要な情報の種類 開発に必要な情報を事前に揃え、各タスク実行時に必要な情報を過不足なく取ってくる必要がある 〇〇をする際には下記のルールに

    従ってください。 • ✕✕✕ • 〇〇〇 • △△△ ✕ 選択 コ ン テ キ ス ト アクション ル | ル 要件定義書 アーキテクチャ図 タスク管理ファイル ER図 関連コード 情報やルールを 取得する 必要がある 情報の認識
  9. (C)PharmaX Inc. 2025 All Rights Reserve 15 なぜコーディングエージェントを使った開発はうまくいかないのか? • 開発に必要な情報にたどり着けないは本当か?

    ◦ 必要な情報をドキュメント化しアクセス可能な範囲内に配置し、ドキュメントのツリー構造を与えればかなりの精度で取 得できる → そもそもなぜドキュメントが必要なのか?という問いに立ち返る必要がある • コーディング規約やチームのルールなどを一通り読み込んでから開発を始めるには、コンテキストサイズが足りない ◦ そもそもコーディング規約やルールというのはあくまで要約であって、原理的には会議を全部聞いて、コードを全部見れ ば理解可能なもの • “バグを出さない”というのは原理的に不可能なので、ある程度のバグを潰してくれれば嬉しい。仕様確認してテスト書いて、実 装して、テスト落として改善という反復を繰り返して欲しいが、マルチターンの性能が低い ◦ もっとマルチターンの性能・速度が上がれば人のところに上がってくる頃にはかなりのクオリティのものができているは ず →現時点では、上記2つが難しいので、ルールとワークフローを抽象化し適宜立ち戻れるドキュメントが必要かつ、 必要なタイミングで必要な情報を過不足なく与える必要がある 必要な情報が揃っていることが重要というと情報検索にばかり議論が偏るがそれだけではない
  10. (C)PharmaX Inc. 2025 All Rights Reserve 16 Roo Codeのmode Roo

    Codeにはモードが存在し、弊社ではモードごとのルールを細かく設定するという設計思想 各モードで何をするのかを定義
  11. (C)PharmaX Inc. 2025 All Rights Reserve 17 Roo Codeのmodeごとのrules Roo

    Codeにはモードが存在し、弊社ではモードごとのルールを細かく設定するという設計思想 各モードの細かいルールを記載 ・ドキュメント作成のワークフロー など
  12. (C)PharmaX Inc. 2025 All Rights Reserve 19 Roo Codeのmodeのワークフロー Roo

    Codeはワークフローを定義すれば、モードを自動で切り替えるようになっている ワークフローに従って 勝手にモードが切り替わる
  13. (C)PharmaX Inc. 2025 All Rights Reserve 21 • 要件定義書、仕様書、機能一覧、 ER図、アーキテクチャ図

    etcなどの開発ドキュメントを常に最新に保つこ とで、開発に必要な知識を保っている ◦ 当然ながらモノレポの場合は、各プロジェクトごとにドキュメントを準備 ◦ プロジェクトに途中からコーディング AIエージェントを導入する場合でも、最初にドキュメントを作成し てから取り組むようにしている • 会話履歴やADRのような”履歴管理”系のドキュメントは今のコンテキストサイズでは読み込めないので管 理するのをやめてしまった ◦ コンテキストサイズが大きくなったら、意思決定の履歴も読み込んでより精緻な判断ができるように なってくはずなので、作成しておいても損はないかも? • どのようなドキュメントを整備すべきかは随時議論・更新していく メモリーの持ち方に関する工夫 弊社ではメモリーバンクなどを使うのではなく、仕様書などを整備することでメモリーの役割を担う
  14. (C)PharmaX Inc. 2025 All Rights Reserve 22 Roo Codeの仕組みと問題点 •

    対話型コンテキストによる問題 ◦ ツールを使用した結果はユーザーの発言( AIのアクションへの反応)として扱われる ◦ 会話が積み重なったようになっていき、過去の指示を忘れ、最新の指示にも従ってくれなくなっていく ◦ 問題となっている過去の会話を取り消すこともできない • ファイル更新形式の失敗が頻発する ◦ ファイル更新はdiffを作るモードがあるが、 Sonnet以外は苦手っぽい ◦ diffを作るモードはオプショナルになっている • エディタが占有されるのでユーザーが作業できない ◦ 人間がIDEを使いたいなら別ウィンドウを起動する必要あり ◦ その割に「リファクタリングや型解決など IDE のビルトイン機能を呼び出すわけではない」など IDE型 のメリットが案外ない Roo Codeはうまくいかないことも多い 参考:『コーディングAIエージェントを作っているけどうまくいかなかった話〜あるいは二ヶ月本気でコーディングAIエージェントと向き合った話』
  15. (C)PharmaX Inc. 2025 All Rights Reserve 23 コーディング AIエージェントによる開発フロー・体験の変化 •

    ドキュメントを更新してから開発という流れを徹底するようになった ◦ AIに参照させるためのドキュメントが間違っていると、その後の AIによる開発も必ず間違うため、最 初にドキュメントを更新するスタイルが厳格化 ◦ プロジェクトに途中から AIコーディングを導入する場合でも、ドキュメントを作成してから取り組むよう にしている • AIコーディングのルールの振り返り(最低週一)を行うなど、開発前には AIコーディングのルール作りに時 間を使うようになった • ルールが共通化していくことで、少なくとも弊社ではチームや事業ごとの差分は減っていく方向性 ◦ プロジェクトごとのルールを整備する余地はあるが、面倒なので共通化したい コーディングAIエージェントによってこれまでの開発フローや体験とは大きく変わり、この流れは戻らない
  16. (C)PharmaX Inc. 2025 All Rights Reserve 24 コーディング AIエージェント課題まとめ 弊社でもかなり試行錯誤中

    • 複数リポジトリへの展開の仕方はまだ固まっていない ◦ ナレッジ・ルール管理用の専用リポジトリを作成 ◦ GitHub Actionを通じて配布 ◦ モノレポ形式でローカル環境を構築する方法も検討中 • 複数のコーディングAIエージェント間のナレッジ共有 ◦ ロックインされないように複数エージェントで共有したいナレッジはディレクトリを参照させる形式で運 用しはじめている • コーディングAIエージェント時代に適合したプロダクト開発サイクルの構築 ◦ エージェントを育てていくことが生産性の向上につながるため、プロダクト開発サイクルに組み込んで PDCAを回していきたい