Skip to content

fix(agent-builder): システムプロンプトの AI 生成で組み込みツールも提案する - #1676

Open
takke1986 wants to merge 1 commit into
aws-samples:mainfrom
takke1986:fix/agent-builder-prompt-builtin-tools
Open

takke1986 wants to merge 1 commit into
aws-samples:mainfrom
takke1986:fix/agent-builder-prompt-builtin-tools

Conversation

@takke1986

Copy link
Copy Markdown
Contributor

Closes #1675

概要

エージェントビルダーの「AI により生成する」で、ツール設定の組み込みツールも提案対象に含めるようにします。

これまで提案の対象は MCP サーバーのみだったため、組み込みツールを使う意図を説明に書いても、AI は MCP サーバーの中から代替を選んでしまい、ツール設定のチェックボックスは変化しませんでした。

再現していた挙動

入力 結果
名前: google検索エージェント
説明: ブラウザツールでGoogleの検索を代行してくれるエージェント
MCP サーバーの tavily-search が選択される。ツール設定は変化しない

原因

agentSystemPromptGenerator.ts の AgentPromptParams が受け取るのは名前・説明・利用可能な MCP サーバーのみで、組み込みツールの情報が含まれていませんでした。生成されるプロンプトにも MCP サーバーの一覧しか記載されないため、AI は組み込みツールの存在を認識できません。

変更内容

既存の MCP サーバー提案と同じマーカー方式を踏襲しました。

ファイル 内容
packages/web/src/prompts/agentSystemPromptGenerator.ts availableBuiltInTools の受け取り、一覧の記載、<SELECTED_BUILT_IN_TOOLS> マーカーの追加
packages/web/src/hooks/usePromptGeneration.ts マーカーの解析、suggestedBuiltInTools の返却
packages/web/src/components/agentBuilder/AgentForm.tsx 利用可能な組み込みツールの一覧提供、提案結果のチェックボックスへの反映

出力フォーマットは既存の構造を保ったまま、組み込みツールの選択を先に出力させています。

<SELECTED_BUILT_IN_TOOLS>
codeExecution
</SELECTED_BUILT_IN_TOOLS>

<SELECTED_MCP_SERVERS>
server-name-1
</SELECTED_MCP_SERVERS>

<SYSTEM_PROMPT>
...
</SYSTEM_PROMPT>

組み込みツールが利用可能でない場合は、該当セクションとマーカーの指示を出力しません。既存の MCP サーバーのみの動作は変わりません。

設計上の判断

一覧は呼び出し側から渡す

利用可能な組み込みツールの一覧は AgentForm から渡す形にしました。組み込みツールが追加された際は、この一覧に 1 件足すだけで対応できます。

const availableBuiltInTools = useMemo(
  () => [
    {
      id: 'codeExecution',
      name: t('agent_builder.code_execution'),
      description: t('agent_builder.code_execution_description'),
    },
  ],
  [t]
);

この形にしたことで、デプロイ設定で無効になっているツールを一覧に含めないという制御が呼び出し側で行えます。組織のポリシーで無効にしているツールが AI に提案されることを防げます。

MCP サーバーより組み込みツールを優先するよう指示

同じことが両方で実現できる場合は組み込みツールを選ぶよう、プロンプトに指示を入れています。追加の設定や API キーを必要としないためです。

動作確認

  • packages/web/tests/components/agentBuilder/agentSystemPromptGenerator.test.ts を追加 (5 件)
    • 組み込みツールの一覧が記載されること
    • マーカーによる選択指示が含まれること
    • 組み込みツールがない場合はセクションを出力せず、MCP サーバーの選択は従来どおり動作すること
    • 組み込みツールと MCP サーバーを同時に扱えること
    • 組み込みツールを優先する指示が含まれること
  • npm run lint 通過
  • npm run cdk:test 40 tests / 15 snapshots 通過
  • web 283 tests 通過

関連

本機能は #1358 で追加されたものです。追加時点ではツール設定の組み込みツールが少なかったため、MCP サーバーのみを対象とする設計で十分だったと理解しています。

以下の提案がマージされた場合、availableBuiltInTools に項目を追加することで同様に提案対象へ含められます。

「AI により生成する」は Agent の名前と説明からシステムプロンプトと
ツールの組み合わせを提案するが、提案の対象が MCP サーバーに限られて
おり、ツール設定の組み込みツールが考慮されていなかった。

このため組み込みツールを使う意図を説明に書いても、AI は MCP サーバー
の中から代替を選んでしまい、ツール設定のチェックボックスは変化しない。

既存の MCP サーバー提案と同じマーカー方式を踏襲し、組み込みツールも
提案対象に含める。

- AgentPromptParams に availableBuiltInTools を追加
- SELECTED_BUILT_IN_TOOLS マーカーで選択結果を出力させる
- usePromptGeneration が suggestedBuiltInTools として返す
- AgentForm が対応するチェックボックスへ反映する

利用可能な組み込みツールの一覧は AgentForm から渡す形にしたため、
組み込みツールが追加された際は一覧に 1 件足すだけで対応できる。
デプロイ設定で無効なツールは一覧に含めないことで、組織のポリシーで
無効にしているツールが提案されることを防げる。

Closes aws-samples#1675
@takke1986
takke1986 force-pushed the fix/agent-builder-prompt-builtin-tools branch from d24ee14 to 511704f Compare August 31, 2026 03:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(agent-builder): システムプロンプトの AI 生成で組み込みツールが提案対象に含まれない

1 participant