---
title: "solon-ai-talent-cli"
---

```xml
<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、应用示例


```java
// 创建挂载管理器
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 格式清单，自动追加换行 |
