Skip to content

用于 ADK 的 StackOne 插件

ADK 已支持Python

StackOne ADK 插件 通过 StackOne 的统一 AI 集成网关,将你的 ADK 智能体连接到数百个提供商。该插件无需为每个 API 手动定义工具函数,而是从你连接的提供商中动态发现可用工具,并将其作为 ADK 中的原生工具公开。它支持人力资源信息系统 (HRIS)、候选人跟踪系统 (ATS)、客户关系管理 (CRM)、生产力和日程安排工具,以及更多集成项目

使用案例

  • 销售和收入运营:构建智能体在你的 CRM(如 HubSpot、Salesforce)中查找潜在客户、丰富联系人数据、起草个性化外联邮件并记录活动——所有都在一次对话中完成。

  • 人事运营:创建智能体在你的 ATS(如 Greenhouse、Ashby)中筛选候选人、在你的日历工具(如 Google Calendar、Calendly)中检查可用性、收集面试评分卡、在流水线各阶段移动申请人,并自动入职到你的 HRIS(如 BambooHR、Workday)——涵盖整个员工生命周期,无需人工干预。

  • 营销自动化:构建广告系列智能体,将受众群体从你的 CRM 同步到你的电子邮件平台(如 Mailchimp、Klaviyo),触发邮件序列,并跨渠道报告参与度指标。

  • 产品交付:创建智能体对来自支持工具(如 Intercom、Zendesk、Slack)的传入反馈进行分类,在项目管理工具(如 Linear、Jira)中划分优先级并创建问题,并使用来自可观测性平台(如 PagerDuty、Datadog)的洞见解决事件——在单个工作流中统合产品研究、交付和可靠性。

前提条件

安装

pip install stackone-adk

或者使用 uv:

uv add stackone-adk

与智能体配合使用

环境变量

在运行以下示例之前,将你的 API 密钥设置为环境变量:

export STACKONE_API_KEY="your-stackone-api-key"
export GOOGLE_API_KEY="your-google-api-key"

一旦设置了 STACKONE_API_KEY,该插件会自动读取它并发现你连接的账户。

import asyncio

from google.adk.agents import Agent
from google.adk.apps import App
from google.adk.runners import InMemoryRunner
from stackone_adk import StackOnePlugin


async def main():
    plugin = StackOnePlugin()
    # 或者指定特定账户:
    # plugin = StackOnePlugin(account_id="YOUR_ACCOUNT_ID")

    tools = plugin.get_tools()
    print(f"发现 {len(tools)} 个工具")

    agent = Agent(
        model="gemini-2.5-flash",
        name="scheduling_agent",
        description="通过 StackOne 管理日程安排、人力资源和 CRM。",
        instruction=(
            "你是一个由 StackOne 支持的得力助手。 "
            "你通过使用可用工具帮助用户管理其日常安排、人力资源和 CRM 任务。\n\n"
            "始终保持乐于助人,并提供清晰、有条理的回复。"
        ),
        tools=tools,
    )

    app = App(
        name="scheduling_app",
        root_agent=agent,
        plugins=[plugin],
    )

    async with InMemoryRunner(app=app) as runner:
        events = await runner.run_debug(
            "从 Calendly 获取我最近安排的会议。",
            quiet=True,
        )
        # 提取智能体的最终文本回复
        for event in reversed(events):
            if event.content and event.content.parts:
                text_parts = [p.text for p in event.content.parts if p.text]
                if text_parts:
                    print("".join(text_parts))
                    break


asyncio.run(main())
import asyncio

from google.adk.agents import Agent
from google.adk.runners import InMemoryRunner
from stackone_adk import StackOnePlugin


async def main():
    plugin = StackOnePlugin()
    # 或者指定特定账户:
    # plugin = StackOnePlugin(account_id="YOUR_ACCOUNT_ID")

    tools = plugin.get_tools()
    print(f"发现 {len(tools)} 个工具")

    agent = Agent(
        model="gemini-2.5-flash",
        name="scheduling_agent",
        description="通过 StackOne 管理日程安排、人力资源和 CRM。",
        instruction=(
            "你是一个由 StackOne 支持的得力助手。 "
            "你通过使用可用工具帮助用户管理其日常安排、人力资源和 CRM 任务。\n\n"
            "始终保持乐于助人,并提供清晰、有条理的回复。"
        ),
        tools=tools,
    )

    async with InMemoryRunner(
        app_name="scheduling_app", agent=agent
    ) as runner:
        events = await runner.run_debug(
            "从 Calendly 获取我最近安排的会议。",
            quiet=True,
        )
        # 提取智能体的最终文本回复
        for event in reversed(events):
            if event.content and event.content.parts:
                text_parts = [p.text for p in event.content.parts if p.text]
                if text_parts:
                    print("".join(text_parts))
                    break


asyncio.run(main())

可用工具

与具有固定工具集的集成不同,StackOne 工具是通过 StackOne API 从你连接的提供商中动态发现的。可用工具取决于你在 StackOne 控制面板中连接了哪些 SaaS 提供商。

列出发现的工具:

plugin = StackOnePlugin(account_id="YOUR_ACCOUNT_ID") # 可选:省略以使用所有连接的账户
for tool in plugin.get_tools():
    print(f"{tool.name}: {tool.description}")

支持的集成类别

类别 示例提供商
HRIS HiBob, BambooHR, Workday, SAP SuccessFactors, Personio, Gusto
ATS Greenhouse, Ashby, Lever, Bullhorn, SmartRecruiters, Teamtailor
CRM & 销售 Salesforce, HubSpot, Pipedrive, Zoho CRM, Close, Copper
营销 Mailchimp, Klaviyo, ActiveCampaign, Brevo, GetResponse
票务 & 支持 Zendesk, Freshdesk, Jira, ServiceNow, PagerDuty, Linear
生产力 Asana, ClickUp, Slack, Microsoft Teams, Notion, Confluence
日程安排 Calendly, Cal.com
LMS & 学习 360Learning, Docebo, Go1, Cornerstone, LinkedIn Learning
商务 Shopify, BigCommerce, WooCommerce, Etsy
开发工具 GitHub, GitLab, Twilio

有关 200+ 已支持提供商的完整列表,请访问 StackOne 集成页面

配置

插件参数

参数 类型 默认值 描述
api_key str | None None StackOne API 密钥。如果未提供,则回退到 STACKONE_API_KEY 环境变量。
account_id str | None None 所有工具的默认账户 ID。
base_url str | None None API URL 覆盖(默认:https://api.stackone.com)。
plugin_name str "stackone_plugin" 用于 ADK 的插件标识符。
providers list[str] | None None 按提供商名称过滤(例如 ["calendly", "hibob"])。
actions list[str] | None None 使用 glob 语法按操作模式过滤。
account_ids list[str] | None None 将工具范围限定为特定的连接账户 ID。

工具过滤

按提供商、操作模式、账户 ID 或任何组合过滤工具:

# 指定账户
plugin = StackOnePlugin(account_ids=["acct-hibob-1", "acct-bamboohr-1"])

# 只读操作
plugin = StackOnePlugin(actions=["*_list_*", "*_get_*"])

# 使用 glob 模式的特定操作
plugin = StackOnePlugin(actions=["calendly_list_events", "calendly_get_event_*"])

# 组合过滤器
plugin = StackOnePlugin(
    actions=["*_list_*", "*_get_*"],
    account_ids=["acct-hibob-1"],
)

更多资源