package com.xly.tool; import com.xly.service.SkillService; import dev.langchain4j.agent.tool.P; import dev.langchain4j.agent.tool.Tool; import org.springframework.stereotype.Component; import java.util.Map; /** * Skill 加载工具(架构 §6,渐进披露)。 * *
system prompt 里只常驻 Skill 的「name + 何时用」摘要;当用户的需求命中某个 Skill 时,agent 调
* {@code load_skill(name)} 拉取该 Skill 的完整 playbook(详细步骤 + 建议工具)再照做。Skill 是无状态、
* 全局的,因此本工具是单例。
*/
@Component
public class SkillTool {
private final SkillService skills;
public SkillTool(SkillService skills) {
this.skills = skills;
}
@Tool("加载某个业务 Skill(playbook)的完整操作指南。当用户的需求匹配 system prompt 中列出的某个 Skill 名时,"
+ "先调用它拿到详细步骤,再按步骤用其它工具完成。入参 = Skill 名称(如 新建报价 / 月度对账 / 库存查询)。")
public String loadSkill(@P("Skill 名称") String name) {
Map