Skip to main content
Open In ColabOpen on GitHub

Gmail 工具集

这将帮助您开始使用 GMail 工具集。此工具集与 GMail API 交互,以读取邮件、起草和发送邮件等等。有关所有 GmailToolkit 功能和配置的详细文档,请前往 API 参考

设置

要使用此工具集,您需要设置您的凭据,具体说明请参阅 Gmail API 文档。下载 credentials.json 文件后,您就可以开始使用 Gmail API 了。

安装

此工具包位于 langchain-google-community 包中。我们需要 gmail 附加组件:

%pip install -qU langchain-google-community\[gmail\]

要启用对单个工具的自动跟踪,请设置您的 LangSmith API 密钥:

# os.environ["LANGSMITH_TRACING"] = "true"
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")

实例化

默认情况下,工具包会读取本地的 credentials.json 文件。您也可以手动提供一个 Credentials 对象。

from langchain_google_community import GmailToolkit

toolkit = GmailToolkit()
API Reference:GmailToolkit

自定义身份验证

在后台,会使用以下方法创建一个 googleapi 资源。您也可以手动构建一个 googleapi 资源以获得更多身份验证控制。

from langchain_google_community.gmail.utils import (
build_resource_service,
get_gmail_credentials,
)

# Can review scopes here https://developers.google.com/gmail/api/auth/scopes
# For instance, readonly scope is 'https://www.googleapis.com/auth/gmail.readonly'
credentials = get_gmail_credentials(
token_file="token.json",
scopes=["https://mail.google.com/"],
client_secrets_file="credentials.json",
)
api_resource = build_resource_service(credentials=credentials)
toolkit = GmailToolkit(api_resource=api_resource)

工具集

查看可用工具集:

tools = toolkit.get_tools()
tools
[GmailCreateDraft(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailSendMessage(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailSearch(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailGetMessage(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>),
GmailGetThread(api_resource=<googleapiclient.discovery.Resource object at 0x1094509d0>)]

在 Agent 中使用

下面我们展示如何将工具包整合到 Agent 中。

我们需要一个 LLM 或聊天模型:

pip install -qU "langchain[google-genai]"
import getpass
import os

if not os.environ.get("GOOGLE_API_KEY"):
os.environ["GOOGLE_API_KEY"] = getpass.getpass("Enter API key for Google Gemini: ")

from langchain.chat_models import init_chat_model

llm = init_chat_model("gemini-2.0-flash", model_provider="google_genai")
from langgraph.prebuilt import create_react_agent

agent_executor = create_react_agent(llm, tools)
API Reference:create_react_agent
example_query = "Draft an email to fake@fake.com thanking them for coffee."

events = agent_executor.stream(
{"messages": [("user", example_query)]},
stream_mode="values",
)
for event in events:
event["messages"][-1].pretty_print()
================================ Human Message =================================

Draft an email to fake@fake.com thanking them for coffee.
================================== Ai Message ==================================
Tool Calls:
create_gmail_draft (call_slGkYKZKA6h3Mf1CraUBzs6M)
Call ID: call_slGkYKZKA6h3Mf1CraUBzs6M
Args:
message: Dear Fake,

I wanted to take a moment to thank you for the coffee yesterday. It was a pleasure catching up with you. Let's do it again soon!

Best regards,
[Your Name]
to: ['fake@fake.com']
subject: Thank You for the Coffee
================================= Tool Message =================================
Name: create_gmail_draft

Draft created. Draft Id: r-7233782721440261513
================================== Ai Message ==================================

I have drafted an email to fake@fake.com thanking them for the coffee. You can review and send it from your email draft with the subject "Thank You for the Coffee".

API 参考

有关 GmailToolkit 所有功能和配置的详细文档,请访问 API 参考