Expand description
Skill Execution Engine
定义 LLM Provider trait、执行回调接口和 Skill 执行器,用于 Skills 系统的执行引擎。
§概述
本模块提供了 Skills 执行引擎的核心抽象:
LlmProvider: LLM 调用接口,由应用层实现ExecutionCallback: 执行进度回调接口,用于 UI 进度展示NoopCallback: 空回调实现,用于无 UI 场景SkillExecutor: Skill 执行器,根据执行模式分发到不同执行方法
§设计原则
- 解耦设计:框架层通过 trait 定义接口,应用层实现具体 LLM 调用
- 可扩展性:支持流式和非流式两种调用方式
- 可测试性:通过 trait 抽象便于 Mock 测试
§示例
ⓘ
use aster::skills::executor::{LlmProvider, ExecutionCallback, NoopCallback, SkillExecutor};
use aster::skills::error::SkillError;
use async_trait::async_trait;
// 实现 LlmProvider
struct MyProvider;
#[async_trait]
impl LlmProvider for MyProvider {
async fn chat(
&self,
system_prompt: &str,
user_message: &str,
model: Option<&str>,
) -> Result<String, SkillError> {
// 调用实际的 LLM API
Ok("LLM 响应".to_string())
}
}
// 创建执行器并执行 Skill
let provider = MyProvider;
let executor = SkillExecutor::new(provider);
// let result = executor.execute(&skill, "用户输入", None).await;
// 使用 NoopCallback
let callback = NoopCallback;
callback.on_step_start("step1", "分析步骤", 3);Structs§
- Noop
Callback - 空回调实现(用于无 UI 场景)
- Skill
Executor - Skill 执行器
Traits§
- Execution
Callback - 执行回调 trait(应用层实现,用于 UI 进度展示)
- LlmProvider
- LLM Provider trait(应用层实现)