Keenkind 插件开发
Keenkind 插件用于提供可由模型调用的本地工具。插件独立运行,通过公开插件协议与 Keenkind 交换工具定义、调用参数和结构化结果。
优先使用内置 Keenkind Plugin Development Skill 创建骨架,它会按当前版本生成清单、Go 入口和测试示例。
目录结构
跳转到“目录结构”xin.example.text-tools/ keenkind.plugin.json bin/ text-tools.exe最小清单:
{ "schemaVersion": 1, "id": "xin.example.text-tools", "name": "Text Tools", "version": "1.0.0", "runtime": { "type": "stdio", "commands": { "windows": "bin/text-tools.exe", "darwin": "bin/text-tools" } }, "permissions": [], "resources": { "skills": [] }}数组字段必须使用数组,不能写成 null。插件 ID 建议使用反向域名,并在发布后保持不变。运行文件必须位于插件目录内。
定义工具
跳转到“定义工具”每个工具需要:
- 唯一且稳定的名称;
- 面向用户的标题;
- 简短、明确的用途说明;
- 严格的输入 Schema;
- 结构化成功结果;
- 可读且可判断是否重试的失败结果。
界面显示工具标题,不应向用户暴露宿主生成的路由名称。
使用 Go SDK
跳转到“使用 Go SDK”Go SDK 负责连接 Keenkind、注册工具、接收调用和返回结果。插件业务只处理已经验证的参数,并尊重取消信号。
开发时遵循以下原则:
- 初始化时只注册清单允许的工具。
- 每次调用都返回完整结果,不要只写日志。
- 长任务定期报告进度并支持取消。
- 修改文件前明确目标和影响范围。
- 退出时释放文件、进程和网络连接。
SDK 的具体包名和示例以 Keenkind Plugin Development Skill 随当前客户端提供的版本为准,避免复制已经过期的接口。
安装与调试
跳转到“安装与调试”- 构建 Windows 或 macOS 对应的可执行文件。
- 将完整目录放入
~/.keenkind/<environment>/plugins。 - 打开 设置 > 扩展 > 插件 并刷新。
- 检查名称、版本、权限和工具列表。
- 使用 插件调试 查看插件自己的诊断与日志。
- 在 请求审批 模式先测试只读工具,再测试修改性工具。
插件调试不会开放 Keenkind 整体的开发者工具。
发布检查
跳转到“发布检查”- Windows 和 macOS 入口都存在且可执行;
- 清单为有效 JSON,数组字段没有
null; - 工具名称和输入字段保持向后兼容;
- 不包含密钥、用户数据或开发机绝对路径;
- 失败、取消和重复调用都有确定结果;
- 请求的权限与实际行为一致。