Slide 1

Slide 1 text

2025年夏 コーディングエージェントを 統べる者 2025/9/5 CNCJ: コーディングエージェント × セキュリティ ミートアップ @nwiizo 15min #CNCJ

Slide 2

Slide 2 text

nwiizo 株式会社スリーシェイクで プロのソフトウェアエンジニ アをやっているものです 格闘技、読書、グラビアが趣味 でよく本を紹介しています 人生を通して"運動、睡眠、読書"をきちんとやりたい 2

Slide 3

Slide 3 text

about 3-shake 3

Slide 4

Slide 4 text

We are Hiring!! 3-shakeは一緒にSRE界隈を盛り上げてくれる仲間を大募集中です! Mobility、FinTech、通信など大規模SREを存分に経験できます (最近社内はGenAI / GPU / Kubernetesが盛り上がってます) 是非、カジュアル面談しましょう!!!! 4

Slide 5

Slide 5 text

こちらのブログを再編しております https://syu-m-5151.hatenablog.com/entry/2025/07/29/195608 5

Slide 6

Slide 6 text

AI Agentsの現状 6

Slide 7

Slide 7 text

Agent とは行為者性(Agency)を持つ存在 基本的な能力 環境認識能力: テキスト、画像、構造化データの理解 推論能力: 複雑な問題の段階的分解 行動実行能力: API呼び出し、ファイル操作、コード生成 自律的なサイクル 観察 → 判断 → 実行 → フィードバック 7

Slide 8

Slide 8 text

2025年の実装状況 AI Agents の進化は、自動車の自動運転レ ベルに似た段階を経て進化しています レベル 段階 具体例 人間の役割 0 手動作業 AIの支援なしでの伝統的な作業方法 全て実行 1 AIチャットサポート LLMが情報提供や助言を支援する 主導的実行者 2 部分的自動化 GitHub Copilotや自動翻訳のような部分的な補完 補完を活用する実行者 3 人間の確認付きエージェント AIが主に作業し、人間が確認・修正を行う 監督者・レビュアー 4 自律エージェント AIが自律的に作業を行う 最小限の介入 5 完全自動化 要求からプロセス全体を自動生成する 要求定義者 8

Slide 9

Slide 9 text

2025年の実装状況 開発環境について 2025年の開発環境は、主にレベル3〜4の間で 推移しており、 「副操縦士(Copilot) 」から「操 縦士(Pilot) 」へと主役が交代しつつありま す。 チャットボットやコーディングエージェントな ど様々なAIエージェントが自作できるようにな ってきています。 9

Slide 10

Slide 10 text

2025年の実装状況 自律的なコード生成・修正・最適化の実現 Claude Code やCodexをはじめとしたコー ディングエージェント大乱戦時代 Devin(Cognition AI)による統合開発環境 Cursor、GitHub Copilotの進化 10

Slide 11

Slide 11 text

2025年の実装状況 コーディングエージェント以外については レベル2〜3の過渡期 データ分析、文書作成、カスタマーサポート 人間の監督下での部分的な自動化 今後の展望: 2027年までに多くのサービスがレベル3に到達 するのかなぁって思います 11

Slide 12

Slide 12 text

プログラミングパラダイムの変化 Software 3.0時代の到来している。 コードを書くことから、意図をコンテキストとして設計することへ 変化が起きている 時代 特徴 主な作業 開発者の役割 1.0 命令的プログラミング コードを書く 実装者 2.0 機械学習 データを準備する トレーナー 3.0 自然言語プログラミング 意図を設計する 設計者 https://blog.riywo.com/2025/06/enjoy-software-3_0-era/ 12

Slide 13

Slide 13 text

プログラミングパラダイムの変化 「何を実現したいか」という意図を正確に伝えることが、 「どのように実装するか」と同じくらい重要になっています。 13

Slide 14

Slide 14 text

コンテキストエンジニアリング 14

Slide 15

Slide 15 text

プロンプトエンジニアリングを超えて 従来のアプローチ 「TypeScriptでTodoアプリを作って」 現在のアプローチ プロジェクト構造 + 既存コード + コーディング規約 + 技術スタック + チームの慣習 + ビジネス要件 どのように意思を込めるかが大切になってきた「コンテキストエンジニア」と呼びま す https://blog.langchain.com/context-engineering-for-agents/ 15

Slide 16

Slide 16 text

シングル vs マルチエージェントの協調 16

Slide 17

Slide 17 text

それぞれの強みと適用領域 シングルエージェント 一貫性が重要なタスク 新規実装・リファクタリング API設計・データモデル定義 統一的なコードベース管理 マルチエージェント 並列化可能なタスク 多角的なコードレビュー テスト生成とバグ修正 異なる観点からの最適化 17

Slide 18

Slide 18 text

コンテキスト共有の問題 「コーディングのように全てが一貫している必要があるタスクでは、マルチエージェン トのコンテキスト共有問題が致命的になる」 暗黙の決定の例 命名規則(camelCase vs snake_case) ライブラリの選定 デザインパターンの選択 エラーハンドリングの方針 これらが共有されないと、システム全体が破綻する 18

Slide 19

Slide 19 text

タスクの効果的な分割戦略 19

Slide 20

Slide 20 text

読み込み vs 書き込みタスク タスクの特性に応じて、シングルとマルチを使い分ける タスク種別 特性 推奨アーキテクチャ 例 読み込み中心 並列処理可能 マルチエージェント コードレビュー、セキュリティ監査 書き込み中心 一貫性必須 シングルエージェント 新規実装、リファクタリング ハイブリッド 段階的処理 フェーズ別切り替え フルスタック開発 20

Slide 21

Slide 21 text

開発における段階的アプローチ 1. 分析フェーズ(マルチ) ├── 要件分析エージェント ├── 既存コード解析エージェント ├── 依存関係分析エージェント └── Ticket起票エージェント 2. 実装フェーズ(シングル) └── 統合実装エージェント 3. 検証フェーズ(マルチ) ├── テストエージェント └── レビューエージェント 21

Slide 22

Slide 22 text

エージェント間の連携メカニズム 22

Slide 23

Slide 23 text

Claude Code sub-agentsの実装 name: code-reviewer description: コードレビュー専門エージェント tools: Read, Grep, Glob, Bash --- あなたはシニアコードレビュアーです。 品質、セキュリティ、保守性を確保します。 連携パターン 順次実行: 開発 → レビュー → テスト 並列実行: 複数の観点から同時分析 条件分岐: 問題の種類に応じて専門家へルー ティング あくまで例として出しているだけです。MCPや他の仕組みでもいいと思っています。 https://docs.anthropic.com/en/docs/claude-code/sub-agents 23

Slide 24

Slide 24 text

セキュリティに関するエージェントの例 https://github.com/anthropics/claude-code-security-review 24

Slide 25

Slide 25 text

コンテキスト共有の4戦略 コンテキストの共有は、エージェントの協調における最大の課題の一つです。以下の4 つの戦略を組み合わせて使用することで、効果的なコンテキスト管理が可能になりま す。 戦略 目的 実装方法 Write 情報の記録 決定理由、変更履歴の構造化 Select 動的取得 関連ファイルの選択的ロード Compress 要約・圧縮 長大な議論の要点抽出 Isolate タスク分離 独立したコンテキストウィンドウ 25

Slide 26

Slide 26 text

実装時の設計トレードオフ シングル vs マルチ vs ハイブリッドの選択は、タスクの特性と組織のニーズに応じて慎 重に行う必要があります。 アプローチ トークン使用量 実行時間 一貫性 コスト シングル 1×T 長い 高い 低 マルチ(並列N台) N×T×C 短い 要管理 高 ハイブリッド N×T×??C 中程度 バランス 中 Nは並列エージェント数、Tは1エージェントあたりのトークン使用量、Cはコンテキス ト共有のオーバーヘッドを表します。 26

Slide 27

Slide 27 text

実践的な設計アプローチ 27

Slide 28

Slide 28 text

MVA(Minimum Viable Agent)から始める 一つのタスクに集中 とにかく、小さくはじめるのが大切 安定稼働を確認してから拡張 ユーザーの実際の使い方を観察 段階的な成長 小さな成功を積み重ねる 継続的な改善サイクル 進化は革命より強い 実装ステップ(例) Step 1: FAQに答える、単純なレビューを行う → 基本動作の確立 Step 2: 過去の文脈を参照、過去のレビューを活用 → コンテキスト管理の実践 Step 3: 簡単な問題を自動解決、自動でリファクタリング → 段階的な権限拡大 Step 4: 複雑なワークフロー対応、大規模リファクタリング → システム全体の統合 28

Slide 29

Slide 29 text

MVA(Minimum Viable Agent)から始める 設計原則 コーディングエージェントだろうが何だろうが 完璧を目指すな、まず動くものを小さく便利に作れ なぜMVAが重要か: リスクを最小化しながら、早期に価値を提供し、チームの習熟度を段階的に向上 29

Slide 30

Slide 30 text

監督された自律性 タスクの性質に応じて、エージェントの自律度を調整し、人間の関与レベルを最適化 する。 この自律性は段階的に高めることができると思っている。 レベル 自律度 適用タスク 人間の関与 完全自動 100% Lintエラー修正 なし 通知付き自動 80% 簡単なバグ修正 事後確認 承認後実行 50% リファクタリング 事前承認 支援モード 20% アーキテクチャ変更 常時監督 30

Slide 31

Slide 31 text

透明性の確保 3つのレベル プロセスレベル: 何をしたか 意図レベル: なぜそうしたか 限界レベル: 確信度と制約 責任の明確化 すべての決定を記録 承認プロセスの明文化 定期的な監査とレビュー 31

Slide 32

Slide 32 text

自動化と人間の役割の変化 生成AIで自動化される作業 コードフォーマット、Linting: 既存ツールとの併用で、プロジェクト固有のスタイルガイドを学習し適用 依存関係の管理と更新: 変更影響を分析し、破壊的変更のリスクを評価して安全な更新戦略を提案 テストカバレッジの監視と改善: コードの意図を理解し、エッジケースを含む包括的なテストケースを自動生成 ドキュメント生成: コードから意図と仕様を理解し、APIドキュメントや利用ガイドを自然な文章で生成 バグの修正: スタックトレースとソースコードを関連付けて根本原因を特定し、修正コードを提案 機能要件の実装: 自然言語の要求仕様を解釈し、適切なデザインパターンとアーキテクチャで実装コードを生成 32

Slide 33

Slide 33 text

自動化と人間の役割の変化 生成AI開発において人間が担う役割 非機能要件の定義と監督: 生成AIが見落としがちな性能、セキュリティ、スケーラビリティの要件を設定し、生成された コードが要件を満たすか検証 DevOpsの自動化と監視: CI/CDパイプラインの設計、インフラ管理、モニタリング設定を行い、生成AIが生成したコー ドのデプロイと運用を支援 アーキテクチャ設計: 生成AIの部分最適化を防ぎ、システム全体の整合性を保つ設計判断と技術的負債の管理 意図やコンテキストの定義と伝達: 生成AIへのプロンプト設計、ビジネス要件の翻訳、暗黙知の明文化 生成結果の品質判断: 生成AIの出力が技術的に正しくても、実際のユースケースに適合するかの評価と修正 冗長コードの削減: 生成AIが作成した類似・重複コードの統合、抽象化によるコードベースの保守性向上 倫理的・法的判断: 生成AIが考慮しきれない倫理的問題、ライセンス遵守、プライバシー保護の監督 チームコミュニケーションとコラボレーション: 生成AIの利用方法、ベストプラクティスの共有、チーム内での知識伝達 https://github.com/mizchi/similarity 33

Slide 34

Slide 34 text

自動化と人間の役割の変化 生成AIやAgentがコードを生成した「その先」を解決する 生成AIがコードを書く速度は飛躍的に向上したが、コミットから本番環境への展開、運用までのデリバリー プロセスはまだ追いついていない。本書は、ソフトウェアデリバリーのライフサイクル全体にAIを統合する 具体的な方法論を提供する。 https://learning.oreilly.com/library/view/ai-native-software-delivery/9781098171988/ 34

Slide 35

Slide 35 text

まとめ 技術的理解 シングル/マルチの適切な使い分け コンテキストエンジニアリングの習得 タスク特性に応じた設計 実践的アプローチ MVAから始める段階的導入 監督された自律性の実現までは人間の関与を維持 人間がやることは増えた。普通に。 35

Slide 36

Slide 36 text

参考資料 Anthropic: Building Effective Agents Cognition AI: Don't Build Multi-Agents LangChain: How and When to Build Multi-Agent Systems Andrej Karpathy: Software 3.0 (Y Combinator 2025) Software 3.0 時代を楽しく生きる 2025年夏 AIエージェントシステムに対する考え方 36

Slide 37

Slide 37 text

参考資料 Anthropic: Claude Code Github: awesome-claude-code-subagents コーディング AI エージェントを自作してみよう Github: ccswarm 37

Slide 38

Slide 38 text

ありがとうございました ご質問・ご相談はお気軽にお問い合わせください @nwiizo | https://3-shake.com