Skip to main content

Crate imitatort

Crate imitatort 

Source
Expand description

§ImitatorT - Spring Boot Style Multi-Agent Framework

A modern, ready-to-use multi-Agent system framework with Spring Boot design philosophy, providing auto-configuration and convention-over-configuration features, allowing developers to quickly build AI Agent collaboration systems.

§快速开始

use imitatort::{quick_start, VirtualCompany, CompanyBuilder, CompanyConfig};

// Method 1: Quick start using auto-configuration
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Auto-configure and start multi-Agent system and web service
    imitatort::quick_start().await?;
    Ok(())
}
// Method 2: Manual configuration startup
use imitatort::{VirtualCompany, CompanyBuilder, CompanyConfig};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Create company instance from configuration
    let config = CompanyConfig::test_config(); // or load from YAML file
    let company = CompanyBuilder::from_config(config)?
        .build_and_save()
        .await?;

    // 启动多 Agent 系统
    company.run().await?;

    Ok(())
}

Re-exports§

pub use application::framework::CompanyBuilder;
pub use application::framework::VirtualCompany;
pub use core::config::CompanyConfig;
pub use bootstrap::quick_start;
pub use bootstrap::start_with_config;
pub use bootstrap::FrameworkLauncher;
pub use infrastructure::web::start_web_server;
pub use domain::Agent;
pub use domain::AgentId;
pub use domain::Department;
pub use domain::Group;
pub use domain::GroupVisibility;
pub use domain::LLMConfig;
pub use domain::Message;
pub use domain::MessageTarget;
pub use domain::Organization;
pub use domain::Role;
pub use domain::TriggerCondition;
pub use domain::user::User;
pub use core::tool::ToolRegistry;
pub use core::tool_provider::CompositeToolProvider;
pub use core::tool_provider::FrameworkToolProvider;
pub use core::tool_provider::RegistryToolProvider;
pub use domain::tool::CategoryNodeInfo;
pub use domain::tool::CategoryPath;
pub use domain::tool::JsonSchema;
pub use domain::tool::MatchType;
pub use domain::tool::ReturnType;
pub use domain::tool::Tool;
pub use domain::tool::ToolCallContext;
pub use domain::tool::ToolProvider;
pub use infrastructure::tool::FrameworkToolExecutor;
pub use infrastructure::tool::ToolEnvironment;
pub use infrastructure::tool::ToolExecutor;
pub use infrastructure::tool::ToolExecutorRegistry;
pub use infrastructure::tool::ToolResult;
pub use core::capability::CapabilityRegistry;
pub use core::capability_provider::CompositeCapabilityProvider;
pub use core::capability_provider::FrameworkCapabilityProvider;
pub use core::capability_provider::RegistryCapabilityProvider;
pub use domain::capability::Capability;
pub use domain::capability::CapabilityAccessType;
pub use domain::capability::CapabilityCallContext;
pub use domain::capability::CapabilityPath;
pub use domain::capability::CapabilityProvider;
pub use domain::capability::SkillCapabilityBinding;
pub use infrastructure::capability::CapabilityExecutor;
pub use infrastructure::capability::CapabilityExecutorRegistry;
pub use infrastructure::capability::CapabilityResult;
pub use infrastructure::capability::McpClient;
pub use infrastructure::capability::McpProtocolHandler;
pub use infrastructure::capability::McpServer;
pub use core::skill::SkillManager;
pub use domain::skill::BindingType;
pub use domain::skill::Skill;
pub use domain::skill::SkillToolBinding;
pub use domain::skill::ToolAccessType;
pub use domain::skill::BindingType as DomainBindingType;
pub use domain::skill::Skill as DomainSkill;
pub use domain::skill::SkillToolBinding as DomainSkillToolBinding;
pub use domain::skill::ToolAccessType as DomainToolAccessType;
pub use core::store::MessageFilter;
pub use core::store::Store;
pub use infrastructure::store::SqliteStore;
pub use config::AppConfig;
pub use core::watchdog_agent::ToolExecutionEvent;
pub use core::watchdog_agent::WatchdogAgent;
pub use core::watchdog_agent::WatchdogClient;
pub use core::watchdog_agent::WatchdogRule;
pub use core::watchdog::scheduler::ScheduleManager;
pub use core::watchdog::scheduler::ScheduleRule;
pub use core::watchdog::scheduler::ScheduleTick;
pub use core::watchdog::scheduler::ScheduleType;
pub use core::watchdog::poller::PollingManager;
pub use core::watchdog::poller::PollingRule;
pub use core::watchdog::poller::PollingTick;
pub use errors::ImitatorError;
pub use errors::Result as ImitatorResult;

Modules§

application
应用层 - 业务逻辑编排
bootstrap
框架引导模块 - 提供 Spring Boot 风格的自动配置启动功能
config
应用程序配置管理 - 管理运行时设置如数据库路径、网络绑定等 Application Configuration
core
核心层 - 提供运行时能力和基础服务
domain
领域层 - 定义核心业务实体 Domain Layer
errors
跨层错误类型定义 - 提供统一的错误处理机制 标准化错误处理
infrastructure
基础设施层 - 外部集成和服务