Skip to main content

Module executor

Module executor 

Source
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§

NoopCallback
空回调实现(用于无 UI 场景)
SkillExecutor
Skill 执行器

Traits§

ExecutionCallback
执行回调 trait(应用层实现,用于 UI 进度展示)
LlmProvider
LLM Provider trait(应用层实现)