mofa_foundation/agent/components/
reasoner.rs1use 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
11pub 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}