<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-talent-cli</artifactId>
</dependency>
1、描述
Solon AI 才能扩展,提供 CLI 才能(兼容 Claude Agent Skills 规范)。相关依赖:solon-ai-agent(Agent 集成)、solon-ai-sandbox(OS 级沙盒)、solon-ai-talent-mount(挂载体系)。
内置核心类说明:
| 类 | 描述 |
TerminalTalent | 提供终端交互、文件发现、分页读取、全文搜索及精准编辑能力 |
SkillTalent | 技能管理,负责从本地或挂载点发现、加载和管理 Agent 技能 |
TodoTalent | 提供复杂任务的拆解、进度跟踪及计划修订能力 |
TerminalTalentProxy | TerminalTalent 的代理模式包装,用于选择性暴露工具 |
2、应用示例
// 创建挂载管理器
MountManager mountManager = new MountManager("/path/to/workspace");
// 创建 TerminalTalent(提供 ls, read, write, edit, bash 等文件和命令工具)
TerminalTalent terminalTalent = new TerminalTalent(mountManager);
terminalTalent.setSandboxEnabled(true); // 默认已启用沙盒模式
// 创建 SkillTalent(提供技能发现、搜索和加载工具)
SkillTalent skillTalent = new SkillTalent(mountManager);
// 创建 TodoTalent(提供任务进度跟踪)
TodoTalent todoTalent = new TodoTalent();
ReActAgent agent = ReActAgent.of(LlmUtil.getChatModel())
.name("SolonCodeAgent")
.defaultTalentAdd(terminalTalent) // 注入终端能力
.defaultTalentAdd(skillTalent) // 注入技能管理能力
.defaultTalentAdd(todoTalent) // 注入任务追踪能力
.maxTurns(30) //最大回合
.autoRethink(true) //自动反思(超过最大回合后)
.build();
// 发起任务:Agent 会自动 ls 目录,阅读代码,并根据需要调用 bash 执行指令
agent.prompt("帮我把当前目录下的所有 .wav 文件转换成 .mp3");
3、TerminalTalent 工具参考
通过 @ToolMapping 向 AI Agent 注册以下工具(11 个基础工具,异步模式额外增加 4 个):
| 工具名 | 描述 |
bash | 执行非交互式 Shell 指令。支持多行脚本,支持逻辑路径(如 @pool)自动转环境变量 |
ls | 列出目录内容。支持递归 Tree 结构展示,支持逻辑路径,自动过滤 .git/node_modules 等 |
read | 分页读取文件内容。128KB 物理长度保护,自动生成下一页引导提示 |
write | 创建新文件或覆盖现有文件。自动创建父目录 |
edit | 精准文本替换,支持单次调用执行多处编辑。具有原子性:所有编辑预校验通过才写入,否则全部回滚 |
grep | 递归搜索内容,返回 路径:行号:内容。支持正则表达式,无效正则自动降级为 contains 匹配 |
glob | 按通配符模式搜索文件,最多返回 500 条。确定文件范围的最高效工具 |
- 异步会话工具(需
bashAsyncEnabled=true)
| 工具名 | 描述 |
bash_start | 启动异步 Shell 命令会话。超时不失败,返回 session_id 供后续操作 |
bash_wait | 继续等待运行中的命令会话,返回新增输出或最终状态 |
bash_stdin | 向运行中的命令会话写入 stdin 文本,支持交互式程序 |
bash_stop | 终止运行中的命令会话及其子进程树 |
4、SkillTalent 工具参考
| 工具名 | 描述 |
skillread | 读取技能的 SKILL.md 详细说明书。在选定技能后调用,获取具体的环境要求、参数规约及可用文件列表 |
skillsearch | 按关键词搜索技能(空格分隔,AND 逻辑)。匹配名称和描述,返回前 15 条结果 |
skilllist | 列出所有已挂载技能的完整清单。仅在技能数 ≤ searchThreshold 时可用 |
skillrefresh | 重新扫描所有挂载点,更新技能列表 |
5、TodoTalent 工具参考
| 工具名 | 描述 |
todoread | 读取当前任务清单。用于同步执行进度,确认下一步操作 |
todowrite | 写入任务列表(新建、更新或重构)。接收 Markdown 格式清单,自动追加换行 |