@ agentskit/ 工具
简介 : major-package
赋予你的特工真实世界的能力 不写一个集成.
标记 : ai • 妇女 agents • 妇女 llm • 妇女 agentskit • 妇女 ai-agents • 妇女 function-calling • 妇女 tool-use • 妇女 mcp • 妇女 web-search • 妇女 filesystem
已核实的证据
- 软件包元数据和测试在
packages/tools/。 。 。 . - 软件包指南 : https://www.agentskit.io/docs/参考文献/packages/工具
- 稳定地图: 文件/服务.md
如何适应生态系统
@ agentskit/tools 给出了代理有用的手:网络取取,搜索,文件系统, shell, SQLite, 集成, 和 MCP 方便的工具定义.
- 探员Kit:与本回购中的其他包一起作曲,从可互换的小零件来构建代理.
- 书记官处: 查找已使用此图层的即时代理和模板 登记. agentskit.io。 。 。 .
- 游戏本: 学习本层背后的生产模式 游戏本. agentskit.io。 。 。 .
为什么工具
- 节省融合工作天数 ——网页搜索,文件系统读取/写入, shell 执行,目录列表准备下架;不需要接线
- 默认安全 ——文件系统工具被沙箱装入
basePath, shell 命令需要明确的许可列表,所以代理无法逃脱边界 - 可用任何运行时间组成 - 工具只是有计划的物品;它们与
@agentskit/runtime, (中文(简体) ),useChat循环 - 无摩擦地延伸 ——作者自定义工具与
@agentskit/templates并且以内置方式登记
安装
npm install @agentskit/tools
快速实例
import { createRuntime } from '@agentskit/runtime'
import { openai } from '@agentskit/adapters'
import { webSearch, filesystem, shell } from '@agentskit/tools'
const runtime = createRuntime({
adapter: openai({ apiKey: process.env.OPENAI_API_KEY, model: 'gpt-4o' }),
tools: [
webSearch(),
...filesystem({ basePath: './workspace' }),
shell({ timeout: 10_000, allowed: ['ls', 'cat', 'grep'] }),
],
})
const result = await runtime.run('Find the README and summarize it')
console.log(result.content)
与 useChat (浏览器)
工具是简单的 ToolDefinition 值 - 在 useChat 和进来一样 createRuntime。 。 。 .
正在编写工具 defineZodTool
如果您使用 佐德语Name, (中文(简体) ), @agentskit/tools 船舶 defineZodTool - 一个工厂:
- 类型
executezod schema( 全类型脚本推论) 的参数 - 通过运行时验证参数
schema.parse在调用函数前 - 通过用户提供将适配器的 Zod schema 转换为 JSON Schema
toJsonSchema回调
兹德和 zod-to-json-schema 为: 消费者拥有的任择依赖关系他们是
不是软件包端点,因为 defineZodTool 接受结构图和
消费者提供的JSON-Schema转换器.
npm install zod zod-to-json-schema
import { z } from 'zod'
import { zodToJsonSchema } from 'zod-to-json-schema'
import { defineZodTool } from '@agentskit/tools'
import type { JSONSchema7 } from 'json-schema'
const lookupUser = defineZodTool({
name: 'lookup_user',
description: 'Look up a user by ID.',
schema: z.object({
userId: z.string().uuid(),
includeProfile: z.boolean().optional(),
}),
toJsonSchema: (s) => zodToJsonSchema(s) as JSONSchema7,
async execute(args) {
// args.userId → string (UUID-validated by Zod at runtime)
// args.includeProfile → boolean | undefined
return await db.users.findById(args.userId, { profile: args.includeProfile })
},
})
对于没有Zod的工具,使用 defineTool 从 @agentskit/core 和JSON 斯克马 as const。 。 。 .
特征
内建(6)
webSearch()——与Serper,Tavily,DuckDuckGo或自定义供应商进行网络直播.fetchUrl()——安全HTTP 与 JSON / 文本处理,大小盖,锅炉板剥取.filesystem({ basePath })——沙箱读取,写出,并列出操作.shell({ allowed })—— 有命令允许列表的 shell 执行 + 超时 .sqliteQueryTool({ path })——针对本地的 SQLite 文件只读 SQL. 可选对等程序 :better-sqlite3。 。 。 . 说明: 从不反馈未验证的用户直接提示到sql字段 – 将输入过滤或使用参数化的帮助器包起来,如果将其暴露于不信任的输入.slackTool({ webhookUrl })贴给一个Slack Incoming Webhook。 对于 Bearer-toke 特性(搜索、频道列表),请使用slack()一体化.
安全出境请求
safeFetch(input, init?, policy?) 默认拒绝非公共主机和
重新检查每个方向跳。 地址分类来自
@agentskit/net,如此保留,未加说明,多播,CGNAT,IPv4-mapped
私人和其他非独播区 以及私人,
和链接本地地址。 主机名检查使用节点 DNS并失败
如果结果不公开或搜索失败,则关闭.
isPrivateIPv4 财务报告和审定财务报表 isPrivateHost 保留其遗留的小数处理
零加成点四(010.0.0.1 表示 10.0.0.1) (中文(简体) ). safeFetch 第一个
应用 WHINWG URL Canonicalization; 避免模糊的数字 URL 格式.
对于经过审查的内部目标,通过精确 allowedHosts 条目或设置
allowPrivateHosts: true;方向调整仍然通过选定的政策.
DNS飞行前没有将解析的地址与后来的连接联系起来,
因此它不会阻止 DNS 重新绑定. webSearch() 还读取提供者
通过 @agentskit/net 有2个 MiB 默认字节限制; 设置
maxResponseBytes 来改变它.
一体化(20+)
github, (中文(简体) ), linear, (中文(简体) ), slack, (中文(简体) ), notion, (中文(简体) ), discord, (中文(简体) ), gmail, (中文(简体) ),
googleCalendar, (中文(简体) ), stripe, (中文(简体) ), postgres, (中文(简体) ), s3, (中文(简体) ), firecrawl, (中文(简体) ), reader, (中文(简体) ),
documentParsers (PDF / DOCX / XLSX), (中文(简体) ), openaiImages, (中文(简体) ), elevenlabs, (中文(简体) ),
whisper, (中文(简体) ), deepgram, (中文(简体) ), maps, (中文(简体) ), weather, (中文(简体) ), coingecko, (中文(简体) ), browserAgent
(普贤行相. 每个集成输出颗粒子工具(如.
githubCreateIssue, (中文(简体) ), stripeCreatePaymentIntent与捆绑在一起
设置.
作者+组成
defineZodTool——以Zod为基地的工厂有运行时间验证+类型推论.- 构成,使用
composeTool财务报告和审定财务报表wrapToolWithSelfDebug从@agentskit/core。 。 。 . - 用于执行政策
createMandatorySandbox从@agentskit/sandbox。 。 。 .
MCP桥
createMcpClient+ 键toolsFromMcpClient——消耗任何MCP服务器的工具.createMcpServer将 AgentsKit 工具发布到支持 文档2024-11-05工具桥。 标记工具requiresConfirmation未关闭, 除非authorizeToolCall返回一个 明确核准。 过validateArgs(例如,createAjvValidator()(中文(简体) ) 在处决前执行已公布的计划; 远程错误得到消毒 除非exposeErrors: true已明确启用可信任的开发.- Stdio + 内膜运输. HTTP/SSE适配器为主机自有.
McpToolDefinition (从) @agentskit/tools/mcp)扩展核心工具
可选形状 title 财务报告和审定财务报表 annotations数字 : title, (中文(简体) ), readOnlyHint, (中文(简体) ),
destructiveHint, (中文(简体) ), idempotentHint,以及 openWorldHint。服务器列表和
客户端导入保留这些字段,包括明确 false 暗示.
导入的标题使用已有的 maxDescriptionBytes UTF-8 限制; 错误
元数据被拒绝。 提示仍然是不信任的咨询数据,从未给予过
- 确认或改变执行政策.
这些领域遵循 MCP 工具元数据规范。 。 。 .
它们是现有 2024-11-05 桥;
旧客户可能忽略未知字段。 这不增加谈判或
其他功能来自较新的协议修改.
支持的 MCP 协议矩阵
| 议定书的修订 | 生命周期 | 支助运输 | 支持的方法 | 就在这座桥外 |
|---|---|---|---|---|
2024-11-05 | initialize 进行确切版本的谈判; tools/list 财务报告和审定财务报表 tools/call; 关闭待拨电话 | 结构、内饰或注入式运输 | initialize, (中文(简体) ), tools/list, (中文(简体) ), tools/call | 资源、提示、抽样、任务、HTTP/WebSocket、认证、限制率和持久性 |
客户端和服务器在 initialize.params.protocolVersion 实值
没有 2024-11-05。需要省略能力的主机必须围绕
(b) 桥梁并不意味着其支持或孤立
未执行.
所有的工具都尊重 ToolDefinition 合同(ADR 0002)——平行
工具调用工作与任何适配器, @agentskit/runtime, (中文(简体) ), useChat, (中文(简体) ),
或自定义循环.
子路径
| 子路径 | 目录 |
|---|---|
@agentskit/tools/mcp | createMcpClient, (中文(简体) ), createMcpServer, (中文(简体) ), toolsFromMcpClient, stdio + 内膜运输. MCP 桥面食谱。 。 。 . |
@agentskit/tools/integrations | github, (中文(简体) ), linear, (中文(简体) ), slack, (中文(简体) ), notion, (中文(简体) ), discord, (中文(简体) ), gmail, (中文(简体) ), googleCalendar, (中文(简体) ), stripe, (中文(简体) ), postgres, (中文(简体) ), s3, (中文(简体) ), firecrawl, (中文(简体) ), reader, (中文(简体) ), documentParsers, (中文(简体) ), openaiImages, (中文(简体) ), elevenlabs, (中文(简体) ), whisper, (中文(简体) ), deepgram, (中文(简体) ), maps, (中文(简体) ), weather, (中文(简体) ), coingecko, (中文(简体) ), browserAgent。 。 。 . 综合食谱 + 键 更多整合。 。 。 . |
@agentskit/tools/mcp-devtools | 注入的运行时间检查工具 RuntimeInspector; 打开 @agentskit/tools/mcp。 。 。 . |
@agentskit/tools/validation | 可选 Ajv 支持 ArgsValidator 用于核心和MCP参数执行. |
生态系统
| 软件包 | 作用 |
|---|---|
| @ agentskit/ 核心 | ToolDefinition 合同 |
| @ agentskit/ 运行时间 | createRuntime({ tools }) |
| @ agentskit/ 反应 | useChat + UI 中的工具 |
| @ agentskit/ 模板 | 脚手架新工具 |
贡献者
许可证
麻省理工学院——见 自由主义。 。 。 .
文档
成熟性和相容性
- 稳定性: β 语录 看到了吗 文件/服务.md
- 节点.js 20+ 财务报告和审定财务报表 类型脚本 严格模式
- 发表于
@agentskit/tools