跳转到内容

Gmail 集成

让你的代理通过 Gmail 管理电子邮件、联系人和草稿。借助 AI 驱动的自动化,发送邮件、搜索消息、管理联系人、创建草稿,并简化你的邮件沟通流程。

在使用 Gmail 集成前,请确保你已经具备:

  • 一个拥有有效订阅的 CrewAI AMP 账号
  • 一个具有相应权限的 Gmail 账号
  • 已通过 集成页面 连接你的 Gmail 账号
  1. 进入 CrewAI AMP Integrations
  2. 在身份验证集成部分找到 Gmail
  3. 点击 Connect 并完成 OAuth 流程
  4. 授予电子邮件和联系人管理所需的权限
  5. 从 Integration Settings 复制你的 Enterprise Token
Terminal window
uv add crewai-tools
Terminal window
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"

或者将其添加到你的 .env 文件中:

CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
gmail/fetch_emails

描述: 获取一组消息。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • q (string, optional): 用于筛选消息的搜索查询(例如:'from:[email protected] is:unread')。
  • maxResults (integer, optional): 要返回的最大消息数(1-500)。(默认:100)
  • pageToken (string, optional): 用于检索特定结果页的页令牌。
  • labelIds (array, optional): 仅返回带有与所指定标签 ID 全部匹配的标签的消息。
  • includeSpamTrash (boolean, optional): 在结果中包含来自 SPAM 和 TRASH 的消息。(默认:false)
gmail/send_email

描述: 发送电子邮件。

参数:

  • to (string, required): 收件人电子邮件地址。
  • subject (string, required): 邮件主题。
  • body (string, required): 邮件正文内容。
  • userId (string, optional): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • cc (string, optional): 抄送电子邮件地址(逗号分隔)。
  • bcc (string, optional): 密送电子邮件地址(逗号分隔)。
  • from (string, optional): 发件人电子邮件地址(如果与已认证用户不同)。
  • replyTo (string, optional): 回复地址。
  • threadId (string, optional): 如果是在回复现有对话,则为线程 ID。
gmail/delete_email

描述: 通过 ID 删除电子邮件。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。
  • id (string, required): 要删除的消息 ID。
gmail/create_draft

描述: 创建一封新的草稿邮件。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。
  • message (object, required): 包含草稿内容的消息对象。
    • raw (string, required): 经过 Base64url 编码的邮件消息。
gmail/get_message

描述: 通过 ID 获取特定消息。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • id (string, required): 要获取的消息 ID。
  • format (string, optional): 返回消息的格式。可选项:"full", "metadata", "minimal", "raw"。(默认:"full")
  • metadataHeaders (array, optional): 当提供且 format 为 METADATA 时,仅包含指定的标头。
gmail/get_attachment

描述: 获取消息附件。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • messageId (string, required): 包含该附件的消息 ID。
  • id (string, required): 要获取的附件 ID。
gmail/fetch_thread

描述: 通过 ID 获取特定电子邮件线程。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • id (string, required): 要获取的线程 ID。
  • format (string, optional): 返回消息的格式。可选项:"full", "metadata", "minimal"。(默认:"full")
  • metadataHeaders (array, optional): 当提供且 format 为 METADATA 时,仅包含指定的标头。
gmail/modify_thread

描述: 修改应用于线程的标签。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • id (string, required): 要修改的线程 ID。
  • addLabelIds (array, optional): 要添加到该线程的标签 ID 列表。
  • removeLabelIds (array, optional): 要从该线程移除的标签 ID 列表。
gmail/trash_thread

描述: 将线程移至垃圾箱。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • id (string, required): 要移至垃圾箱的线程 ID。
gmail/untrash_thread

描述: 将线程从垃圾箱中移除。

参数:

  • userId (string, required): 用户的电子邮件地址,或对已认证用户使用 'me'。(默认:"me")
  • id (string, required): 要从垃圾箱恢复的线程 ID。
from crewai import Agent, Task, Crew
# Create an agent with Gmail capabilities
gmail_agent = Agent(
role="Email Manager",
goal="Manage email communications and messages efficiently",
backstory="An AI assistant specialized in email management and communication.",
apps=['gmail'] # All Gmail actions will be available
)
# Task to send a follow-up email
send_email_task = Task(
description="Send a follow-up email to [email protected] about the project update meeting",
agent=gmail_agent,
expected_output="Email sent successfully with confirmation"
)
# Run the task
crew = Crew(
agents=[gmail_agent],
tasks=[send_email_task]
)
crew.kickoff()
from crewai import Agent, Task, Crew
# Create agent with specific Gmail actions only
email_coordinator = Agent(
role="Email Coordinator",
goal="Coordinate email communications and manage drafts",
backstory="An AI assistant that focuses on email coordination and draft management.",
apps=[
'gmail/send_email',
'gmail/fetch_emails',
'gmail/create_draft'
]
)
# Task to prepare and send emails
email_coordination = Task(
description="Search for emails from the marketing team, create a summary draft, and send it to stakeholders",
agent=email_coordinator,
expected_output="Summary email sent to stakeholders"
)
crew = Crew(
agents=[email_coordinator],
tasks=[email_coordination]
)
crew.kickoff()
from crewai import Agent, Task, Crew
# Create agent with Gmail search and analysis capabilities
email_analyst = Agent(
role="Email Analyst",
goal="Analyze email patterns and provide insights",
backstory="An AI assistant that analyzes email data to provide actionable insights.",
apps=['gmail/fetch_emails', 'gmail/get_message'] # Specific actions for email analysis
)
# Task to analyze email patterns
analysis_task = Task(
description="""
Search for all unread emails from the last 7 days,
categorize them by sender domain,
and create a summary report of communication patterns
""",
agent=email_analyst,
expected_output="Email analysis report with communication patterns and recommendations"
)
crew = Crew(
agents=[email_analyst],
tasks=[analysis_task]
)
crew.kickoff()
from crewai import Agent, Task, Crew
# Create agent with Gmail thread management capabilities
thread_manager = Agent(
role="Thread Manager",
goal="Organize and manage email threads efficiently",
backstory="An AI assistant that specializes in email thread organization and management.",
apps=[
'gmail/fetch_thread',
'gmail/modify_thread',
'gmail/trash_thread'
]
)
# Task to organize email threads
thread_task = Task(
description="""
1. Fetch all threads from the last month
2. Apply appropriate labels to organize threads by project
3. Archive or trash threads that are no longer relevant
""",
agent=thread_manager,
expected_output="Email threads organized with appropriate labels and cleanup completed"
)
crew = Crew(
agents=[thread_manager],
tasks=[thread_task]
)
crew.kickoff()

需要帮助?

如需 Gmail 集成设置或故障排查方面的帮助,请联系我们的支持团队。