Crate zoey_core

Crate zoey_core 

Source
Expand description

ZoeyAI Core Runtime

This crate provides the core runtime, types, and interfaces for building AI agents optimized for local model deployment. It includes:

  • Agent runtime with resource-efficient execution
  • Plugin system with dependency resolution
  • Memory management optimized for edge devices
  • Local model integration (Ollama, llama.cpp, LocalAI)
  • Event system for pub/sub messaging
  • Planning and cost management system
  • Privacy-first, offline-capable architecture

§Example: Local Model Agent

use zoey_core::*;

#[tokio::main]
async fn main() -> Result<()> {
    // Initialize runtime for local Ollama model
    let runtime = AgentRuntime::new(RuntimeOpts::default()).await?;
    // Agent runs 100% locally, no cloud dependencies
    Ok(())
}

Re-exports§

pub use actions::compose_action_examples;
pub use actions::format_action_names;
pub use actions::format_actions;
pub use character_loader::load_character_from_xml;
pub use character_loader::parse_character_xml;
pub use config::get_env_bool;
pub use config::get_env_float;
pub use config::get_env_int;
pub use config::get_env_or;
pub use config::get_required_env;
pub use config::load_env;
pub use config::load_env_from_path;
pub use config::validate_env;
pub use distributed::ClusterConfig;
pub use distributed::DistributedMessage;
pub use distributed::DistributedRuntime;
pub use distributed::NodeInfo;
pub use distributed::NodeStatus;
pub use dynamic_prompts::compose_random_user;
pub use dynamic_prompts::upgrade_double_to_triple;
pub use dynamic_prompts::DynamicPromptExecutor;
pub use dynamic_prompts::DynamicPromptOptions;
pub use dynamic_prompts::MetricsSummary;
pub use dynamic_prompts::ModelMetrics;
pub use dynamic_prompts::ResponseFormat;
pub use dynamic_prompts::SchemaMetrics;
pub use dynamic_prompts::SchemaRow;
pub use dynamic_prompts::SchemaType;
pub use dynamic_prompts::ValidationLevel;
pub use zoeyos::ZoeyOS;
pub use zoeyos::ZoeyOSMetrics;
pub use zoeyos::HealthStatus as ZoeyOSHealthStatus;
pub use zoeyos::SendMessageOptions;
pub use zoeyos::SendMessageResult;
pub use entities::create_unique_uuid_for_entity;
pub use entities::find_entity_by_name;
pub use entities::find_entity_by_name_with_config;
pub use entities::format_entities;
pub use entities::get_entity_details;
pub use entities::get_recent_interactions;
pub use entities::EntityResolutionConfig;
pub use error::ZoeyError;
pub use error::Result;
pub use function_calling::create_function_definition;
pub use function_calling::FunctionCall;
pub use function_calling::FunctionDefinition;
pub use function_calling::FunctionHandler;
pub use function_calling::FunctionRegistry;
pub use function_calling::FunctionResult;
pub use integration::AdaptiveCapable;
pub use integration::AlternativeOption;
pub use integration::AlwaysOnPlugins;
pub use integration::AuditContext;
pub use integration::Capability;
pub use integration::CapabilityRegistry;
pub use integration::CpuInfo;
pub use integration::DynamicPluginManager;
pub use integration::ExplainabilityCapable;
pub use integration::Explanation;
pub use integration::FinetuneResult;
pub use integration::GpuInfo;
pub use integration::HardwareCapable;
pub use integration::HardwareInfo;
pub use integration::IntegrationBridge;
pub use integration::IntegrationSummary;
pub use integration::IntentCategory;
pub use integration::IntentDetector;
pub use integration::MLCapable;
pub use integration::MemoryInfo;
pub use integration::ModelStatus;
pub use integration::OptimizationRecommendation;
pub use integration::PluginLifecycle;
pub use integration::PluginManagerStatus;
pub use integration::PluginPolicy;
pub use integration::PluginState;
pub use integration::ProcessedIntent;
pub use integration::TaskConfig;
pub use integration::TrainingExample;
pub use integration::WorkflowCapable;
pub use integration::WorkflowConfig;
pub use integration::WorkflowResult;
pub use integration::WorkflowStatus;
pub use ipo::create_government_pipeline;
pub use ipo::IPOPipeline;
pub use ipo::Input;
pub use ipo::Output;
pub use ipo::Process;
pub use ipo::ProcessDecision;
pub use message::MessageProcessor;
pub use ml_bridge::MLBridge;
pub use ml_bridge::MLFramework;
pub use ml_bridge::ModelInterface;
pub use ml_bridge::PythonEnvironment;
pub use ml_bridge::SecurityConfig;
pub use ml_bridge::TrainedModel;
pub use multi_agent::AgentCapability;
pub use multi_agent::AgentStatus as MultiAgentStatus;
pub use multi_agent::CoordinationMessage;
pub use multi_agent::CoordinationMessageType;
pub use multi_agent::MultiAgentCoordinator;
pub use multi_agent::MultiAgentService;
pub use observability::CostSummary;
pub use observability::CostTracker;
pub use observability::CostTrackingConfig;
pub use observability::LLMCallContext;
pub use observability::LLMCostRecord;
pub use observability::Observability;
pub use observability::ObservabilityConfig;
pub use observability::PromptStorageConfig;
pub use observability::ProviderPricing;
pub use observability::RestApiConfig;
pub use planner::AgentBudget;
pub use planner::BudgetAction;
pub use planner::BudgetCheckResult;
pub use planner::BudgetManager;
pub use planner::ComplexityAnalyzer;
pub use planner::ComplexityAssessment;
pub use planner::ComplexityLevel;
pub use planner::CostCalculator;
pub use planner::CostEstimate;
pub use planner::EmojiPlanner;
pub use planner::EmojiStrategy;
pub use planner::EmojiTone;
pub use planner::EmojiType;
pub use planner::ExecutionPlan;
pub use planner::ExecutionRecord;
pub use planner::KnowledgeAnalyzer;
pub use planner::KnowledgeGap;
pub use planner::KnowledgeState;
pub use planner::MetricsTracker;
pub use planner::ModelPricing;
pub use planner::Optimization;
pub use planner::PlanOptimizer;
pub use planner::Planner;
pub use planner::PlannerConfig;
pub use planner::PlannerMetrics;
pub use planner::Priority;
pub use planner::ResponseStrategy;
pub use planner::ResponseTone;
pub use planner::ResponseType;
pub use planner::TokenBudget;
pub use planner::TokenCounter;
pub use planner::TokenEstimate;
pub use planner::TokenTracker;
pub use plugin::get_plugin_actions;
pub use plugin::get_plugin_evaluators;
pub use plugin::get_plugin_providers;
pub use plugin::get_plugin_services;
pub use plugin::initialize_plugins;
pub use plugin::load_plugins;
pub use plugin::resolve_plugin_dependencies;
pub use plugin::validate_plugin;
pub use resilience::retry_with_backoff;
pub use resilience::CircuitBreaker;
pub use resilience::CircuitState;
pub use resilience::HealthCheck;
pub use resilience::HealthChecker;
pub use resilience::HealthStatus;
pub use resilience::RetryConfig;
pub use roles::find_worlds_for_owner;
pub use roles::get_user_world_role;
pub use roles::is_admin_or_owner;
pub use roles::is_moderator_or_higher;
pub use roles::Role;
pub use runtime::AgentRuntime;
pub use runtime::RuntimeOpts;
pub use runtime_ref::downcast_runtime_ref;
pub use runtime_ref::RuntimeRef;
pub use secrets::get_secret;
pub use secrets::has_character_secrets;
pub use secrets::load_secret_from_env;
pub use secrets::remove_secret;
pub use secrets::set_default_secrets_from_env;
pub use secrets::set_secret;
pub use security::decrypt_secret;
pub use security::encrypt_secret;
pub use security::hash_password;
pub use security::sanitize_input;
pub use security::validate_input;
pub use security::verify_password;
pub use security::RateLimiter;
pub use streaming::collect_stream;
pub use streaming::create_text_stream;
pub use streaming::StreamHandler;
pub use streaming::TextChunk;
pub use streaming::TextStream;
pub use streaming::TextStreamSender;
pub use templates::compose_prompt_from_state;
pub use templates::TemplateEngine;
pub use templates::MESSAGE_HANDLER_TEMPLATE;
pub use templates::POST_CREATION_TEMPLATE;
pub use testing::create_mock_runtime;
pub use testing::create_test_memory;
pub use testing::create_test_room;
pub use testing::run_test_suite;
pub use training::create_training_collector;
pub use training::DatasetBuilder;
pub use training::DatasetStatistics;
pub use training::RLHFManager;
pub use training::TrainingCollector;
pub use training::TrainingConfig;
pub use training::TrainingFormat;
pub use training::TrainingSample;
pub use utils::create_unique_uuid;
pub use utils::string_to_uuid;
pub use utils::Logger;
pub use utils::BM25;
pub use extensions::LearningProvider;
pub use extensions::LearningFeedback;
pub use extensions::FeedbackSource;
pub use extensions::TrainingResult;
pub use extensions::BasicLearningProvider;
pub use extensions::ComplianceProvider;
pub use extensions::PiiFinding;
pub use extensions::PiiType;
pub use extensions::Severity;
pub use extensions::ComplianceFramework;
pub use extensions::ComplianceCheckResult;
pub use extensions::ComplianceFinding;
pub use extensions::AuditEntry;
pub use extensions::AuditOutcome;
pub use extensions::ComplianceAuditReport;
pub use extensions::BasicComplianceProvider;
pub use extensions::DistributedExecutor;
pub use extensions::NodeInfo as ExtNodeInfo;
pub use extensions::NodeStatus as ExtNodeStatus;
pub use extensions::NodeResources as ExtNodeResources;
pub use extensions::DistributedTask;
pub use extensions::DistributedTaskResult;
pub use extensions::ClusterStatus;
pub use extensions::PolicyProvider;
pub use extensions::PolicyRule;
pub use extensions::PolicyRuleType;
pub use extensions::PolicyDecision;
pub use extensions::IdentityProvider;
pub use extensions::Identity;
pub use extensions::ConsentScope;
pub use extensions::DataExportRequest;
pub use extensions::DataDeletionRequest;
pub use extensions::DataRequestStatus;
pub use extensions::ExtensionRegistry;
pub use types::*;

Modules§

actions
Action formatting utilities
agent_api
Agent API module
character_loader
Character configuration loader from XML files
config
Configuration management and environment variable loading
detectors
distributed
Distributed Runtime Support
dynamic_prompts
Dynamic prompt execution system with schema validation
entities
Entity resolution and management utilities
error
Error types for ZoeyOS core
extensions
Extension Points for Enterprise Features
function_calling
Function calling support for LLMs
infrastructure
Infrastructure module for production-ready features
integration
Cross-Plugin Integration Module
ipo
IPO Pattern - Input, Process, Output
message
Message processing pipeline
ml_bridge
ML Bridge - Python/Rust Interop for Machine Learning
multi_agent
Multi-Agent Coordination
nlp
observability
pipeline
planner
Planning phase for agent operations
plugin
Plugin loading and management utilities
plugin_system
preprocessor
resilience
Resilience patterns: Circuit breakers, health checks, retry logic
roles
Role management utilities for worlds/servers
runtime
runtime_ref
Thread-safe runtime reference wrapper for components
secrets
Secrets management utilities
security
Security features: encryption, validation, rate limiting
streaming
Streaming response support
templates
Template engine for prompt generation
testing
Testing utilities and framework
training
Training and reinforcement learning utilities
types
Core type definitions for ZoeyOS
utils
Utility functions and helpers
workers
zoeyos
ZoeyOS - Multi-agent orchestration framework

Structs§

Uuid
A Universally Unique Identifier (UUID).