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

コンテキストエンジニアリング入門〜AI Coding Agent作りで学ぶ文脈設計〜

コンテキストエンジニアリング入門〜AI Coding Agent作りで学ぶ文脈設計〜

zawakin (Yuki Miyake)(株式会社ナレッジワーク AIエンジニア)
X:https://x.com/zawawahoge

2025/10/15サポーターズ主催イベントでの登壇資料です。
https://supporterz-seminar.connpass.com/event/369561/

<概要>
日々の開発や業務で生成AIを使うとき、「思ったように動いてくれない」「指示が伝わらない」と感じたことはありませんか?
その原因の多くは、AIに与える“文脈”の設計にあります。
本勉強会では、この課題を解決する考え方=「コンテキストエンジニアリング」を解説。
具体例としてAI Coding Agentの構築を題材に、実務に直結する文脈設計のポイントを紹介します。
明日からのAI活用をスムーズにするための入門編です。

<プロフィール>
株式会社ナレッジワークで、自社開発BtoB SaaS「ナレッジワーク」の多数AI機能開発・導入を経験。
現在はAI技術戦略策定、AIエージェント開発、組織イネーブルメント(社内AI活用推進含む)に従事。
「より良いAIとの対話」を探求し、LLM Prompt最適化OSS開発や記事執筆も行う。
AIの可能性を信じ、その普及を目指す。X(@zawawahoge) にてAI基礎知識や最新動向を発信中。

More Decks by KNOWLEDGE WORK / 株式会社ナレッジワーク

Other Decks in Technology

Transcript

  1. © Knowledge Work Inc. 自己紹介 zawakin (@zawawahoge) 株式会社ナレッジワーク AIエンジニア エキスパート

    (2020年入社) 自社開発BtoB SaaS「ナレッジワーク」の AI機能開発・導入を 多数経験。 現在やっていること • AI技術戦略策定 • AIエージェント開発 • 組織イネーブルメント(社内 AI活用推進含む) 2
  2. © Knowledge Work Inc. Profile 会社概要 3 Profile 会社概要 創業日 代表者

    事業内容 2020年4月1日 麻野 耕司 ナレッジワークの開発・提供
  3. © Knowledge Work Inc. Agenda 目次 4 • はじめに •

    課題:コンテキストウィンドウには制約がある • 解決策:コンテキストエンジニアリング • 実践編: AIコーディングエージェントを構築してみる • まとめ
  4. © Knowledge Work Inc. Agenda 目次 5 • はじめに •

    課題:コンテキストウィンドウには制約がある • 解決策:コンテキストエンジニアリング • 実践編: AIコーディングエージェントを構築してみる • まとめ
  5. © Knowledge Work Inc. • 様々な企業が「 AIエージェント構築」を進めている ◦ OpenAI “AgentKit”

    ◦ Google Cloud “Gemini Enterprise” ◦ … AIエージェント開発・利用の加速 8
  6. © Knowledge Work Inc. 念の為:”Context” とは ”Context” とは 辞書的には (Cambridge

    Academic Content Dictionary) • 何かが存在したり起こったりする状況。それを説明するのに役立つも の。 • 特定の出来事や状況に関連する影響や出来事。 ref. https://dictionary.cambridge.org/dictionary/english/context 本発表では、 Context = モデルが「今の回答を生成する際に参照できる情 報のすべて」 とします。 11
  7. © Knowledge Work Inc. 12 Context Window AIエージェントを動かす心臓部:「 Context Window」

    ref. https://docs.claude.com/en/docs/build-with-claude/context-windows
  8. © Knowledge Work Inc. 13 Context Window AIエージェントを動かす心臓部:「 Context Window」

    ref. https://docs.claude.com/en/docs/build-with-claude/context-windows
  9. © Knowledge Work Inc. ようするに Context Window とは Context Window

    とは、 ”LLMに入力できるトークン数(文字数)の上限 ” のこと! → 大きな入力に限界がある 14
  10. © Knowledge Work Inc. 参考:Context Window の感覚をつかもう 2年(2023年→2025年)で30倍大きくなっている! しかし上限がある •

    芥川龍之介 羅生門(青空文庫)が大体4kトークン (1k=1000) • 最新のモデル ◦ GPT-5: 128kトークン ◦ Gemini 2.5 Pro: 1,000kトークン(1Mトークン) ◦ Claude: 200k トークン • 2023年のモデル ◦ gpt-3.5-turbo: 4kトークン 15
  11. © Knowledge Work Inc. Agenda 目次 17 • はじめに •

    課題:コンテキストウィンドウには制約がある • 解決策:コンテキストエンジニアリング • 実践編: AIコーディングエージェントを構築してみる • まとめ
  12. © Knowledge Work Inc. イメージ図: LLMに渡す際には狭い Context Windowを通るしかない 20 Context

    Window 膨大な一次情報 LLM に渡すために狭い窓を通るしかない
  13. © Knowledge Work Inc. Agenda 目次 23 • はじめに •

    課題:コンテキストウィンドウには制約がある • 解決策:コンテキストエンジニアリング • 実践編: AIコーディングエージェントを構築してみる • まとめ
  14. © Knowledge Work Inc. イメージ図:いい感じの中間表現を経由して、賢く文脈を組み立てる 25 Context Window 膨大な一次情報 Context

    Window に重要な情報を詰め込む情報設計 =コンテキストエンジニアリング いい感じの中間表現
  15. © Knowledge Work Inc. アプローチ 2: 蓄積された記憶から情報を得る (Memory) 28 蓄積された記憶・ルールから

    ”必要な分だけ ”情報を得る 長期記憶 プロジェクト ルール 会話
  16. © Knowledge Work Inc. Agenda 目次 30 • はじめに •

    課題:コンテキストウィンドウには制約がある • 解決策:コンテキストエンジニアリング • 実践編: AIコーディングエージェントを構築してみる • まとめ
  17. © Knowledge Work Inc. 33 スコープ設定: あくまでコンセプト検証用であり、 「完全体」は目指さない Claude Code

    などすでにあるが、 「車輪の再発明」をする(教育用) 本発表でのスコープ
  18. © Knowledge Work Inc. ざっくりとした要件 • コア機能: ◦ ユーザーと対話しながら、コーディングタスクを自律的に実行する AIエー

    ジェント。 ◦ ファイル検索、読み取り、書き込みといったローカルの機能を「ツール」とし て呼び出せる。 ◦ Web検索など、 Anthropic側が提供する「サーバーツール」も利用できる。 ◦ 複数のファイルを同時に読み込むなど、作業を効率化するための「並列 ツール実行」に対応する。 • 実行環境: ◦ コマンドライン( CLI)でチャット形式で操作できる。 34
  19. © Knowledge Work Inc. 手順 全部は書きませんが、大体こんな流れでやりました。 1. 今回の発表の内容全体を GPT-5 に渡して、「以下の内容の勉強会でのデモを

    実施するための Python のソースコード設計を出してください。」 2. 設計を Claude Code にコピペして実装をしてもらう 3. 動作を確認する 4. コードリーディング 35
  20. © Knowledge Work Inc. 📤 Sending request to Claude (turn

    1)... 🔧 Executing 1 tool(s)... ├─ search_files: {'pattern': '*', 'limit': 200} 📤 Sending request to Claude (turn 2)... 🔧 Executing 1 tool(s)... ├─ search_files: {'pattern': '**/*', 'limit': 200} 📤 Sending request to Claude (turn 3)... 🔧 Executing 5 tool(s)... ├─ read_file: {'path': 'README.md'} ├─ read_file: {'path': 'src/auth/login.py'} ├─ read_file: {'path': 'src/auth/register.py'} ├─ read_file: {'path': 'src/products/catalog.py'} ├─ read_file: {'path': 'src/utils/validation.py'} 📤 Sending request to Claude (turn 4)... アプローチ 1: 外部の世界から情報を得る (Tools) 37 search_files read_file
  21. © Knowledge Work Inc. 学び • 200ファイルを超えるリポジトリを どう探索するかが LLMの気まぐ れになるので、明示的に指示す

    る必要がある。 • ファイル読み込みが増えてくると 会話が長くなるので圧縮した方 が良いかも。 アプローチ 1: 外部の世界から情報を得る (Tools) 38 search_files read_file
  22. © Knowledge Work Inc. • 再現性の確保 ◦ デモを繰り返しても元のコードが変更されないように、実行時にリポジトリのコピーを一時 ディレクトリに作成して動作するエフェメラルモードを実装しました。 •

    安全性強化 ◦ 誤ってファイルを書き換えないよう、デフォルトでは読み取り専用とし、書き込みは明示的 に許可する方式に変更。 ◦ 書き込みが許可された場合も、指定された安全なディレクトリ( demo/workspace/)にし か書き込めないように制限。 • ユーザー体験の向上 ◦ 処理中にユーザーが不安にならないよう、スピナー( "Thinking...")を表示。 (スキップ可能)対話の中で実装したこと 39
  23. © Knowledge Work Inc. save_memory ツールを導入 会話の中で「保存すべき」記憶をmemory ツールを通じて project rootの

    AGENTS.md に append で 保存するようにする アプローチ 2: 蓄積された記憶から情報を得る (Memory) 40 長期記憶 プロジェクト ルール
  24. © Knowledge Work Inc. You: このプロジェクトに関する返答には "だゾ" をつけるルールにします Agent: 📤

    Sending request to Claude (turn 1)... 了解したゾ!これからこのプロジェクトに関する返答には「だゾ」をつけて話すゾ。 何かお手伝いできることはあるかゾ?コードの作成、バグの修正、リファクタリング、または他の作業について教えてほしいゾ! You: save it Agent: 📤 Sending request to Claude (turn 1)... 🔧 Executing 1 tool(s)... ├─ save_memory: {'content': 'User preference: All responses related to this project should end sentences with "だゾ" (... 📤 Sending request to Claude (turn 2)... 保存したゾ!これからはずっとこのルールを覚えておくゾ! 実行例 41
  25. © Knowledge Work Inc. セッション起動時、AGENTS.md がある場合、システムプロンプトに以下が追加され る。 <agent_memory> The following

    contains learnings and important information from previous sessions: {memory_content (AGENTS.md から読み取られるルール )} </agent_memory> 実行例 42
  26. © Knowledge Work Inc. delegate_taskツールを導入 会話の中で、subagentにサブタスクを委譲 するツールを追加し、それが選ばれると、別 に会話セッションを作り実行する。 → オリジナルの会話セッションに

    サブタスクの実行詳細が残らないので メインの会話に集中できる! アプローチ 3: 情報を加工して新たな情報を得る (Processing) 43 オリジナル セッション 委譲された セッション タスク タスク タスク タスク 実行詳細 実行詳細 実行詳細 結果
  27. © Knowledge Work Inc. 動作例 45 📤 Sending request to

    Claude (turn 1)... (略) 📤 Sending request to Claude (turn 3)... 🔧 Executing 2 tool(s)... ├─ delegate_task: {'task': 'プロジェクトのファイル構成を「アーキテクチャの視点」から分析してくださ い。具体的には: \n1. ディレクトリ構造とモジュールの階層 \n2. 各ディレクトリの役割と責務\n3. アー... ├─ delegate_task: {'task': 'プロジェクトのファイル構成を「開発者体験・実装の視点」から分析してくだ さい。具体的には: \n1. 各ファイルの具体的な機能と実装内容 \n2. 使用されている技術スタック、ライブラ リ... 📤 Sending request to Claude (turn 4)... 完璧です!二つの視点から並列分析が完了しました。以下、要約をお届けします。...
  28. © Knowledge Work Inc. • 学び1: 各動作の意味を体感しながら実装できた • 学び2: 小規模リポジトリなら特に圧縮も使わず動く

    • 学び3: サブエージェントの起動を会話セッションを引き継ぐかどうかは 悩ましいとわかった このデモからの学び 46
  29. © Knowledge Work Inc. Agenda 目次 47 • はじめに •

    課題:コンテキストウィンドウには制約がある • 解決策:コンテキストエンジニアリング • 実践編: AIコーディングエージェントを構築してみる • まとめ
  30. © Knowledge Work Inc. • AIとの対話は、体系的な「システム設計」(ツール設計)へと進化する。 • 私たちができるのは、一つ一つ AIに情報を与えるのではなくて、 AIが自

    ら情報を「取りに行ける」環境をデザインすること。 • 「環境設計」は無限に工夫の余地があるので、この知的好奇心で試し てみるのが一番面白い まとめ 48