Skip to content

适用于 ADK 的 Slack 运行器

Supported in ADKPython

ADK 提供了 SlackRunner 类,允许你通过 Socket Mode 将智能体直接部署到 Slack 上。该集成为一个适配器,负责处理事件监听、响应分发和自动化对话线程管理。

用例

  • Socket Mode 部署:无需暴露公开的 HTTP 端点,即可将工作区事件路由到你的智能体。
  • 线程管理:在私信和嵌套线程回复之间维持连续的对话上下文。
  • 事件驱动触发:使用私信或应用提及自动激活智能体工作流。

前提条件

  • 在你的 Slack API 控制台 中配置好 Slack 应用。你必须先登录你的 Slack 账号。
  • 具备 Bot User OAuth Token(xoxb-...),并拥有 app_mentions:readchat:writeim:history 机器人令牌权限范围。
  • 具备 Websocket App-Level Token(xapp-...),并拥有 connections:write 权限范围。

安装

在终端中运行以下命令,安装 ADK 及所有必要的 Slack Socket Mode 依赖

pip install "google-adk[slack]"

与智能体一起使用

以下示例展示了将智能体部署到 Slack 的端到端配置流程。它配置了一个核心智能体,建立了一个内存会话来管理对话历史,并使用 SlackRunner 通过 Socket Mode 连接到你的工作区并处理传入事件。

import asyncio
import os
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.adk.integrations.slack import SlackRunner
from slack_bolt.app.async_app import AsyncApp

# 定义核心智能体
root_agent = Agent(
    model="gemini-flash-latest",
    name="slack_agent",
    instruction="You are a helpful team assistant running on Slack.",
)

# 通过 Socket Mode 将其连接到 Slack
runner = Runner(
    app_name="slack_agent",
    agent=root_agent,
    session_service=InMemorySessionService(),
    auto_create_session=True,
)
slack_app = AsyncApp(token=os.environ["SLACK_BOT_TOKEN"])
slack_runner = SlackRunner(runner, slack_app)

asyncio.run(slack_runner.start(os.environ["SLACK_APP_TOKEN"]))

更多资源