The Discord Tool gives your agent the ability to search, read, and write messages to discord channels.
It is useful for when you need to interact with a discord channel.
import { DiscordGetMessagesTool, DiscordChannelSearchTool, DiscordSendMessagesTool, DiscordGetGuildsTool, DiscordGetTextChannelsTool,} from "@langchain/community/tools/discord";// Get messages from a channel given channel IDconst getMessageTool = new DiscordGetMessagesTool();const messageResults = await getMessageTool.invoke("1153400523718938780");console.log(messageResults);// Get guilds/serversconst getGuildsTool = new DiscordGetGuildsTool();const guildResults = await getGuildsTool.invoke("");console.log(guildResults);// Search results in a given channel (case-insensitive)const searchTool = new DiscordChannelSearchTool();const searchResults = await searchTool.invoke("Test");console.log(searchResults);// Get all text channels of a serverconst getChannelsTool = new DiscordGetTextChannelsTool();const channelResults = await getChannelsTool.invoke("1153400523718938775");console.log(channelResults);// Send a messageconst sendMessageTool = new DiscordSendMessagesTool();const sendMessageResults = await sendMessageTool.invoke("test message");console.log(sendMessageResults);
import { ChatOpenAI } from "@langchain/openai";import { initializeAgentExecutorWithOptions } from "langchain/agents";import { DiscordSendMessagesTool } from "@langchain/community/tools/discord";import { DadJokeAPI } from "@langchain/community/tools/dadjokeapi";const model = new ChatOpenAI({ model: "gpt-4o-mini", temperature: 0,});const tools = [new DiscordSendMessagesTool(), new DadJokeAPI()];const executor = await initializeAgentExecutorWithOptions(tools, model, { agentType: "zero-shot-react-description", verbose: true,});const res = await executor.invoke({ input: `Tell a joke in the discord channel`,});console.log(res.output);// "What's the best thing about elevator jokes? They work on so many levels."