@ag-kit/tools API 参考
@ag-kit/tools 包的完整应用程序接口文档。本参考涵盖所有可用工具、其接口、方法签名以及包含 MultiEditTool、事务支持和增强工具包等最新功能的实用示例。
API 概览
文件系统 API
支持 MultiEditTool 和事务操作的多后端文件系统完整参考
代码执行 API
支持 E2B 沙箱和本地环境的多语言代码执行
命令行 API
具备安全验证和多命令支持的 Shell 命令执行
浏览器 API
集成 Playwright 和 E2B 沙箱的网页自动化
MCP 协议 API
面向外部工具生态的模型上下文协议集成
安装方式
核心接口
BaseTool 接口
所有工具都继承自具备高级泛型支持和生命周期管理的抽象BaseTool 类:
- 泛型类型安全:完整的 TypeScript 泛型支持(模式、状态和输出类型)
- 自动验证:基于 Zod 模式的输入验证
- 上下文支持:包含会话、用户和状态追踪的执行上下文
- 审批流程:敏感操作的可选审批要求
- 错误处理:全面的错误分类和时间指标
- 元数据访问:工具自省和显示定制
ToolResult 接口
标准化结果格式,包含全面的错误分类:success:表示操作成功/失败的布尔值data:工具输出数据(成功时)——基于工具的强类型数据error:详细错误信息(失败时)error_type:可编程处理的分类错误类型executionTime:执行耗时(毫秒),用于性能监控
validation:输入验证失败security:安全违规(路径遍历、未授权访问)file_not_found:文件或目录缺失permission:访问被拒或权限不足execution:运行时执行错误unknown:未分类错误
BaseToolkit 接口
用于组织和管相关工具集的综合工具包类:- 泛型状态支持:类型安全的状态管理
- 生命周期钩子:可重写的
onInitialize()和onDestroy()方法 - 批量操作:通过
invokeTools()执行多个工具 - 工具发现:按名称或描述搜索和筛选工具
- 事件系统:监听工具包和工具生命周期事件
- 上下文共享:跨工具共享执行上下文
- 验证机制:内置完整性检查和错误报告
- 克隆功能:创建不同配置的工具包副本
DynamicTool 类
动态工具实现,无需子类化即可从函数创建工具:tool() 辅助函数
创建 DynamicTool 实例的便捷工厂函数:应用程序接口使用模式
工具创建
使用工厂函数、tool()辅助工具或继承BaseTool来创建工具:
工具调用
所有工具都遵循相同的异步调用模式,并提供全面的错误处理:错误处理
针对不同类型的错误采取特定的恢复策略:应用程序接口特性
类型安全
- 完整的TypeScript支持:所有工具输入和输出的编译时类型检查
- 运行时验证:带有详细错误信息的Zod模式验证
- 强类型结果:具有IntelliSense支持的工具特定返回类型
- 通用接口:灵活的类型系统用于自定义工具开发
异步操作
- 基于Promise的API:所有操作返回promise以支持async/await
- 超时控制:可配置长时间运行操作的超时
- 资源管理:自动清理和资源释放
- 取消支持:集成AbortController以支持操作取消
错误处理
- 结构化错误类型:分类错误以便程序化处理
- 详细上下文:包含堆栈跟踪和元数据的丰富错误信息
- 一致格式:所有工具统一的错误结构
- 性能监控:执行时间跟踪和性能指标
高级特性
- 事务支持:具有回滚能力的原子操作
- 多后端支持:本地、内存中和沙箱执行环境
- 批量操作:MultiEditTool用于高效批量操作
- 工具包管理:具有生命周期管理的组织化工具集合
- 事件系统:用于监控的工具和工具包生命周期事件
- 安全特性:路径验证、沙箱化和权限控制
工具类别
文件系统工具
支持多后端的文件和目录操作API,包括:- 独立工具:读取、写入、编辑、多编辑、全局搜索、Grep、列表操作
- 事务支持:具有回滚能力的原子操作
- 多后端:本地、内存中和沙箱文件操作器
- 增强工具包:可配置模式适应不同用例
代码执行工具
具有沙箱隔离的安全多语言代码执行: 执行器:- BuiltInCodeExecutor:具有完全隔离的E2B沙箱执行
- UnsafeLocalCodeExecutor:用于可信环境的本地执行
- Python、JavaScript/Node.js、TypeScript、Bash、R、Java、Go、C++等
- 超时控制、资源限制、文件系统集成
- 实时输出流和错误处理
命令行工具
具有安全验证和多命令支持的Shell命令执行: 工具:- BashTool:具有环境控制的单命令执行
- MultiCommandTool:具有状态持久化的顺序命令执行
- 命令验证、路径限制、环境隔离
- 常见操作的内置命令构建器
浏览器自动化工具
与Playwright和E2B沙箱集成的Web自动化: 特性:- 在隔离环境中的安全浏览器自动化
- 截图捕获、元素交互、