🌟

LLM時代はテキスト形式でドキュメントを書く 1. ツール選定

に公開

こんなタイトルで社内勉強会を開催するので、話す内容をここにも書きます。

LLM時代のドキュメント管理

2025年はAIコーディングエージェントが登場し広まった年ですが、これからは従来のOfficeファイルではなくテキスト形式でドキュメントを管理したほうがAIとの親和性が高まるよという話です。

どのLLMツールを利用するか?(ChatGPTを利用しない理由)

ここから話すのはChatGPTのようなブラウザメインのLLMツールの事ではなく、CLINEやGitHub Copilot Coding Agent、Claude codeやCodexなどIDEやアドオン、またはCLI型で動作するAIツールのことです。本記事ではこれらのツールをAIコーディングエージェントと呼称します。

LLM単体の性能としては(裏側で利用しているLLMモデルが同じであるため)従来のブラウザツールと変わりませんが、以下が大きなメリットとなります。

  1. ディレクトリを横断的に読み込むことができる
  2. コマンドラインツールのように、軽量で素早い動作が可能
  3. こちらからの依頼に従って、ファイル作成やファイル編集をフルオートで実施してくれる
  4. プログラムの場合、テスト実行やデプロイまで実施してくれる

メリット、と上げましたが、(面倒ながら)従来のChatGPTでも同様の作業は可能でした。

  1. 普段使いのドキュメント、プログラムのライブラリをブラウザ経由でChatGPTにアップロードする
  2. ChatGPTに対してドキュメントやプログラムの修正箇所を指定し、依頼する
  3. 得られた出力を、ローカルPCにコピー&ペーストして反映する
  4. プログラムの場合、手動でテスト実行やデプロイまで実施する

ただ、このやり方は面倒だし破綻します。

いや、1回限りの修正ならいいんですよ。けど、ローカルPCにコピー&ペーストし、修正してまたChatGPTに質問したい場合、修正した版を再度ChatGPTにアップしなければいけない。普通のドキュメントって修正は1回2回じゃなく、数えられないほど修正しますよね。そのたびにChatGPTに修正版をアップして質問しますか?

プログラムの場合は、4. テスト実行やデプロイが大きすぎる。ブラウザ型の場合、手元で実行した結果のログや生成結果を全てChatGPTにアップしなければいけない。AIコーディングエージェントの場合、既にAIコーディングエージェント自身が実行結果を知っているので、自律的にエラーを修正し自動的に再実行、成功するまで何時間でも繰り返してくれます。

※ この驚異的な自己修正能力が、AIコーディングエージェントが爆発的に広まった理由でもあります。

ブラウザ型ツール・コーディングアシスタント・AIコーディングエージェントの違い
観点 ブラウザ型ツール(ChatGPT) コーディングアシスタント AIコーディングエージェント
作業単位 会話(Q&A) 行・ファイル単位の編集提案 タスク/ストーリー単位(複数ファイル・ツール跨ぎ)
UI ブラウザ/チャット IDEのサジェスト/パネル、CLI IDE/CLI
コンテキスト チャット履歴+貼付テキスト 開いているファイル/プロジェクト ディレクトリ全体
強み 誰でも使える・汎用性がある 精度の高い補完・局所編集が速い ノーコードでアプリケーション開発が可能
ディレクトリ全体を読み込ませて、文脈理解させる
既存の外部ツール連携(コマンド履歴・PR・CIログで追跡)
弱み/リスク 同じ作業の繰り返しは面倒
ファイルを利活用は煩雑
コーディングができないと使えない
"素早くコーディングができる"以上の価値はない
学習コストが高い
誤操作時のリスクが高い
向いている場面 初期検討・文章作成・要件定義 既存コードの改善・テスト追加 小~中規模の機能追加や反復的保守作業の自動実行

なぜ「従来のOfficeファイルではなくテキスト形式でドキュメントを管理したほうがAIとの親和性が高まる」のか?

AIコーディングエージェントが、Office形式のファイルに対応していないからです。仮にAIコーディングエージェントでOffice形式のファイルを読み込むようになれば話は違ってきますが、以下の2点が懸念点となります。

懸念1. AIコーディングエージェントのメイン利用者であるプログラマーが必要としていない

AIコーディングエージェントは、レッドオーシャン。各社が性能UPのために改善を重ねてます。最先端のものでもプログラマーからの要求に十分に応えられず、まだまだ改善が必要な分野です。そんな中、需要が低いと思われるOfficeファイルへの対応を行っている暇はないと考えます。

※ ネイティブ機能で実装される可能性は低そうですが、MCPなどの仕組みで読み込めるようになるかもしれません。

懸念2. テキストファイルに比べてOfficeファイルは容量が大きく、コンテキスト汚染が発生する

懸念1よりもこちらの方が根本的な問題です。LLMの仕組み上、プロンプトや読み込むファイルの多さ・長さが増えるほど、1つ1つに対する注目度が下がり、不正確な結果が出力されます。よって、LLMに依頼する時は、出来るだけ短く内容の詰まったプロンプトを用意したり、読み込ませる外部ファイルを限定させ、必要な部分だけを読み込ませるようにします。

このような苦労をして1文字でもよけいな文字列をLLMに投げないようにしようとしている中で、メモ帳とWordで、同じ「あいうえお」と書いたファイルがあります。

テキストファイルだと15バイト

Wordファイルだと13,616バイト

Officeファイルというだけで、LLM視点だと超大容量ファイルの割に中身がスッカスカのものとなり、コンテキストが汚染されてアウトプットが著しく低下します。

以上に理由より、AIコーディングエージェントを利用する場合、当面はテキスト形式でドキュメントを管理した方がよい、と言えます。

どのAIコーディングエージェントを利用するか?

2025年、世はAIコーディングエージェント時代、ということで、数10種類のAIコーディングエージェントがリリースされています。

CLI型 アドオン型 エディタ型
Claude Code Cline AWS Kiro
Gemini CLI GitHub Copilot Agent Mode Cursor
Codex CLI GitHub Copilot Coding Agent Devin
GitHub CLI JetBrains Junie Replit Agent
Cursor CLI Jitera Windsurf
Goose Roo Code
Jules Tabnine
OpenHands
Rovo Dev
OpenCode(opencode)

AI駆動開発ツール:コーディングエージェントとTextToAppまとめ(2025年9月版) - Publickey

有名どころは以下だと思います。

  • Claude Code
  • Gemini CLI
  • Codex CLI
  • Cline
  • Github Copilot系
  • Cursor

この記事ではGithub Copilot系(Github Copilot Coding Agent)を前提に進めていきます。

理由は以下。

理由1. 無料で使い始めることができる

回数限定ですが、無料で使えるので試しに使うのにぴったりです。Claude CodeやCodex CLIはサブスク契約か従量課金が必要となります。

理由2. エンタープライズ環境で採用されやすい = 会社で使い始めやすい

普通のIT企業はGithubやそれに準ずるサービスを使っているでしょうし、GithubのAIコーディングエージェントです、で説明がつくと思います。例えばClineの稟議を通すとすると、上司は名前を知らないし、開発している会社ってどこ…?って感じで説明に苦労します。

GithubはMicrosoft傘下ということで、プライバシーや情報管理面でも安心して使えますし、実際、Githubの服部さんも「SNSではClaudeやGeminiが盛り上がってるけど、一番利用者が多いのはGithub Copilot Coding Agent」って言ってました。

理由3. CLI型は取っつきづらいので、始めるならアドオン型・エディタ型がよい

私も今となってはClaude CodeやCodex CLIを使っていますが、最初はCILNEをずっと使っていました。AIコーディングエージェントという新概念を使い始めるだけでも大変なのに、Claude CodeやCodex CLIはWSL2の概念やLinuxの操作、設定ファイルの書き方など覚えることが多いので、心理的負担を少しでも減らすべく、アドオン型・エディタ型から始めるのがいいと思います。

そういった意味ではCursorはいいとこついてますね。

理由4. トップクラスのAIコーディングエージェントの性能は似たりよったり

正直言うと、Claude CodeとCodex CLIが頭1つ抜けている気がしますが、AIコーディングエージェントというだけで性能はある程度保証されているので「性能」の優先度は低くして良いと思います。

以上の理由より、Github Copilot Coding Agentを利用して進めます。

ちなみにメジャーなAIコーディングエージェントのトレンドは以下となっています。

Discussion