---
title: "chat - Talent 注册与优先级"
---

Solon AI 提供了灵活的才能注册机制，你可以根据才能的生命周期需求，选择将其注册为全局默认才能，或者在单次请求中动态注入。



### 1、全局默认注册（静态配置）


如果你希望某个才能（如：基础安全审计、通用常识、全局翻译）在 ChatModel 的每一次对话中都生效，可以在构建 ChatModel 时通过 Builder 进行注册。


```java
ChatModel model = ChatModel.of(config)
        .defaultTalentAdd(talent) //或者（带优先级） .defaultTalentAdd(index, talent) 
        .build();
       
```

### 2、单次请求注入（动态覆盖）

在某些复杂的业务场景中，你可能需要根据当前的上下文（如：不同的业务入口、不同的用户角色）动态地决定加载哪些才能。


```java
model.prompt("...")
    .options(o -> o.talentAdd(talent)) //或者（带优先级） o.talentAdd(index, talent) 
    .call();
```


### 3、才能的执行优先级（顺序）


当多个才能同时存在时，Solon AI 会按照注册顺序依次调用各才能的 injectInstruction 方法。

* 顺序执行：才能指令会按序累加到 System Message 中。
* 工具染色：各才能自带的工具会自动打上所属才能的标签，模型会根据 System Message 中定义的 SOP 逻辑，选择最合适的才能工具进行调用。



指定执行顺序：

```java
model.prompt("...")
    .options(o -> o.talentAdd(2, talent)) //（带优先级）
    .call();
```



### 4、与 Tool 注册的关系

才能注册不仅注入了 Prompt 指令，同时也完成了其内部 getTools() 集合的自动注册。你无需再手动调用 defaultToolAdd 来挂载属于该才能的工具。


**提示：** 如果一个功能只需要“执行逻辑”而不需要“SOP 指令约束”，建议使用工具形态； 如果该功能包含复杂的业务逻辑、需要动态准入、或者需要引导模型的思考路径，则强烈建议封装为 Talent。
