关于 Convex Agents Tools
Convex Agents Tools 是一项技能,可为 Agent 配置调用 Convex 函数、外部 API 和复杂操作的工具,适合需要扩展 Agent 行动能力的开发者。它支持参数验证、自动工具调用,并将调用记录保存在对话线程中。
主要功能
- 01定义 Convex 感知工具
- 02使用 Zod 验证参数
- 03调用外部 API
- 04在线程中保存工具调用
- 05启用自动多步调用
适用场景
- 01查询或修改数据库数据
- 02让 Agent 调用外部 API
- 03构建人工参与的工作流
- 04串联多次工具调用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sstobo/ convex-skills --skill convex-agents-tools安装后在 Claude Code 中输入/convex-agents-tools确认已加载。
详细介绍
用途
让 Agent 具备超越文本生成的能力,能够执行各种操作。工具让 Agent 可以调用 Convex 函数、外部 API 以及复杂操作。
何时使用此技能
- Agent 需要查询或修改数据库数据
- 与外部 API 集成
- 创建 human-in-the-loop 工作流
- Agent 自主决定采取哪些操作
- 串联工具调用以执行多步操作
定义工具
创建感知 Convex 的工具:
import { createTool } from "@convex-dev/agent";
import { z } from "zod";
export const getUserDataTool = createTool({
description: "Fetch user information by email",
args: z.object({
email: z.string().email().describe("The user's email address"),
}),
handler: async (ctx, { email }): Promise<string> => {
const user = await ctx.runQuery(api.users.getUserByEmail, { email });
return user ? JSON.stringify(user) : "User not found";
},
});
为 Agent 配置工具
const agentWithTools = new Agent(components.agent, {
name: "Database Agent",
languageModel: openai.chat("gpt-4o-mini"),
tools: {
getUserData: getUserDataTool,
},
maxSteps: 5, // Allow tool calls
});
启用自动工具调用
export const autonomousAgent = action({
args: { threadId: v.string(), request: v.string() },
handler: async (ctx, { threadId, request }) => {
const { thread } = await agentWithTools.continueThread(ctx, { threadId });
const result = await thread.generateText(
{ prompt: request },
{ maxSteps: 10 } // Allow up to 10 tool calls
);
return result.text;
},
});
核心原则
- 使用 Zod 进行验证:字段上的
.describe()有助于大模型理解参数 - 显式返回类型:始终为处理函数标注返回类型
- 自动记录历史:工具调用和结果会自动保存在线程中
- 上下文绑定:在可以访问 userId 等信息的 action 内部创建工具
后续步骤
- 参阅 fundamentals 了解 Agent 设置
- 参阅 workflows 了解如何编排多步操作
- 参阅 context 了解感知工具的上下文管理
评论
支持 Markdown