跳转到内容
KeenKind.文档
控制台

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 负责连接 Keenkind、注册工具、接收调用和返回结果。插件业务只处理已经验证的参数,并尊重取消信号。

开发时遵循以下原则:

  1. 初始化时只注册清单允许的工具。
  2. 每次调用都返回完整结果,不要只写日志。
  3. 长任务定期报告进度并支持取消。
  4. 修改文件前明确目标和影响范围。
  5. 退出时释放文件、进程和网络连接。

SDK 的具体包名和示例以 Keenkind Plugin Development Skill 随当前客户端提供的版本为准,避免复制已经过期的接口。

  1. 构建 Windows 或 macOS 对应的可执行文件。
  2. 将完整目录放入 ~/.keenkind/<environment>/plugins。
  3. 打开 设置 > 扩展 > 插件 并刷新。
  4. 检查名称、版本、权限和工具列表。
  5. 使用 插件调试 查看插件自己的诊断与日志。
  6. 在 请求审批 模式先测试只读工具,再测试修改性工具。

插件调试不会开放 Keenkind 整体的开发者工具。

  • Windows 和 macOS 入口都存在且可执行;
  • 清单为有效 JSON,数组字段没有 null;
  • 工具名称和输入字段保持向后兼容;
  • 不包含密钥、用户数据或开发机绝对路径;
  • 失败、取消和重复调用都有确定结果;
  • 请求的权限与实际行为一致。