Composio集成
Scavio作为自定义工具包内置于 Composio 中—它是连接你的智能体与外部服务的工具层,覆盖所有主流框架。构建Scavio工具包、 将其绑定到Composio会话,任何由Composio驱动的智能体便能跨Google、YouTube、Amazon、 Walmart、Reddit、TikTok和Instagram进行实时搜索—一个工具包、一个API密钥。 Python和TypeScript均可使用。
前提条件
- Python 3.9或更高版本,或Node.js 18或更高版本。
- 从 dashboard.scavio.dev 获取的Scavio API密钥。
- 从 app.composio.dev 获取的Composio API密钥。
安装
# Python
pip install composio composio-scavio
# TypeScript
npm install @composio/core composio-scavio这两个包均封装了官方Scavio SDK,并将每个端点作为Composio自定义工具暴露,统一归于一个 SCAVIO 工具包之下。
设置API密钥
export SCAVIO_API_KEY=sk_live_your_key
export COMPOSIO_API_KEY=your_composio_key工具包会从环境变量中读取 SCAVIO_API_KEY。你也可以在构建工具包时显式传入。
快速开始(Python)
from composio import Composio
from composio_scavio import build_scavio_toolkit
composio = Composio()
scavio = build_scavio_toolkit() # reads SCAVIO_API_KEY
session = composio.create(
user_id="user_1",
experimental={"custom_toolkits": [scavio]},
)
# Hand the tools to your agent, or call one directly:
result = session.execute(
"SCAVIO_GOOGLE_SEARCH",
arguments={"query": "best search API for AI agents", "light_request": True},
)
print(result)快速开始(TypeScript)
import { Composio } from "@composio/core";
import { buildScavioToolkit } from "composio-scavio";
const composio = new Composio();
const scavio = buildScavioToolkit(); // reads SCAVIO_API_KEY
const session = await composio.create("user_1", {
experimental: { customToolkits: [scavio] },
});
const out = await session.execute("LOCAL_SCAVIO_GOOGLE_SEARCH", {
query: "best search API for AI agents",
light_request: true,
});
console.log(out);仅启用所需的数据源
默认启用全部数据源。每个数据源都由一个标志控制,因此你可以向模型暴露一份精简的工具列表:
# Python: web-only toolkit (Google, YouTube, Reddit)
scavio = build_scavio_toolkit(
enable_google=True,
enable_youtube=True,
enable_reddit=True,
enable_amazon=False,
enable_walmart=False,
enable_tiktok=False,
enable_instagram=False,
)// TypeScript: same idea
const scavio = buildScavioToolkit({
enableGoogle: true,
enableYoutube: true,
enableReddit: true,
enableAmazon: false,
enableWalmart: false,
enableTiktok: false,
enableInstagram: false,
});传入 all=True(Python)或 { all: true }(TypeScript), 即可无视各个标志注册全部工具。
工具slug
工具统一归于 SCAVIO 工具包之下。面向智能体的slug即工具包slug加上工具名称。 在Python中slug为 SCAVIO_GOOGLE_SEARCH;在TypeScript中,Composio会为自定义工具加上其保留的 LOCAL_ 前缀,因此同一工具变为 LOCAL_SCAVIO_GOOGLE_SEARCH。调用 session.execute(...) 时请使用对应的形式。
可用工具
每个Scavio端点都以带数据源前缀的工具形式暴露(共32个)。下表中的slug为简洁起见省略了 SCAVIO_ / LOCAL_SCAVIO_ 前缀。
| 数据源 | 工具 |
|---|---|
GOOGLE_SEARCH | |
| Amazon | AMAZON_SEARCH, AMAZON_PRODUCT |
| Walmart | WALMART_SEARCH, WALMART_PRODUCT |
| YouTube | YOUTUBE_SEARCH, YOUTUBE_METADATA |
REDDIT_SEARCH, REDDIT_POST | |
| TikTok | TIKTOK_PROFILE, TIKTOK_USER_POSTS, TIKTOK_VIDEO, TIKTOK_VIDEO_COMMENTS, TIKTOK_COMMENT_REPLIES, TIKTOK_SEARCH_VIDEOS, TIKTOK_SEARCH_USERS, TIKTOK_HASHTAG, TIKTOK_HASHTAG_VIDEOS, TIKTOK_USER_FOLLOWERS, TIKTOK_USER_FOLLOWINGS |
INSTAGRAM_PROFILE, INSTAGRAM_USER_POSTS, INSTAGRAM_USER_REELS, INSTAGRAM_USER_TAGGED, INSTAGRAM_USER_STORIES, INSTAGRAM_POST, INSTAGRAM_POST_COMMENTS, INSTAGRAM_COMMENT_REPLIES, INSTAGRAM_SEARCH_USERS, INSTAGRAM_SEARCH_HASHTAGS, INSTAGRAM_USER_FOLLOWERS, INSTAGRAM_USER_FOLLOWINGS |
工作原理
每个工具都将Scavio响应作为JSON对象返回,模型可直接读取。调用通过官方Scavio SDK完成, 由其处理认证、速率限制和请求格式化。由于这些工具在进程内运行,你需要自行提供Scavio API 密钥—Composio不会代理该请求。
积分消耗
大多数调用消耗1个积分。Reddit和Instagram消耗2个积分,当 light_request=false 时 Google消耗2个积分。请参阅 速率限制 文档了解套餐限制,并参阅 错误 参考获取重试指导。