1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//! Skills(技能)模块
//!
//! # 概述
//!
//! 本模块提供 Skills 的加载、执行和与 Agent 的集成功能。
//!
//! 参考 zeroclaw 项目的设计:
//! - 支持多种配置文件格式(TOML/YAML/JSON)
//! - 支持多种提示词注入模式(Full/Compact)
//! - 提供 read_skill 工具读取 skill 详细信息
//! - 根据 skill 模式构建不同的系统提示词
//!
//! # 核心组件
//!
//! ## SkillLoader(技能加载器)
//!
//! 用于从目录加载技能定义:
//!
//! ```rust,no_run
//! use rucora_skills::SkillLoader;
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! let mut loader = SkillLoader::new("skills/");
//! let skills = loader.load_from_dir().await?;
//! # Ok(())
//! # }
//! ```
//!
//! ## SkillExecutor(技能执行器)
//!
//! 用于执行技能:
//!
//! ```rust,no_run
//! use rucora_skills::{SkillContext, SkillDefinition, SkillExecutor};
//! use serde_json::json;
//! use std::sync::Arc;
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! let executor = Arc::new(SkillExecutor::new());
//! let definition = SkillDefinition::new("my_skill", "My custom skill");
//! let context = SkillContext::new(json!({}), definition);
//! // 执行技能...
//! # Ok(())
//! # }
//! ```
//!
//! ## SkillTool(技能工具)
//!
//! 将技能转换为 Agent 可使用的工具:
//!
//! ```rust,no_run
//! use rucora_skills::{SkillTool, SkillExecutor, SkillDefinition};
//! use std::sync::Arc;
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! 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());
//! # Ok(())
//! # }
//! ```
//!
//! ## SkillsAutoIntegrator(技能自动集成器)
//!
//! 自动将技能集成到 Agent 中:
//!
//! ```rust,no_run
//! use rucora_skills::SkillsAutoIntegrator;
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! let integrator = SkillsAutoIntegrator::new("skills/");
//! // 集成技能...
//! # Ok(())
//! # }
//! ```
//!
//! # 子模块
//!
//! - [`cache`][]: 技能缓存,用于缓存加载的技能定义
//! - [`config`][]: 技能配置解析,支持 TOML/YAML/JSON 格式
//! - [`integrator`][]: 技能自动集成器
//! - [`loader`][]: 技能加载器和执行器
//! - [`tool_adapter`][]: 技能到工具的适配器
pub use ;
pub use ;
pub use SkillsAutoIntegrator;
pub use ;
pub use ;
pub use ;
/// Skills 提示词注入模式
///
/// 参考 zeroclaw 的 SkillsPromptInjectionMode