Skip to main content

Module agent

Module agent 

Source
Expand description

统一 Agent 框架

提供模块化、可组合、可扩展的 Agent 架构

§架构概述

┌─────────────────────────────────────────────────────────────────────┐
│                         统一 Agent 框架                              │
├─────────────────────────────────────────────────────────────────────┤
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │                    MoFAAgent Trait                            │    │
│  │  (统一 Agent 接口:id, capabilities, execute, interrupt)      │    │
│  └───────────────────────────┬─────────────────────────────────┘    │
│                              │                                       │
│  ┌───────────────────────────┼───────────────────────────────────┐  │
│  │           Modular Components (组件化设计)                      │  │
│  │  ┌──────────┐  ┌──────────┐  ┌────────┐  ┌──────────────┐    │  │
│  │  │ Reasoner │  │  Tool    │  │ Memory │  │  Coordinator │    │  │
│  │  │   推理器  │  │  工具    │  │ 记忆    │  │   协调器      │    │  │
│  │  └──────────┘  └──────────┘  └────────┘  └──────────────┘    │  │
│  └───────────────────────────────────────────────────────────────┘  │
│                                                                      │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │        AgentRegistry (runtime 注册中心实现)                    │    │
│  └─────────────────────────────────────────────────────────────┘    │
│                                                                      │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │               CoreAgentContext (统一上下文)                       │    │
│  └─────────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────────┘

§核心概念

§MoFAAgent Trait

所有 Agent 实现的统一接口:

use mofa_kernel::agent::prelude::*;

#[async_trait]
impl MoFAAgent for MyAgent {
    fn id(&self) -> &str { "my-agent" }
    fn name(&self) -> &str { "My Agent" }
    fn capabilities(&self) -> &AgentCapabilities { &self.caps }

    async fn initialize(&mut self, ctx: &CoreAgentContext) -> AgentResult<()> {
        Ok(())
    }

    async fn execute(&mut self, input: AgentInput, ctx: &CoreAgentContext) -> AgentResult<AgentOutput> {
        Ok(AgentOutput::text("Hello!"))
    }

    async fn interrupt(&mut self) -> AgentResult<InterruptResult> {
        Ok(InterruptResult::Acknowledged)
    }

    async fn shutdown(&mut self) -> AgentResult<()> {
        Ok(())
    }

    fn state(&self) -> AgentState {
        AgentState::Ready
    }
}

§AgentCapabilities

描述 Agent 的能力,用于发现和路由:

let caps = AgentCapabilities::builder()
    .tag("llm")
    .tag("coding")
    .input_type(InputType::Text)
    .output_type(OutputType::Text)
    .supports_streaming(true)
    .supports_tools(true)
    .build();

§CoreAgentContext

执行上下文,在 Agent 执行过程中传递状态:

let ctx = CoreAgentContext::new("execution-123");
ctx.set("user_id", "user-456").await;
ctx.emit_event(AgentEvent::new("task_started", json!({}))).await;

§模块结构

  • core - AgentCore 微内核接口(最小化核心)
  • traits - MoFAAgent trait 定义
  • types - AgentInput, AgentOutput, AgentState 等类型
  • capabilities - AgentCapabilities 能力描述
  • context - CoreAgentContext 执行上下文
  • error - 错误类型定义
  • components - 组件 trait (Reasoner, Tool, Memory, Coordinator)
  • config - 配置系统
  • registry - Agent 注册中心
  • tools - 统一工具系统

Re-exports§

pub use crate::plugin::AgentPlugin;
pub use capabilities::AgentCapabilities;
pub use capabilities::AgentCapabilitiesBuilder;
pub use capabilities::AgentRequirements;
pub use capabilities::AgentRequirementsBuilder;
pub use capabilities::ReasoningStrategy;
pub use context::AgentContext;
pub use context::AgentEvent;
pub use context::ContextConfig;
pub use context::EventBus;
pub use core::AgentLifecycle;
pub use core::AgentMessage;
pub use core::AgentMessaging;
pub use core::AgentPluginSupport;
pub use core::MoFAAgent;
pub use error::AgentError;
pub use error::AgentResult;
pub use traits::AgentMetadata;
pub use traits::AgentStats;
pub use traits::DynAgent;
pub use traits::HealthStatus;
pub use types::event::execution as execution_events;
pub use types::event::lifecycle;
pub use types::event::message as message_events;
pub use types::event::plugin as plugin_events;
pub use types::event::state as state_events;
pub use types::AgentInput;
pub use types::AgentOutput;
pub use types::AgentState;
pub use types::ChatCompletionRequest;
pub use types::ChatCompletionResponse;
pub use types::ChatMessage;
pub use types::ErrorCategory;
pub use types::ErrorContext;
pub use types::EventBuilder;
pub use types::GlobalError;
pub use types::GlobalEvent;
pub use types::GlobalMessage;
pub use types::GlobalResult;
pub use types::InputType;
pub use types::InterruptResult;
pub use types::LLMProvider;
pub use types::MessageContent;
pub use types::MessageMetadata;
pub use types::OutputContent;
pub use types::OutputType;
pub use types::ReasoningStep;
pub use types::ReasoningStepType;
pub use types::TokenUsage;
pub use types::ToolCall;
pub use types::ToolDefinition;
pub use types::ToolUsage;
pub use components::coordinator::CoordinationPattern;
pub use components::coordinator::Coordinator;
pub use components::memory::Memory;
pub use components::memory::MemoryItem;
pub use components::memory::MemoryStats;
pub use components::memory::MemoryValue;
pub use components::memory::Message;
pub use components::memory::MessageRole;
pub use components::reasoner::Reasoner;
pub use components::reasoner::ReasoningResult;
pub use components::tool::Tool;
pub use components::tool::ToolDescriptor;
pub use components::tool::ToolInput;
pub use components::tool::ToolMetadata;
pub use components::tool::ToolResult;
pub use registry::AgentFactory;
pub use config::AgentConfig;
pub use config::AgentType;

Modules§

capabilities
Agent 能力定义
components
Agent 组件模块
config
配置系统
context
Agent 上下文定义
core
MoFA Agent 核心接口 - 统一抽象
error
Agent 错误类型定义
plugins
提供动态插件机制,允许用户在运行时扩展和控制上下文内容
prelude
Prelude 模块 - 常用类型导入
registry
Agent 工厂接口
secretary
秘书Agent抽象层
traits
Agent 辅助类型定义
types
Agent 核心类型定义