OpenCode 自定义工具——给AI编程助手装上专属技能
内容提要
OpenCode 的自定义工具允许用户通过 TypeScript 编写函数,为 AI 编程助手赋予特定技能。用户可以创建项目级或全局级工具,支持多种语言调用,覆盖内置功能,支持参数校验和上下文获取,适用于数据库查询和 API 调用等场景,提升了 AI 的灵活性和实用性。
关键要点
-
OpenCode 的自定义工具允许用户通过 TypeScript 编写函数,为 AI 编程助手赋予特定技能。
-
用户可以创建项目级或全局级工具,项目级工具只对当前项目生效,全局级工具适用于所有项目。
-
自定义工具的定义使用 TypeScript/JavaScript,但可以调用任何语言,如 Python、Shell、Node。
-
一个文件可以导出多个工具,命名规则为 文件名_导出名。
-
自定义工具的优先级高于内置工具,可以覆盖内置工具的功能。
-
支持参数校验,使用 tool.schema 进行类型定义,确保参数的正确性。
-
工具可以获取当前会话的上下文信息,增强了工具的灵活性。
-
可以通过自定义工具实现多种实际场景,如数据库查询、内部 API 调用、代码规范检查等。
-
OpenCode 的自定义工具机制使 AI 编程助手能够对接任意系统,提升了其功能和实用性。
延伸解读
自定义工具的灵活性
OpenCode 的自定义工具允许用户通过 TypeScript 编写函数,赋予 AI 编程助手特定技能。这种灵活性使得用户能够根据项目需求,快速创建和调整工具,满足不同场景的需求,如数据库查询和 API 调用。
覆盖内置工具的优先级
自定义工具的优先级高于内置工具,意味着用户可以根据需要替代或禁用某些功能。这种设计使得开发者能够更好地控制工具的行为,确保 AI 助手在特定场景下执行用户定义的逻辑。
参数校验的重要性
自定义工具支持参数校验,使用 tool.schema 进行类型定义,确保传入参数的正确性。这一特性不仅提高了工具的可靠性,也减少了因参数错误导致的运行时错误,提升了用户体验。
延伸问答
OpenCode 的自定义工具是什么?
OpenCode 的自定义工具是用户通过 TypeScript 编写的函数,允许 AI 编程助手直接调用,赋予其特定技能。
如何创建项目级和全局级工具?
项目级工具放在 .opencode/tools/ 目录下,只对当前项目生效;全局级工具放在 ~/.config/opencode/tools/,适用于所有项目。
自定义工具如何覆盖内置工具?
自定义工具的优先级高于内置工具,如果创建一个同名的工具文件,它将替代内置工具的功能。
自定义工具支持哪些编程语言?
自定义工具的定义使用 TypeScript/JavaScript,但可以调用任何语言,如 Python、Shell、Node。
如何进行参数校验?
可以使用 tool.schema 进行参数类型定义,确保传入参数的正确性,支持多种类型校验。
自定义工具可以应用于哪些实际场景?
自定义工具可以用于数据库查询、内部 API 调用、代码规范检查、部署触发和日志分析等场景。