skills - CliSkill 对接海量 Claude Code Agent Skills
在 Solon AI 生态中,CliSkill 是一个强大的 CLI 综合技能组件。它不仅提供了基础的终端交互能力,更重要的是,它完美兼容了 Claude Code Agent Skills 协议。
这意味着,您可以直接复用海量的开源 AI 技能插件,快速打造一个类似于 Claude Code CLI 的智能终端应用。
1、什么是 CliSkill?能干什么?
CliSkill 是一个基于 Pool-Box(池盒)模型 设计的 AI 技能插件。它充当了 AI 智能体(Agent)与操作系统之间的“手”和“眼”。
它能干什么?
- 对接生态:直接读取并运行符合 Claude Code 规范的技能包(包含 SKILL.md 声明的工具集)。
- 文件管理:允许 Agent 在授权的工作目录(Box)内进行 ls、cat、grep 以及精准的文件编辑(edit)。
- 指令执行:让 Agent 能够安全地调用系统指令(如 mvn, git, ffmpeg 等)来完成复杂任务(比如,生成项目代码,生成视频,生成PPT)。
- 环境隔离:通过“只读池(Pool)”挂载外部工具,通过“工作盒(Box)”限制修改范围,确保系统安全。
2、快速开始
第一步:准备技能包
在使用 CliSkill 之前,您需要下载一批符合 Claude Code 规范的技能插件。这些插件目录中通常包含一个 SKILL.md 文件,用于描述工具的用法。
- 推荐资源:https://github.com/zrt-ai-lab/opencode-skills 开源仓库 您可以将其克隆到本地目录。
第二步:集成到 Agent
通过 CliSkill 挂载您的技能目录,并配置 ReActAgent。
// 指向您下载的技能包或项目工作目录
String workDir = "/WORK/work_github/solonlab/opencode-skills";
ReActAgent agent = ReActAgent.of(LlmUtil.getChatModel())
.name("ClaudeCodeAgent")
.instruction("严格遵守挂载技能中的【规范协议】执行任务")
.defaultSkillAdd(new CliSkill(workDir)) // 挂载核心技能
.maxSteps(100) // 建议设置大点(如 100),确保复杂逻辑的链式思考能完整执行
.build();
// 发起任务:Agent 将会自动检索目录下的规范,并调用相关 CLI 工具执行
agent.prompt("帮我生成一个 solon web 项目,实现经典的管理系统,要简单些,只是用于演示");
3、功能特性说明
CliSkill 内置了以下兼容 Claude Code 协议的标准工具映射:
| 工具映射 | 说明 |
|---|---|
| ls | 列出目录内容,并自动识别标记为 (Claude Code Skill) 的目录。 |
| cat | 读取文件内容(如代码或 SKILL.md 规范)。 |
| grep | 在盒子或技能池中进行全文本递归搜索。 |
| write / edit | 在盒子空间内创建或精准修改文件(支持文本替换与模糊匹配)。 |
| run_command | 执行系统指令。支持自动解析以 @pool 开头的虚拟路径。 |
| exists_cmd | 预检查环境依赖(如 python, ffmpeg, node 等)。 |
4、进阶使用:多技能池挂载
如果您有多个不同来源的技能包,可以使用 mountPool 进行隔离挂载:
CliSkill cli = new CliSkill("my-box", "/path/to/workdir")
.mountPool("@media", "/path/to/ffmpeg-skills")
.mountPool("@ops", "/path/to/deploy-scripts");
Agent 在执行时,可以通过虚拟路径(如 @media/extract_audio.sh)安全地访问这些只读资源。
5、 参考实现与定制 SolonCodeCLI
为了让您更深入地了解实现细节,我们内置了一个参考实现类:SolonCodeCLI。
您可以直接查阅 org.noear.solon.ai.skills.claudecode.SolonCodeCLI (后面包名可能会换成 cli)的源码。该代码展示了如何处理跨平台的 Shell 指令、如何实现安全的文件路径解析以及如何通过 getInstruction 动态向 LLM 注入技能索引。
提示:您可以复制 SolonCodeCLI 的源码到您的项目中,根据业务需求(如增加特定的权限过滤或审计记录)进行进一步的二次开发。
开发好后,可以体验下以下指令(参力与我们配置的 Claude Code Agent Skills 有关):
- 新建个 xxx.txt 文件
- 在 xxx.txt 文件里写入 xxx
- 生成一个 solon web 项目,一个经典的权限管理系统,要有前端(基于 vue3)和后端(基于 java8),简单些,只是用于演示
- 生成一个用 solon ai 实现 mcp 分布式 skills 的介绍视频,30秒,你可以通过网络先调查资料设计后再生成