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 参考。