powered by TechFeed
表示モード
ハウツー

AIコーディングアシスタントの「プロンプトがコードより長くなる」問題を解決する7つのスキルパターン

9月1日、Martin Omanderが「7 AI Agent Skill Patterns Every Programmer Should Know」と題した記事を公開した。この記事では、AIコーディングアシスタントへの巨大プロンプト問題を解決する「モジュール型スキル」という設計パターン7種について詳しく紹介されている。

9月1日、Martin Omanderが「7 AI Agent Skill Patterns Every Programmer Should Know」と題した記事を公開した。この記事では、AIコーディングアシスタントへの巨大プロンプト問題を解決する「モジュール型スキル」という設計パターン7種について詳しく紹介されている。


「プロンプトがコードより長くなる」問題

コーディングアシスタントを使い続けると、必ずぶつかる壁がある。最初はシンプルなタスクだったのに、ビルドを壊さない結果を得るためにプロンプトが肥大化する。チームのコーディング規約、アーキテクチャの制約、エッジケース処理……気づけばプロンプトが書きたいコードより長くなっている

長いプロンプトはコンテキストウィンドウを浪費し、レイテンシを増大させ、出力の品質を下げる。Martin Omanderはこの問題への解として「Modular Skills(モジュール型スキル)」を提案する。

発想はシンプルだ。巨大な指示を一枚岩のプロンプトに詰め込む代わりに、単一目的の小さなMarkdownファイル群に分割する。エージェントはタスクに応じて必要なスキルだけを動的にロードし、完了したらアンロードする。

以下が実際のスキルファイルの冒頭例だ:

---
name: frontend-ui-engineering
description: Builds production-quality, accessible, responsive user-facing UIs.
Use when building or modifying interfaces and pages, creating components,
implementing layouts, meeting WCAG accessibility requirements...
---

# Frontend UI Engineering

## Overview
Build production-quality user interfaces that are accessible, performant,
and visually polished...

スキルファイルの置き場所は、Google AIコーディングアシスタント(記事中では「Antigravity」という開発コード名で言及されている。Google Cloud提供のAIコーディング支援機能を指すと考えられるが、一般公開名称についてはSkills Authoring Codelabを参照のこと)を使う場合、プロジェクト固有なら <project-root>/.agents/skills/<skill-folder>、全プロジェクト共通なら ~/.gemini/config/skills/<skill-folder> に配置する。既製スキルはaddyosmani/agent-skillsリポジトリで公開されている。


7つのスキルパターン

1. Domain Knowledge(専門家化)

エージェントを特定ドメインの専門家にするスキル群。長期メモリを汚染せず、必要な時だけ専門知識をロードする。プロジェクトをまたいで共通化できるのが強みで、一度整備すればチーム全員が恩恵を受けられる。

Google Cloud向けには、Cloud Run・AlloyDB・BigQueryの専門知識を持つスキルを収録した公式スキルリポジトリも存在する(元記事では github.com/google/skills として紹介されているが、URLの正確性は元記事のリンクから確認されたい)。

2. Tool Wrappers(ツール統合)

ターミナルのエラーメッセージをコピー&ペーストする手間を省く。エージェントが外部ツールに直接アクセスできるインターフェースを提供するパターンで、ツールとエージェントの仲介役を担う。

MCPとは、AIモデルが外部ツールやAPIと標準的にやり取りするためのプロトコル。Anthropicが策定し、業界で広く採用されつつある(MCP公式サイト)。Tool Wrappersパターンにおけるスキルファイルは、「どのツールをどの順序で使うか」という知識をエンコードする場所として機能する。

3. Inversion(逆転の発想)— 最も面白いパターン

このパターンが特に面白い。通常、曖昧な要件を受け取ったエージェントは推測で補完する。Inversionスキルはこれを逆転させ、エージェントに先に質問させる

  • debugging-and-error-recovery:エージェントが当てずっぽうの修正を試みることを明示的に禁止し、ログや状態データを要求してから初めてコードを書かせる
  • planning-and-task-breakdown:大きな仕様を順序立てたマイルストーンに分解
  • context-engineering:コーディングタスクのセットアップ方法を最適化

「エージェントが推測する」問題はデバッグ時に最もコストが高い。原因不明のまま修正を繰り返す無限ループを、このパターンは構造的に断ち切る。

4. Generators(フォーマット強制)

エージェントの自由な出力を特定の構造に縛る。Domain Knowledgeが「何を知っているか」を規定するのに対し、Generatorsは「どの形式で出力するか」を規定する点が異なる。一貫したアウトプット形式を強制することで、後続の自動処理やレビューが格段に楽になる。

  • spec-driven-development:コード記述前に仕様を標準化。実装前に合意形成を促す効果がある
  • documentation-and-adrs:ADR(Architecture Decision Record:アーキテクチャ上の意思決定とその背景を記録するドキュメント形式)をMarkdownテンプレートに整形して記録
  • source-driven-development:古くなったトレーニングデータではなく、公式ドキュメントを根拠にコードを生成させる

5. Reviewers(品質ゲート)

マージ前の自動チェックを担う。Generatorsが出力の形を決めるのに対し、Reviewersは出力の中身を評価する役割を持つ。CI/CDパイプラインに組み込む前段階として、エージェント自身にセルフレビューを課す使い方が想定される。

  • code-review-and-quality:正確性・可読性・パフォーマンスの観点でコードをレビュー
  • security-and-hardening:SQLインジェクションや未検証の入力処理など脆弱性を検出するローカルセキュリティスキャナとして機能

6. Pipelines(順序保証)

複数ステップのワークフローで、エージェントがステップを飛ばさないよう強制する。LLMは「手っ取り早い答え」に向かいがちで、TDDのように「失敗テストを先に書く」といったプロセスを自然に省略してしまう。Pipelinesパターンはその傾向を明示的に抑止する。

  • test-driven-development:「失敗テスト作成→最小限の実装→リファクタリング」のTDDループを厳守させる。Reviewersパターンと組み合わせることで、品質保証の二重構造を作れる
  • incremental-implementation:大きなコード変更を細かくテスト可能なPRに分割。レビュー負荷の軽減にも寄与する

7. Meta-Skills(スキルのスキル)

他のスキルを発見・調整・生成するメタレイヤー。上記6パターンが「何をするか」を定義するのに対し、Meta-Skillsは「どのスキルを使うべきか」を判断する。スキルが増えてきた段階で威力を発揮する。

  • using-agent-skills:マスタールーターとして機能し、タスクを分析して適切なスキルを自動ロード

カスタムスキルを書く

チーム固有の要件(データベーストランザクション処理、クレジットカード番号の扱い、セッション管理など)には、独自スキルを作成できる。スキルファイルはMarkdownテキストファイルの集合に過ぎないため、作成自体は難しくない。

書き方はSkills Authoring Codelabで学べる。このCodelabはGoogle Cloudが提供しており、スキルファイルの構造・記述方法・配置場所を実際に手を動かしながら習得できる内容になっている。また、スキルの品質評価手法についてはKaggle上のホワイトペーパーにまとめられており、どのスキルが実際に効果的かを測る指標も紹介されている。


詳細は7 AI Agent Skill Patterns Every Programmer Should Knowを参照していただきたい。