@Preview(value="3.8.4") public class SkillDesc extends java.lang.Object implements Skill
查询示例:
Skill weatherSkill = SkillDesc.builder("weather")
.description("查询实时天气和预报")
.isSupported("天气", "气温") // 关键词匹配
.instruction("查询天气时,如果用户没说城市,默认查杭州。") // 静态指令
.toolAdd(new WeatherTools()) // 挂载工具
.build();
| 限定符和类型 | 类和说明 |
|---|---|
static class |
SkillDesc.Builder |
| 构造器和说明 |
|---|
SkillDesc(SkillMetadata metadata,
java.util.function.Function<Prompt,java.lang.Boolean> isSupportedHandler,
java.util.function.Function<Prompt,java.lang.String> getInstructionHandler,
java.util.function.Consumer<Prompt> onAttachHandler,
java.util.function.Function<Prompt,java.util.Collection<FunctionTool>> getToolsHandler) |
| 限定符和类型 | 方法和说明 |
|---|---|
static SkillDesc.Builder |
builder(java.lang.String name) |
java.lang.String |
description()
获取技能描述
|
java.lang.String |
getInstruction(Prompt prompt)
动态指令注入:生成并注入到 System Message 的描述性文本(如果使用 MD 层级,从第三级开始)
用于约束 AI 如何使用该技能下的工具
|
java.util.Collection<FunctionTool> |
getTools(Prompt prompt)
动态工具注入:获取该技能挂载的所有功能工具
|
boolean |
isSupported(Prompt prompt)
准入检查:决定该技能在当前对话上下文中是否被激活
|
SkillMetadata |
metadata()
获取技能元信息
|
java.lang.String |
name()
获取技能名称(默认类名)
|
void |
onAttach(Prompt prompt)
挂载钩子:技能被激活时触发
可用于初始化会话状态、审计日志记录或上下文预处理
|
public SkillDesc(SkillMetadata metadata, java.util.function.Function<Prompt,java.lang.Boolean> isSupportedHandler, java.util.function.Function<Prompt,java.lang.String> getInstructionHandler, java.util.function.Consumer<Prompt> onAttachHandler, java.util.function.Function<Prompt,java.util.Collection<FunctionTool>> getToolsHandler)
public java.lang.String description()
Skilldescription 在接口中 Skillpublic SkillMetadata metadata()
Skillpublic boolean isSupported(Prompt prompt)
SkillisSupported 在接口中 Skillprompt - 当前提示词上下文public java.lang.String getInstruction(Prompt prompt)
SkillgetInstruction 在接口中 Skillpublic java.util.Collection<FunctionTool> getTools(Prompt prompt)
Skillpublic static SkillDesc.Builder builder(java.lang.String name)