🎯 Skills 技能系统
Skill 描述一类任务的执行步骤,Java/MCP 工具提供实际业务操作。先按自定义工具注册 query_order,再添加下面的订单技能。
# 添加 Skill
创建 src/main/resources/agent/skills/order-helper/SKILL.md:
---
name: order-helper
description: 用户咨询订单状态时使用,先确认订单号,再查询订单。
---
先确认用户提供的订单号。
调用 query_order 获取实际状态。
只根据查询结果回答,不编造物流信息。
开启配置:
liteflow.agent.skills.enabled=true
liteflow.agent.skills.path=classpath:agent/skills
一个 Skill 放在一个独立子目录中,必须有 SKILL.md,其中 name、description 和正文不能为空。也可将 skills.path 改成部署机器上的目录,例如 /srv/liteflow/skills。
Skill 可以带 scripts/、references/、assets/ 等资源。框架会把资源放到会话的 .skills-cache/ 中,供模型读取或执行。技能引用的 Java/MCP 工具仍需注册;执行脚本还需开启 Shell,并在本地或镜像中安装解释器和依赖。
skills.path 始终是 Java 应用加载资源的位置。使用 Docker 时仍这样配置,不需要改成容器路径。业务输出放在 output/ 等目录,避免放入会被框架更新的 .skills-cache/。
# 限制可用技能
需要让某个组件只使用指定技能时覆写:
@Override
protected io.agentscope.core.skill.SkillFilter skillFilter() {
return io.agentscope.core.skill.SkillFilter.only("order-helper");
}
默认允许全部技能。文件系统目录中的技能会在后续调用时重新发现;classpath 技能更新后,需要重新构建并部署应用。skills.strict 当前没有运行时作用,不用于控制是否忽略错误。
# 查看本次使用了哪些技能
在 handleReply(reply, context) 中读取 context.getUsedSkills(),可得到本次已成功加载的技能名称,用于记录执行过程。
技能刷新、筛选和资源准备不会替代工具注册,也不会自动安装脚本依赖。发现技能但执行不了时,先检查工具是否可用、Shell 是否开启,以及实际运行环境中的解释器和依赖。



