Module agency

Module agency 

Source
Expand description

Agent Development Kit (Agency) - Rust Implementation

A Rust-native framework for building, orchestrating, and deploying AI agents. Inspired by multi-agent patterns but built from scratch for performance and control.

§Key Features

  • Code-First Development: Define agents and tools in Rust for type safety and performance
  • Modular Architecture: Compose agents into hierarchies (sequential, parallel, loop)
  • Tool Ecosystem: Built-in tools + custom function registration
  • Multi-Model Support: Works with any LLM provider (Gemini, OpenAI, Anthropic, local)
  • Session Management: Persistent conversation state with SQLite backend
  • Streaming Support: Real-time response streaming via SSE

§Example

use csm::Agency::{Agent, AgentBuilder, Tool, Runtime};

let search_agent = AgentBuilder::new("researcher")
    .model("gemini-2.5-flash")
    .instruction("You are a helpful research assistant.")
    .tool(Tool::web_search())
    .build();

let runtime = Runtime::new();
let result = runtime.run(&search_agent, "What is quantum computing?").await?;

Re-exports§

pub use agent::Agent;
pub use agent::AgentBuilder;
pub use agent::AgentConfig;
pub use agent::AgentRole;
pub use agent::AgentStatus;
pub use error::AgencyError;
pub use executor::ExecutionContext;
pub use executor::ExecutionResult;
pub use executor::Executor;
pub use memory::AgentCache;
pub use memory::CacheEntry;
pub use memory::ChunkingConfig;
pub use memory::ChunkingStrategy;
pub use memory::ContextSegment;
pub use memory::ContextSegmentType;
pub use memory::ContextWindow;
pub use memory::Document;
pub use memory::DocumentChunk;
pub use memory::DocumentType;
pub use memory::Embedding;
pub use memory::EmbeddingModel;
pub use memory::EmbeddingProvider;
pub use memory::KnowledgeBase;
pub use memory::MemoryConfig;
pub use memory::MemoryEntry;
pub use memory::MemoryError;
pub use memory::MemoryManager;
pub use memory::MemorySource;
pub use memory::MemoryStats;
pub use memory::MemoryType;
pub use memory::SearchResult;
pub use memory::SimilarityMetric;
pub use memory::VectorStore;
pub use memory::VectorStoreConfig;
pub use memory::VectorStoreStats;
pub use modality::vla_models;
pub use modality::vlm_models;
pub use modality::ActionCommand;
pub use modality::ActionParameters;
pub use modality::ActionType;
pub use modality::AudioContent;
pub use modality::AudioData;
pub use modality::BoundingBoxRegion;
pub use modality::ContentPart;
pub use modality::ImageContent;
pub use modality::ImageData;
pub use modality::ImageDetail;
pub use modality::ImageFormat;
pub use modality::Modality;
pub use modality::ModalityCapabilities;
pub use modality::ModelCategory;
pub use modality::MultimodalMessage;
pub use modality::MultimodalModel;
pub use modality::SensorData;
pub use modality::SensorType;
pub use modality::SensorValues;
pub use modality::VideoContent;
pub use modality::VideoData;
pub use modality::Waypoint;
pub use models::AgencyEvent;
pub use models::AgencyMessage;
pub use models::EventType;
pub use models::ToolCall;
pub use models::ToolResult;
pub use orchestrator::OrchestrationType;
pub use orchestrator::Orchestrator;
pub use orchestrator::Pipeline;
pub use orchestrator::Swarm;
pub use proactive::business_agent_config;
pub use proactive::household_agent_config;
pub use proactive::ActionRisk;
pub use proactive::ActionStatus;
pub use proactive::DetectedProblem;
pub use proactive::PermissionLevel;
pub use proactive::ProactiveAction;
pub use proactive::ProactiveAgentConfig;
pub use proactive::ProactiveMonitor;
pub use proactive::ProblemCategory;
pub use proactive::ProblemSeverity;
pub use proactive::ProblemStatus;
pub use remote::generate_node_id;
pub use remote::generate_task_id;
pub use remote::ArtifactType;
pub use remote::GpuInfo;
pub use remote::HardwareInfo;
pub use remote::LogLevel;
pub use remote::MonitorStats;
pub use remote::NodeId;
pub use remote::NodeStatus;
pub use remote::RemoteAgentClient;
pub use remote::RemoteEvent;
pub use remote::RemoteMonitor;
pub use remote::RemoteMonitorConfig;
pub use remote::RemoteMonitorError;
pub use remote::RemoteNode;
pub use remote::RemoteTask;
pub use remote::RemoteTaskBuilder;
pub use remote::RemoteTaskId;
pub use remote::RemoteTaskStatus;
pub use remote::ResourceUsage;
pub use remote::TaskArtifact;
pub use remote::TaskLogEntry;
pub use remote::TaskMetrics;
pub use remote::TaskPriority;
pub use remote::TaskResult;
pub use runtime::Runtime;
pub use runtime::RuntimeConfig;
pub use session::Session;
pub use session::SessionManager;
pub use session::SessionState;
pub use tools::BuiltinTools;
pub use tools::Tool;
pub use tools::ToolBuilder;
pub use tools::ToolRegistry;

Modules§

agent
Agent Definition and Builder
error
Agency Error types
executor
Agent Execution
memory
Memory and RAG (Retrieval-Augmented Generation) System
modality
Model Modality Support
models
Agency Data Models
orchestrator
Multi-Agent Orchestration
proactive
Proactive Agent System
remote
Remote Agent Monitoring System
runtime
Agency Runtime
session
Session Management
tools
Tool System