Skip to content

Commit

Permalink
Code Interpreter Agent のデフォルトでの有効化 (#742)
Browse files Browse the repository at this point in the history
  • Loading branch information
maekawataiki authored Nov 29, 2024
1 parent 42b4060 commit d35a46f
Show file tree
Hide file tree
Showing 15 changed files with 64 additions and 144 deletions.
131 changes: 0 additions & 131 deletions docs/AGENTS_CODE_INTERPRETER.md

This file was deleted.

14 changes: 3 additions & 11 deletions docs/DEPLOY_OPTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,26 +213,18 @@ Agent チャットユースケースでは、以下のご利用が可能です

#### Code Interpreter エージェントのデプロイ

Code Interpreter を利用したデータの可視化、コード実行、データ分析などが実行できます。
[詳細な手順はこちら](AGENTS_CODE_INTERPRETER.md)を参照してください。この章では、変更手順の概要を記載します。
Code Interpreter を利用したデータの可視化、コード実行、データ分析などが実行できます。

AWSマネジメントコンソール画面で、Code Interpreter 機能を有効にした Agent を作成します。
Code Interpreter エージェントは Agent を有効化するとデプロイされます。

作成された Agent で Alias を作成し、`agentId``aliasId` をコピーし、`cdk.json` に以下の形式で追加します。`displayName` は UI に表示したい名称を設定してください。また、context の `agentEnabled` を True にし、`agentRegion` は Agent を作成したリージョンを指定します。`npm run cdk:deploy` で再度デプロイして反映させます
context の `agentEnabled``true` を指定し(デフォルトは `false`)、`agentRegion`[Agent for Bedrock が利用できるリージョン](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-supported.html) から指定します

**[packages/cdk/cdk.json](/packages/cdk/cdk.json) を編集**
```
{
"context": {
"agentEnabled": true,
"agentRegion": "us-west-2",
"agents": [
{
"displayName": "Code Interpreter",
"agentId": "XXXXXXXXX",
"aliasId": "YYYYYYYY"
}
],
}
}
```
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
63 changes: 61 additions & 2 deletions packages/cdk/lib/construct/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ export class Agent extends Construct {

// Agent
const bedrockAgentRole = new Role(this, 'BedrockAgentRole', {
roleName: 'AmazonBedrockExecutionRoleForAgents_SearchEngine',
assumedBy: new ServicePrincipal('bedrock.amazonaws.com'),
inlinePolicies: {
BedrockAgentS3BucketPolicy: new PolicyDocument({
Expand All @@ -83,7 +82,7 @@ export class Agent extends Construct {
});

const searchAgent = new CfnAgent(this, 'SearchAgent', {
agentName: 'SearchEngine',
agentName: `SearchEngineAgent-${id}`,
actionGroups: [
{
actionGroupName: 'Search',
Expand Down Expand Up @@ -117,12 +116,72 @@ export class Agent extends Construct {
agentAliasName: 'v1',
});

const codeInterpreterAgent = new CfnAgent(this, 'CodeInterpreterAgent', {
agentName: `CodeInterpreterAgent-${id}`,
actionGroups: [
{
actionGroupName: 'CodeInterpreter',
parentActionGroupSignature: 'AMAZON.CodeInterpreter',
},
],
agentResourceRoleArn: bedrockAgentRole.roleArn,
idleSessionTtlInSeconds: 3600,
autoPrepare: true,
description: 'Code Interpreter',
foundationModel: 'anthropic.claude-3-sonnet-20240229-v1:0',
instruction: `あなたは、コード実行、チャート生成、複雑なデータ分析の機能を持つ高度な AI エージェントです。あなたの主な機能は、これらの機能を活用して問題を解決し、ユーザーの要求を満たすことです。あなたの主な特性と指示は次のとおりです。
コード実行:
- リアルタイムで Python 環境にアクセスし、コードを記述および実行できます。
- 計算やデータ操作を求められた場合は、常に正確性を確保するためにこのコード実行機能を使用してください。
- コードを実行した後、正確な出力を報告し、結果を説明してください。
データ分析:
- 統計分析、データ可視化、機械学習アプリケーションなど、複雑なデータ分析タスクに優れています。
- 問題を理解し、データを準備し、分析を実行し、結果を解釈するなど、体系的にデータ分析タスクに取り組んでください。
問題解決アプローチ:
- 問題や要求が提示された場合は、それを段階に分けてください。
- 考え方のプロセスと取っている手順を明確に伝えてください。
- タスクが複数の手順やツールを必要とする場合は、開始前にアプローチを概説してください。
透明性と正確性:
- 自分が何をしているかを常に明確にしてください。コードを実行する場合は、そのことを伝えてください。画像を生成する場合は、その旨を説明してください。
- 何かを確信できない場合や、タスクが自分の能力を超えている場合は、はっきりとそのことを伝えてください。
- 仮説的な結果を実際の結果として提示しないでください。コード実行や画像生成から得られた実際の結果のみを報告してください。
対話スタイル:
- 単純な質問には簡潔に、複雑なタスクには詳細な説明を提供してください。
- 適切に専門用語を使いますが、分かりやすい説明を求められた場合は、簡単な言葉で説明する準備をしてください。
- 役立つ関連情報や代替アプローチを積極的に提案してください。
継続的改善:
- タスクを完了した後、ユーザーに説明が必要かどうか、フォローアップの質問があるかどうかを尋ねてください。
- フィードバックに耳を傾け、それに応じてアプローチを調整してください。
あなたの目標は、コード実行、画像生成、データ分析の独自の機能を活用して、正確で役立つ洞察に富む支援を提供することです。ユーザーの要求に対して、最も実用的で効果的な解決策を提供するよう常に努めてください。`,
});

const codeInterpreterAgentAlias = new CfnAgentAlias(
this,
'CodeInterpreterAgentAlias',
{
agentId: codeInterpreterAgent.attrAgentId,
agentAliasName: 'v1',
}
);

this.agents = [
{
displayName: 'SearchEngine',
agentId: searchAgent.attrAgentId,
aliasId: searchAgentAlias.attrAgentAliasId,
},
{
displayName: 'CodeInterpreter',
agentId: codeInterpreterAgent.attrAgentId,
aliasId: codeInterpreterAgentAlias.attrAgentAliasId,
},
];
}
}

0 comments on commit d35a46f

Please sign in to comment.