> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-docs-zh.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord 集成

> 使用 LangChain Python 集成 Discord 工具

本指南提供了快速入门 [langchain\_discord](https://langchain-docs-zh.mintlify.site/langchain/oss/python/integrations/tools.md) Discord 工具的概述。有关每个工具和配置的更多详细信息，请参阅您的存储库中的 docstrings 或相关文档页面。

## 概述

### 集成详情

| 类 | 包 | 可序列化 | JS 支持 | 版本 |
| :- | :- | :-: | :-: | :-: |
| `DiscordReadMessages`, `DiscordSendMessage` | [`langchain-discord-shikenso`](https://github.com/Shikenso-Analytics/langchain-discord) | N/A | TBD | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-discord-shikenso?style=flat-square\&label=%20) |

### 工具特性

* **`DiscordReadMessages`**: 从指定频道读取消息。
* **`DiscordSendMessage`**: 向指定频道发送消息。

## 设置

集成由 `langchain-discord-shikenso` 包提供。按以下方式安装：

```python theme={null}
pip install --quiet -U langchain-discord-shikenso
```

### 凭证

此集成需要您将 `DISCORD_BOT_TOKEN` 设置为环境变量，以使用 Discord API 进行身份验证。

```bash theme={null}
export DISCORD_BOT_TOKEN="your-bot-token"
```

```python theme={null}
import getpass
import os

# Example prompt to set your token if not already set:
# if not os.environ.get("DISCORD_BOT_TOKEN"):
#     os.environ["DISCORD_BOT_TOKEN"] = getpass.getpass("DISCORD Bot Token:\n")
```

您可以选择设置 [LangSmith](https://smith.langchain.com) 进行跟踪或可观察性：

```python theme={null}
os.environ["LANGSMITH_TRACING"] = "true"
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass()
```

## 实例化

以下示例展示了如何在 `langchain_discord` 中实例化 Discord 工具。根据您的具体用途进行调整。

```python theme={null}
from langchain_discord.tools.discord_read_messages import DiscordReadMessages
from langchain_discord.tools.discord_send_messages import DiscordSendMessage

read_tool = DiscordReadMessages()
send_tool = DiscordSendMessage()

# Example usage:
# response = read_tool({"channel_id": "1234567890", "limit": 5})
# print(response)
#
# send_result = send_tool({"message": "Hello from notebook!", "channel_id": "1234567890"})
# print(send_result)
```

## 调用

### 带参数的直接调用

以下是一个使用字典中的关键字参数调用工具的简单示例。

```python theme={null}
invocation_args = {"channel_id": "1234567890", "limit": 3}
response = read_tool(invocation_args)
response
```

### 使用 ToolCall 调用

如果您有一个模型生成的 `ToolCall`，请按照以下格式将其传递给 `tool.invoke()`。

```python theme={null}
tool_call = {
    "args": {"channel_id": "1234567890", "limit": 2},
    "id": "1",
    "name": read_tool.name,
    "type": "tool_call",
}

tool.invoke(tool_call)
```

## 链接

以下是一个完整示例，展示了您如何在链或智能体中与 LLM 集成 `DiscordReadMessages` 和 `DiscordSendMessage` 工具。此示例假设您有一个函数（如 @\[`create_agent`]）来设置一个 LangChain 风格的智能体，该智能体能够在适当的时候调用工具。

```python theme={null}
# Example: Using Discord Tools in an Agent

from langchain.agents import create_agent
from langchain_discord.tools.discord_read_messages import DiscordReadMessages
from langchain_discord.tools.discord_send_messages import DiscordSendMessage


# 1. Instantiate or configure your language model
# (Replace with your actual LLM, e.g., ChatOpenAI(temperature=0))
model = ...

# 2. Create instances of the Discord tools
read_tool = DiscordReadMessages()
send_tool = DiscordSendMessage()

# 3. Build an agent that has access to these tools
agent_executor = create_agent(model, [read_tool, send_tool])

# 4. Formulate a user query that may invoke one or both tools
example_query = "Please read the last 5 messages in channel 1234567890"

# 5. Execute the agent in streaming mode (or however your code is structured)
stream = agent_executor.stream_events(
    {"messages": [("user", example_query)]},
    version="v3",
)

# 6. Print out the model's responses (and any tool outputs) as they arrive
for snapshot in stream.values:
    snapshot["messages"][-1].pretty_print()
```

***

## API 参考

有关用法详情、参数和高级配置，请参阅：

* [discord\_read\_messages.py](https://github.com/Shikenso-Analytics/langchain-discord/blob/main/langchain_discord/tools/discord_read_messages.py)
* [discord\_send\_messages.py](https://github.com/Shikenso-Analytics/langchain-discord/blob/main/langchain_discord/tools/discord_send_messages.py)
* [toolkits.py](https://github.com/Shikenso-Analytics/langchain-discord/blob/main/langchain_discord/toolkits.py)

***

> 官方原文：[src/oss/python/integrations/tools/discord.mdx](https://github.com/langchain-ai/docs/blob/main/src/oss/python/integrations/tools/discord.mdx) · 非官方翻译，译文由 AI 生成，以英文原文为准。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.