Composio 为 AI 代理提供可用于生产的工具集,提供:
- 支持多个类别的 250 多种工具:
- 全面的框架支持,包括 OpenAI、 Groq、Claude、LlamaIndex、Langchain、CrewAI、Autogen、Gemini 以及更多
- 支持多种协议 (OAuth、API 密钥、Basic JWT) 的托管身份验证
- 通过优化设计将工具调用准确率提高高达 40%
- 用于后端集成的白标解决方案
- 支持自定义工具和扩展的可插拔架构
首先安装软件包
pip install composio-core
安装“composio”包及其 openai 插件 pip install composio-openai
.
让我们使用 OpenAI 创建 AI 代理,并使用 Composio 的 GitHub 工具为 GitHub 存储库加注星标
Note
在您的环境变量中设置您的 COMPOSIO_API_KEY 和 OPENAI_API_KEY.
将你的 GitHub 帐户连接到 Composio
composio add github # Run this in terminal
from openai import OpenAI
from composio_openai import ComposioToolSet, App, Action
openai_client = OpenAI(api_key="{{OPENAIKEY}}")
# 初始化 Composio 工具集
composio_tool_set = ComposioToolSet()
# 获取预先配置的 GitHub 工具
actions = composio_tool_set.get_actions(
actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]
)
my_task = "Star a repo composiodev/composio on GitHub"
# 设置 openai 助手
assistant_instruction = "You are a super intelligent personal assistant"
assistant = openai_client.beta.assistants.create(
name="Personal Assistant",
instructions=assistant_instruction,
model="gpt-4-turbo",
tools=actions,
)
# 创建线程
thread = openai_client.beta.threads.create()
message = openai_client.beta.threads.messages.create(
thread_id=thread.id, role="user", content=my_task
)
# 使用集成执行代理
run = openai_client.beta.threads.runs.create(
thread_id=thread.id, assistant_id=assistant.id
)
# 执行函数调用
response_after_tool_calls = composio_tool_set.wait_and_handle_assistant_tool_calls(
client=openai_client,
run=run,
thread=thread,
)
print(response_after_tool_calls)
要开始使用 JavaScript 中的 Composio SDK, 请按照以下步骤操作:
npm install composio-core
让我们使用 OpenAI 创建一个 AI 代理,并使用 Composio 的 GitHub 工具来加注 GitHub 存储库
Note
在您的环境变量中设置您的 COMPOSIO_API_KEY 和 OPENAI_API_KEY。
将你的 GitHub 帐户连接到 Composio
composio add github # 在终端中运行
import { OpenAIToolSet } from "composio-core";
import OpenAI from "openai";
const toolset = new OpenAIToolSet({ apiKey: process.env.COMPOSIO_API_KEY });
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const tools = await toolset.getTools({ actions: ["GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER"] });
async function createGithubAssistant(openai, tools) {
return await openai.beta.assistants.create({
name: "Github Assistant",
instructions: "You're a GitHub Assistant, you can do operations on GitHub",
tools: tools,
model: "gpt-4o"
});
}
async function executeAssistantTask(openai, toolset, assistant, task) {
const thread = await openai.beta.threads.create();
const run = await openai.beta.threads.runs.create(thread.id, {
assistant_id: assistant.id,
instructions: task,
tools: tools,
model: "gpt-4o",
stream: false
});
const call = await toolset.waitAndHandleAssistantToolCalls(openai, run, thread);
console.log(call);
}
(async () => {
const githubAssistant = await createGithubAssistant(openai, tools);
await executeAssistantTask(
openai,
toolset,
githubAssistant,
"Star the repository 'composiohq/composio'"
);
})();
- 阅读 docs.composio.dev 上的文档
- 在 discord 上发布您的问题
我们是一个开源项目,欢迎贡献。请阅读贡献指南了解更多信息,并在开始之前查看我们的行为准则。