import BetaNotice from '@pages/components/BetaNotice' import CodeEditor from '@pages/components/CodeEditor' export default function CustomTools() { return (

自定义工具

通过注册自定义工具,扩展 AI Agent 的能力边界。使用 Zod 定义严格的输入接口,让 AI 安全调用你的业务逻辑。

工具注册

每个自定义工具需要定义四个核心属性:name、description、input schema 和 execute 函数。

{ // 执行业务逻辑 const response = await fetch('/api/users', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(params) }) return await response.json() } })`} language="javascript" />

属性详解

📝 name (必需)

工具的唯一标识符,AI 通过此名称调用工具。

name: 'searchProducts' // 驼峰命名,语义清晰

💬 description (必需)

详细描述工具功能,帮助 AI 理解使用场景。

description: '根据关键词搜索商品,支持价格区间和分类筛选'

🔧 input (必需)

Zod schema 定义输入参数的类型和验证规则。

{`input: z.object({ keyword: z.string().min(1), priceRange: z.object({ min: z.number().optional(), max: z.number().optional() }).optional() })`}

⚡ execute (必需)

异步函数,接收验证后的参数并执行具体逻辑。

{`execute: async (params) => { // params 已通过 Zod 验证 const result = await businessLogic(params) return result // 返回结果给 AI }`}

页面过滤器

通过 pageFilter{' '} 属性控制工具在哪些页面可见,提升安全性和用户体验。

{ // 审批逻辑 }, // 可选:页面过滤器 pageFilter: { // 只在订单管理页面显示 include: ['/admin/orders', '/admin/orders/*'], // 排除特定页面 exclude: ['/admin/orders/archived'] } })`} language="javascript" />

最佳实践

⚡ 性能优化

  • • 使用 pageFilter 减少不必要的工具加载
  • • 在 execute 函数中实现适当的缓存机制
  • • 避免在工具中执行耗时的同步操作
) }