---
title: "talents - Talent 是啥？与 Skill 啥区别？"
---



| | Claude Agent Skills（技能） | Solon AI Talents（才能） |
| --- | --- | --- |
| **一句话定义** | Agent **学习获得**的能力 | Agent **内在具备**的能力 |
| **能力来源** | 运行时学习 | 开发时添加 |
| **类比** | 实习生在项目中边做边学的新手艺 | 工程师入职前就已掌握的专业本领 |

**Solon AI Talents 在设计思想上，深度参考并吸收了 Claude Code Agent Skills 的概念原型**，但两者在落地上走向了不同的维度 —— 前者是 Agent 在运行时"学会"的，后者是开发者在编码时"赋予"的。


### 1、 运行时学习的技能：Claude Code Agent Skills

> 本质上是 **Model-Side Tooling**（模型端工具增强），是一个规约文件。

Claude Code 的 Skill 将复杂的系统级操作（如文件读写、代码搜索、Shell 执行）封装成模型可感知的技能。Agent 在运行过程中，根据上下文**主动学习并决定调用哪些技能**。

- **核心价值**：极致的 Agency（代理性）。它让 Agent 像真人程序员一样拥有操作物理资源的手。
- **存在形式**：一系列高度集成的本地工具集。
- **能力特征**：全量挂载，模型自行按需调用 —— Agent 在运行时"学会"了使用这些工具。

**简单说：技能是 Agent 在运行时自己"学"会的。**


### 2、 开发时注入的才能：Solon AI Talents

> 进一步将"能力封装"抽象为 **Developer-Side Framework**（开发侧框架扩展），是一个规约接口。

Solon AI Talents 在概念原型上参考了 Claude Code 的 Skill 体系，但将其从"运行时学习"翻转为"开发时注入"—— 开发者在编码阶段就通过接口契约为 Agent 预设好能力边界、行为规范和生命周期。

- **核心价值**：工程化的 Control（可控性）。它不仅关注"才能是什么"，更关注"如何在复杂的企业环境中约束和编排才能"。
- **存在形式**：一套标准的 Java 接口契约与生命周期模型。
- **能力特征**：通过 `isSupported`、`onAttach`、`getInstruction` 等钩子，开发者在编译时就定义了才能的激活条件、初始化逻辑和指令策略。

**简单说：才能是开发者在开发时"赋予"Agent 的。**


### 3、 一张表看懂两者的差异

| 特性维度 | Claude Agent Skills（技能） | Solon AI Talents（才能） |
| --- | --- | --- |
| **核心定位** | 运行时学习的能力 | 开发时添加的能力 |
| **设计起源** | 赋予 Agent 物理操作能力 | 参考前者原型，实现业务架构规范 |
| **存在形态** | 静态工具描述 + 执行逻辑 | Java 接口契约 + 动态生命周期钩子 |
| **上下文感知** | 模型自行按需调用 | 通过 `isSupported` 实现业务前置感知 |
| **指令策略** | 静态 System Prompt 注入 | 通过 `getInstruction` 实现指令动态合成 |
| **权限控制** | 依赖运行环境权限 | 三态路由：基于角色/租户的动态分发 |
| **谁在主导** | Agent 自己（运行时决策） | 开发者（开发时定义） |


### 4、 从"运行时学习"到"开发时注入"：架构上的演进

#### 4.1 动态生命周期：让才能具备"感知力"

Claude Code 的技能通常是全量挂载的 —— Agent 在运行时自行判断用哪个。而 Solon AI 的 Talent 接口引入了更严谨的生命周期管理，**在开发时就定义好激活规则**：

- **`isSupported(Prompt)`** — 开发者预先定义"这个才能在什么条件下才激活"。例如：一个"退款才能"会感知当前用户权限，若权限不足，该才能在探测阶段就会"隐身"，模型从根源上无法感知到它的存在。
- **`onAttach(Prompt)`** — 在才能激活时触发，允许开发者进行 Session 预热或初始化业务参数。这是从单纯的"工具调用"向"有状态任务"的跨越。

#### 4.2 指令染色与动态注入：减少模型幻觉

Solon AI 吸收了 Claude Code 通过 System Message 约束 Agent 行为的思想，并将其从"运行时学习"提升为"开发时编排"：

- **工具染色**：将 Talent 的元信息（如所属模块、约束条件）动态"染色"到每一个 `FunctionTool` 中。
- **指令对齐**：通过 `getInstruction` 动态生成当前上下文最相关的 Prompt，并与工具列表强绑定注入 System Message。确保模型不仅拥有"工具"，还拥有当前业务场景下的"使用说明书" —— **而这些都是在开发时就编排好的**。


### 5、 核心接口：才能的工程哲学

通过 Solon AI 的 Talent 接口，可以看到"开发时注入"这一理念的完整落地：

```java
public interface Skill {
    // 才能名称（默认类名）
    default String name() { ... }

    // 才能描述
    default String description() { ... }

    // 才能元信息
    default SkillMetadata metadata() { ... }

    // 准入检查：开发时定义 —— 该才能在当前对话上下文中是否被激活
    default boolean isSupported(Prompt prompt) { return true; }

    // 挂载钩子：才能被激活时触发
    default void onAttach(Prompt prompt) { ... }

    // 动态指令注入：开发时编排 —— 生成并注入到 System Message 的描述性文本
    default String getInstruction(Prompt prompt) { ... }

    // 动态工具注入：获取该才能挂载的所有功能工具
    default Collection<FunctionTool> getTools(Prompt prompt) { ... }
}
```


### 6、 总结：一句话记住两者的区别

> **Claude Agent Skills（技能）= 运行时学习的能力**
> — Agent 在运行过程中自己学会的本事，解决"Agent 能做什么"的问题。

> **Solon AI Talents（才能）= 开发时添加的能力**
> — 开发者在编码时就赋予 Agent 的本领，解决"开发者如何构建 Agent 系统"的问题。

如果你正在为 Agent 打造运行时的执行利器，Claude Code 的技能思想是最佳参考；如果你正在构建一套可维护、可治理的 AI 业务框架，Solon AI 的才能接口则是更成熟的工程方案。
