はじめに
カスタムエージェントは一言で言うと、「作業に応じてAIエージェントを使い分ける」機能です。
AWS ブログでは次のような利用例が紹介されていました。ざっくりと、
課題
開発者が「テーブル」について質問すると:
HTML のテーブルのことなのか?
データベースのテーブルのことなのか?
AI が混乱してしまう。
解決方法
2 つの専用エージェント
フロントエンド用エージェント
バックエンド用エージェント
を作成することで、AI が作業内容を正しく理解してくれるようにする。
どのような場面で利用するのかと言うところがわかったところで、**この記事ではシンプルにどう使うのか?**と言う利用方法に絞って書いていきたいと思います。
設定ファイル
設定ファイルは、グローバルまたはプロジェクトレベルで管理することが可能です。
- グローバル:
~/.aws/amazonq/cli-agents/{agent-name}.json
- プロジェクトレベル
.amazonq/cli-agents/{agent-name}.json
.amazonq/cli-agents/front-end.json
{
"description": "Optimized for front-end web development using React and Figma",
"mcpServers": {
"Figma": {
"command": "npx",
"args": [
"mcp-remote",
"http://127.0.0.1:3845/sse"
]
}
},
"tools": ["*"],
"allowedTools": [
"fs_read",
"fs_write",
"report_issues",
"@Figma"
],
"resources": [
"file://README.md",
"file://~/.aws/amazonq/react-preferences.md"
],
"hooks": {
"agentSpawn": [
{
"command": "git status"
}
]
}
}
セクション | 説明 |
---|---|
description | 何用のエージェントかの説明文 |
mcpServers | 使用する外部ツール |
tools | エージェントが使えるツール |
allowedTools | 許可を求めずに自動実行できるツール |
resources | 自動読み込みファイル |
hooks | エージェント起動時に自動実行するコマンド |
起動の仕方
q chat --agent front-end
やってみる
AWS ドキュメントにいくつかサンプルも用意されていましたので、AWSスペシャリストカスタムエージェントを少しだけ試してみたいと思います。
README.md やらなんやら用意しているわけではないのですが、ちょっと今回は簡単に動かしてみたいだけなので、AWS ドキュメントの設定ファイルをほぼそのまま使います。
.amazonq/cli-agents/aws-infra.json
{
"name": "aws-infra",
"description": "AWSのインフラストラクチャと開発タスクに特化した専門のカスタムエージェント",
"tools": [
"fs_read",
"fs_write",
"execute_bash",
"use_aws"
],
"allowedTools": [
"fs_read",
"use_aws"
],
"toolsSettings": {
"use_aws": {
"allowedServices": [
"s3",
"lambda",
"cloudformation",
"iam",
"logs"
]
},
"fs_write": {
"allowedPaths": [
"infrastructure/**",
"scripts/**",
"*.yaml",
"*.yml",
"*.json"
]
}
},
"resources": [
"file://README.md",
"file://infrastructure/**/*.yaml",
"file://infrastructure/**/*.yml",
"file://docs/aws-setup.md",
"file://scripts/deploy.sh"
],
"hooks": {
"agentSpawn": [
{
"command": "aws sts get-caller-identity",
"timeout_ms": 10000,
"cache_ttl_seconds": 300
}
]
}
}
use_aws
に近いツールとして、AWS API MCP Server なども存在します。この AWS API MCP Server を設定済みとします。
期待する動作としては 3 つです。
-
use_aws
が使われること(AWS API MCP Server は使われない想定です。) - S3 の一覧が表示されること
- EC2 は表示されないこと
カスタムエージェントが作成されていることを確認しておきます。
エージェントを指定して、Amazon Q Developer CLI を起動します。
q chat --agent aws-infra
use_aws で S3 バケットの一覧が表示されたことを確認しました。
EC2 の一覧の表示をお願いしてみます。
あれ、なぜだろう allowedServices
にないので表示されない想定だったのだが。