代码

cookbook/tools/aws_ses_tools.py
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.aws_ses import AWSSESTool
from agno.tools.duckduckgo import DuckDuckGoTools

# 配置邮件设置
sender_email = "verified-sender@example.com"  # 您已验证的 SES 邮箱
sender_name = "AI Research Updates"
region_name = "us-east-1"

# 创建一个可以研究和发送个性化邮件更新的代理
agent = Agent(
    name="Research Newsletter Agent",
    model=OpenAIChat(id="gpt-4o"),
    description="""您是一名人工智能研究专家,负责创建并发送关于人工智能和技术最新进展的个性化电子新闻简报。""",
    instructions=[
        """当收到提示时:
        1. 小心地提取收件人的电子邮件地址。查找格式为 'user@domain.com' 的完整电子邮件地址。
        2. 使用 DuckDuckGo 研究最新的人工智能进展。
        3. 撰写一封简洁、引人入胜的电子邮件,包含:
           - 一个有吸引力的主题行,
           - 3-4 个关键进展或新闻项目,
           - 简要解释它们为何重要,
           - 来源链接,
        4. 以清晰、易读的方式格式化内容。
        5. 使用 AWS SES 发送电子邮件。重要提示:receiver_email 参数必须是包含 @ 符号和域的完整电子邮件地址。""",
    ],
    tools=[
        AWSSESTool(
            sender_email=sender_email,
            sender_name=sender_name,
            region_name=region_name
        ),
        DuckDuckGoTools(),
    ],
    markdown=True,
    show_tool_calls=True,
)

agent.print_response(
    "研究上周医疗保健领域的人工智能进展,重点关注临床应用的实际情况。将摘要通过电子邮件发送至 johndoe@example.com"
)

用法

1

创建虚拟环境

打开 Terminal 并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
2

设置 AWS SES

验证您的邮箱/域名: 用于测试: 1. 前往 [AWS SES

控制台](https://console.aws.amazon.com/ses/home) > 已验证身份 > 创建身份 2. 选择“电子邮件地址”验证 3. 点击发送到您邮箱的验证链接 用于生产: 1. 选择“域名”并按照 DNS 验证步骤操作 2. 向您的域名 DNS 添加 DKIM 和 SPF 记录 注意: 在沙箱模式下,发件人和收件人的邮箱都必须经过验证。
3

配置 AWS 凭证

创建 IAM 用户: 1. 前往 IAM 控制台 > 用户 > 添加用户 2. 启用“编程访问”

  1. 附加 ‘AmazonSESFullAccess’ 策略 ### 设置凭证(选择一种方法): 方法 1 - 使用 AWS CLI: bash aws configure 方法 2 - 环境变量: bash export AWS_ACCESS_KEY_ID=xxx export AWS_SECRET_ACCESS_KEY=xxx export AWS_DEFAULT_REGION=us-east-1 export OPENAI_API_KEY=xxx
4

安装库

bash pip install -U boto3 openai duckduckgo-search agno
5

运行 Agent

bash python cookbook/tools/aws_ses_tools.py
6

故障排除

如果电子邮件未发送,请检查:
  • 发件人和收件人均已验证(在沙箱模式下)
  • AWS 凭证已正确配置
  • 您在发送限制范围内
  • 您的 IAM 用户具有正确的 SES 权限
  • 使用 SES 控制台的“发送测试电子邮件”功能来验证设置