Expand description
Skills(技能)模块
§概述
本模块提供 Skills 的加载、执行和与 Agent 的集成功能。
参考 zeroclaw 项目的设计:
- 支持多种配置文件格式(TOML/YAML/JSON)
- 支持多种提示词注入模式(Full/Compact)
- 提供 read_skill 工具读取 skill 详细信息
- 根据 skill 模式构建不同的系统提示词
§核心组件
§SkillLoader(技能加载器)
用于从目录加载技能定义:
use rucora_skills::SkillLoader;
let mut loader = SkillLoader::new("skills/");
let skills = loader.load_from_dir().await?;§SkillExecutor(技能执行器)
用于执行技能:
use rucora_skills::{SkillContext, SkillDefinition, SkillExecutor};
use serde_json::json;
use std::sync::Arc;
let executor = Arc::new(SkillExecutor::new());
let definition = SkillDefinition::new("my_skill", "My custom skill");
let context = SkillContext::new(json!({}), definition);
// 执行技能...§SkillTool(技能工具)
将技能转换为 Agent 可使用的工具:
use rucora_skills::{SkillTool, SkillExecutor, SkillDefinition};
use std::sync::Arc;
let executor = Arc::new(SkillExecutor::new());
let skill = SkillDefinition::new("my_skill", "My custom skill");
let tool = SkillTool::new(skill, executor, "skills/my_skill".into());§SkillsAutoIntegrator(技能自动集成器)
自动将技能集成到 Agent 中:
use rucora_skills::SkillsAutoIntegrator;
let integrator = SkillsAutoIntegrator::new("skills/");
// 集成技能...§子模块
cache: 技能缓存,用于缓存加载的技能定义config: 技能配置解析,支持 TOML/YAML/JSON 格式integrator: 技能自动集成器loader: 技能加载器和执行器tool_adapter: 技能到工具的适配器
Re-exports§
pub use cache::CachedSkillLoader;pub use cache::SkillCache;pub use config::SkillConfig;pub use config::SkillMeta;pub use integrator::SkillsAutoIntegrator;pub use loader::SkillExecutor;pub use loader::SkillImplementation;pub use loader::SkillLoader;pub use tool_adapter::ReadSkillTool;pub use tool_adapter::SkillTool;pub use tool_adapter::read_skill;pub use tool_adapter::skills_to_prompt_with_mode;pub use tool_adapter::skills_to_tools;
Modules§
- cache
- Skill 缓存模块
- config
- Skill 配置模块
- integrator
- Skills 与 Agent 自动集成模块
- loader
- Skill 加载器和执行器模块
- tool_
adapter - Skill 到 Tool 的适配器
Structs§
- Skill
Context - Skill 执行上下文
- Skill
Definition - Skill 定义
- Skill
Result - Skill 执行结果
Enums§
- Skills
Prompt Mode - Skills 提示词注入模式