エージェント型ツール開発
データチームのエージェント型ツーリングへのアプローチは、スキルファースト、上向きにコンポーズ モデルを中心に構築されています。モノリシックなエージェントを構築するのではなく、チームは作業を小さく、テスト可能で、再利用可能な スキル に分解します。各スキルは単一の明確に定義されたタスクを扱います。その後、エージェントはそれらのスキルから合成され、リクエストされた作業の種類に応じてスキルに委任します。
このアプローチは、OpenCode と Anthropic から生まれつつある標準 — リポジトリレベルのエージェントコンテキストのための AGENTS.md のような規約を含む — を基にしており、GitLab Duo がプラットフォームとして成熟するにつれて継続的に評価され、進化していきます。
ディレクトリ構造の規約
このパターンを採用するすべてのリポジトリは、agents/ ディレクトリの下にエージェント型ツーリングを 4 つのサブディレクトリで構成します。
agents/
├── memory/ # エージェントの並列作業を調整するための共有コンテキストファイル
├── skills/ # アトミックで再利用可能な機能。各スキルには SKILL.md があります
└── agents/ # 利用準備が整った合成エージェント。各エージェントには Markdown 仕様があります
スキル
スキルはアトミックなビルディングブロックです。各スキルは独自のディレクトリにあり、その目的、入力、プロセスステップ、制約を定義する SKILL.md を持っています。
スキルは単一の責任にスコープされ、エージェントによって、またはエンジニアによって直接呼び出されるように設計されています。
スキル仕様
チームのスキルは、新興の Agent Skills 仕様 に従います。これは、AI エージェントの機能をパッケージ化するためのポータブルで相互運用可能なフォーマットを定義するオープンスタンダードです。この仕様に準拠することで、スキルは異なる AI コーディングツールやクライアント間で一貫して検出、ロード、実行されるようになり、単一のプラットフォームを超えてポータブルになります。
主要な仕様は 2 つあります。
- ディレクトリ構造:
スキルは、少なくとも SKILL.md ファイルを含むディレクトリです。
skill-name/
├── SKILL.md # 必須: メタデータ + 指示
├── scripts/ # 任意: 実行可能なコード
├── references/ # 任意: ドキュメント
├── assets/ # 任意: テンプレート、リソース
└── ... # その他の任意のファイルまたはディレクトリ
SKILL.md のフォーマット:
SKILL.md ファイルには、YAML フロントマターに続いて Markdown コンテンツが含まれている必要があります。フロントマターには name や description などのメタデータフィールドが含まれており、これらは AI コーディングツールによる自動的なスキル検出を有効化する上で最も重要です。
スキル開発
スキルは モジュラー かつ テスト済み であるべきです — コードに対して私たちが設定するのと同じ基準です。
ガイドライン 1: モジュラー
スキルごとに 1 つの目的。バンドルせず、コンポーズする。
スキルはシンプルなもの (run_dbt_locally, gitlab-mr) でも、スキルを連鎖させるエンドツーエンドのワークフローでも構いません。重要なのは、各スキルに明確に述べられた目的が 1 つあること、そして独自のスキルになり得るサブタスクは それ自体が 独自のスキルになっていることです。
build_and_open_mr というスキルが run_dbt_locally を呼び出してから gitlab-mr を呼び出すかもしれません — これがモジュラーです。オーケストレーションロジックはワークフロースキルに存在し、実装ロジックはサブスキルに存在します。
ガイドライン 2: テスト済み
実際に実行した。動いた。
エンドツーエンドで実行されていないスキルはマージできる状態ではありません。これは次のことを意味します。
- エージェント経由でスキルを呼び出した(指示を読み通しただけではない)
- 完全なワークフローが、エージェントが詰まったり予期しない明確化を求めたりすることなく完了した
- 期待される出力が生成された
agentic_skills_changes MR テンプレート は、マージ前にこれら両方を強制します。
エージェント
エージェントはスキルとサブエージェントから合成されます。各エージェントは、以下を指定する Markdown ファイルで定義されます。
- システムプロンプト — エージェントの役割と振る舞いの制約
- スキル — 呼び出せるアトミックなスキル
- サブエージェント — 委任できるピアエージェント
- MCP サーバー — アクセスできる外部ツール(データベース、API、ナレッジベース)
- プロセス — エージェントが従う構造化されたワークフロー
エージェントは透明で監査可能になるように設計されています: すべての機能が明示的に列挙されており、エージェントは定義されたツールセットの外で即興しません。
開発と変更管理
新しいスキルやエージェントは、本番環境に昇格される前に、Anthropic の skill-creator のようなツールを使用して検証されます。これは、マージ前にスキルを評価、テスト、ベンチマークするための構造化されたフレームワークを提供します。これにより、十分にテストされた信頼性のある機能のみが skills/ と agents/ ディレクトリに昇格されることが保証されます。
準備が整ったら、変更はリポジトリ内の他のコード変更と同じマージリクエストワークフローに従い、ピアレビュー、バージョン履歴、ロールバック機能を確保します。スキルとエージェントは単純な Markdown ファイルなので、他のコード成果物と同様に差分表示、レビュー、監査が可能です。
リポジトリルートにある AGENTS.md ファイルは、エージェント型コンテキストへのエントリポイントとして機能します。ディレクトリ構造と規約を記述しているため、リポジトリで作業する AI コーディングアシスタントが即座に自分の位置を把握できます。
エージェント型 AI の分野が急速に進化するにつれて、チームの規約、ツール選択、エージェント設計は継続的に再評価されます。今日うまく機能しているパターンは、GitLab Duo の新機能や、より広いエコシステムから更新された標準によって取って代わられる可能性があり、チームはそれに応じて適応します。
利用可能なスキル
データチームのスキルは、それらが使用されるリポジトリで直接メンテナンスされています。利用可能なものを確認するには、スキルディレクトリをブラウズしてください。
- Data Team エージェント型スキル - 同じスキルを各リポジトリで作成するのではなく、他のデータリポジトリ間で利用できる共有スキル
- Analytics リポジトリのスキル - dbt、Snowflake、analytics ワークフロー向けのスキル
- Extract リポジトリのスキル - データ抽出とパイプライン作業のためのスキル
- Snowflake permissions のスキル - Permafrost 経由で Snowflake ユーザーとロールをプロビジョニングするためのスキル
執筆時点では、まだ利用可能なスキルは多くありませんが、定期的に追加していく予定です。
bfd74782)