Skip to main content

mofa_foundation/agent/components/
reasoner.rs

1//! 推理组件
2//!
3//! 从 kernel 层导入 Reasoner trait,提供具体实现
4
5use async_trait::async_trait;
6use mofa_kernel::agent::components::reasoner::{Reasoner, ReasoningResult};
7use mofa_kernel::agent::context::AgentContext;
8use mofa_kernel::agent::types::AgentInput;
9use mofa_kernel::agent::{AgentResult, capabilities::ReasoningStrategy};
10
11// ============================================================================
12// 具体推理器实现
13// ============================================================================
14
15/// 直接推理器
16///
17/// 最简单的推理器,直接返回输入作为响应
18pub struct DirectReasoner;
19
20#[async_trait]
21impl Reasoner for DirectReasoner {
22    async fn reason(
23        &self,
24        input: &AgentInput,
25        _ctx: &AgentContext,
26    ) -> AgentResult<ReasoningResult> {
27        Ok(ReasoningResult::respond(input.to_text()))
28    }
29
30    fn strategy(&self) -> ReasoningStrategy {
31        ReasoningStrategy::Direct
32    }
33
34    fn name(&self) -> &str {
35        "direct"
36    }
37
38    fn description(&self) -> Option<&str> {
39        Some("直接推理器,将输入作为输出")
40    }
41}