名称: aws-agentcore 描述: 使用 AWS Bedrock AgentCore 构建 AI 代理。适用于在 AWS 基础设施上开发代理、创建工具使用模式、实现代理编排或与 Bedrock 模型集成。触发关键词如 AgentCore、Bedrock Agent、AWS 代理、Lambda 工具。
AWS Bedrock AgentCore
在 AWS 基础设施上构建生产级的 AI 代理。
快速开始
import boto3
from agentcore import Agent, Tool
# 初始化 AgentCore 客户端
client = boto3.client('bedrock-agent-runtime')
# 定义工具
@Tool(name="search_database", description="搜索产品数据库")
def search_database(query: str, limit: int = 10) -> dict:
# 工具实现
return {"results": [...]}
# 创建代理
agent = Agent(
model_id="anthropic.claude-3-sonnet",
tools=[search_database],
instructions="您是一个有用的产品搜索助手。"
)
# 调用代理
response = agent.invoke("查找低于 1000 美元的笔记本电脑")
AgentCore 组件
AgentCore 提供以下基础组件:
| 组件 | 用途 |
|---|---|
| 运行时 | 无服务器代理执行(框架无关) |
| 网关 | 将 API/Lambda 转换为 MCP 兼容的工具 |
| 内存 | 多策略内存(语义、用户偏好) |
| 身份 | 使用 Cognito、Okta、Google、EntraID 进行认证 |
| 工具 | 代码解释器、浏览器工具 |
| 观测性 | 深度分析和追踪 |
Lambda 工具集成
# Lambda 函数作为工具
import json
def lambda_handler(event, context):
action = event.get('actionGroup')
function = event.get('function')
parameters = event.get('parameters', [])
# 解析参数
params = {p['name']: p['value'] for p in parameters}
if function == 'get_weather':
result = get_weather(params['city'])
elif function == 'book_flight':
result = book_flight(params['origin'], params['destination'])
return {
'response': {
'actionGroup': action,
'function': function,
'functionResponse': {
'responseBody': {
'TEXT': {'body': json.dumps(result)}
}
}
}
}
代理编排
from agentcore import SupervisorAgent, SubAgent
# 创建专门的子代理
research_agent = SubAgent(
name="researcher",
model_id="anthropic.claude-3-sonnet",
instructions="您负责研究和收集信息。"
)
writer_agent = SubAgent(
name="writer",
model_id="anthropic.claude-3-sonnet",
instructions="您负责撰写清晰、引人入胜的内容。"
)
# 创建监督代理
supervisor = SupervisorAgent(
model_id="anthropic.claude-3-opus",
sub_agents=[research_agent, writer_agent],
routing_strategy="supervisor" # 或 "intent_classification"
)
response = supervisor.invoke("撰写一篇关于 AI 代理的博客文章")
护栏集成
from agentcore import Agent, Guardrail
# 定义护栏
guardrail = Guardrail(
guardrail_id="my-guardrail-id",
guardrail_version="1"
)
agent = Agent(
model_id="anthropic.claude-3-sonnet",
guardrails=[guardrail],
tools=[...],
)
AgentCore 网关
将现有 API 转换为 MCP 兼容的工具:
# gateway_setup.py
from bedrock_agentcore import GatewayClient
gateway = GatewayClient()
# 从 OpenAPI 规范创建网关
gateway.create_target(
name="my-api",
type="OPENAPI",
openapi_spec_path="./api-spec.yaml"
)
# 从 Lambda 函数创建网关
gateway.create_target(
name="my-lambda-tool",
type="LAMBDA",
function_arn="arn:aws:lambda:us-east-1:123456789:function:my-tool"
)
AgentCore 内存
from agentcore import Agent, Memory
# 使用多种策略创建内存
memory = Memory(
name="customer-support-memory",
strategies=["semantic", "user_preference"]
)
agent = Agent(
model_id="anthropic.claude-3-sonnet",
memory=memory,
tools=[...],
)
# 内存跨会话持久化
response = agent.invoke(
"我们上次讨论了什么?",
session_id="user-123"
)
官方用例仓库
AWS 提供生产就绪的实现:
仓库: https://github.com/awslabs/amazon-bedrock-agentcore-samples
可用用例 (02-use-cases/)
| 用例 | 描述 |
|---|---|
| A2A 多代理事件响应 | 使用 Strands + OpenAI SDK 的代理间通信 |
| 客户支持助手 | 内存、知识库、Google OAuth |
| 市场趋势代理 | 使用浏览器工具的 LangGraph |
| 数据库性能分析器 | PostgreSQL 集成 |
| 设备管理代理 | IoT 与 Cognito 认证 |
| 企业网络智能 | 用于研究的浏览器工具 |
| 文本转 Python IDE | AgentCore 代码解释器 |
| 视频游戏销售助手 | Amplify + CDK 部署 |
用例快速开始
git clone https://github.com/awslabs/amazon-bedrock-agentcore-samples.git
cd amazon-bedrock-agentcore-samples/02-use-cases/customer-support-assistant
# 按照 README 进行部署