multi-agent autonomous decision-making with llm-based reasoning
Agents independently retrieve their event history from persistent memory, invoke LLMs (GPT-3.5/GPT-4) to generate decisions based on context, and record decisions back to memory before execution. Each agent maintains its own memory store and operates asynchronously, enabling parallel decision-making across multiple agents without blocking. The decision workflow converts unstructured LLM output into validated, executable action schemas through structured parsing and error recovery.
Unique: Uses a structured memory-to-decision-to-action pipeline where agents retrieve full event history before each decision, enabling context-aware reasoning without external state servers. Each agent's decision process is fully auditable through memory records, and the system supports dynamic agent creation at runtime with isolated memory stores per agent.
vs alternatives: Differs from AutoGPT by persisting all agent decisions and reasoning in queryable memory rather than logging to console, enabling agents to learn from past mistakes and reducing redundant LLM calls for repeated scenarios.
inter-agent message-based communication via messagebus
A centralized MessageBus component enables agents to send and receive messages asynchronously without direct coupling. Agents publish messages to the bus (targeting specific agents or broadcasting to all), and the bus routes messages to subscribed agents based on recipient filters. The system decouples agent communication from agent logic, allowing new agents to be added without modifying existing agent code, and supports both point-to-point and broadcast messaging patterns.
Unique: Implements a centralized MessageBus that agents subscribe to, enabling broadcast and targeted messaging without agents needing to know each other's identities. Messages are processed through the agent's decision-making pipeline, allowing agents to treat incoming messages as events that trigger new reasoning cycles.
vs alternatives: Simpler than distributed message queues (RabbitMQ, Kafka) for small-scale multi-agent systems because it's in-process and requires no external infrastructure, but lacks persistence and ordering guarantees of production message brokers.
openai api integration with model selection and configuration
AI Legion integrates with OpenAI's API to invoke language models (GPT-3.5-turbo, GPT-4) for agent decision-making. The system handles API authentication through environment variables, supports model selection at startup, and manages API request/response formatting. The integration includes error handling for API failures, rate limiting, and token counting. Agents can be configured to use different models, enabling heterogeneous agent teams with varying capabilities and costs.
Unique: Integrates OpenAI API as the reasoning engine for agent decision-making, with support for model selection per agent and environment-based configuration. The integration handles API authentication, error recovery, and response parsing, abstracting API complexity from agent logic.
vs alternatives: Simpler than building custom LLM integrations because OpenAI SDK handles authentication and formatting, but less flexible than multi-model support (Anthropic, Ollama) because it's locked to OpenAI.
extensible module system with custom module creation
Developers can create custom modules by extending a base Module class and implementing action methods with typed parameters. Custom modules are registered with the ModuleManager and become available to all agents immediately. The module system provides a standardized interface for defining actions, validating parameters, and returning results. Modules can depend on external libraries or services, enabling integration with any capability (APIs, databases, ML models, etc.).
Unique: Provides a base Module class that developers extend to create custom capabilities, with automatic registration in ModuleManager. Custom modules are immediately available to all agents, enabling rapid prototyping of domain-specific functionality without core framework changes.
vs alternatives: More flexible than hardcoded capabilities because new modules can be added without modifying agent logic, but requires more development effort than configuration-based systems.
configurable agent startup with cli parameters and environment variables
AI Legion supports configuration through command-line parameters (agent count, model selection) and environment variables (.env file). Startup configuration controls the number of agents created, the LLM model used, API credentials, and storage backend. The system reads configuration at startup and initializes agents with the specified parameters. Configuration is centralized in .env.template, enabling easy setup and deployment across environments.
Unique: Supports configuration through both CLI parameters and environment variables, enabling flexible deployment across environments. Configuration is read at startup and used to initialize agents with specified parameters, centralizing setup in .env.template.
vs alternatives: Simpler than configuration management systems (Kubernetes ConfigMaps, Terraform) for local development, but less powerful for complex multi-environment deployments.
modular action execution with pluggable capability modules
A ModuleManager registry enables agents to execute actions through specialized modules (Core, Goals, Notes, Web, System, Messaging). Each module defines a set of callable actions with typed parameters and return values. When an agent decides on an action, the ActionHandler looks up the corresponding module, validates parameters against the module's schema, and executes the action. New modules can be created by extending a base Module class and registering with ModuleManager, allowing extensibility without modifying core agent logic.
Unique: Uses a registry-based module system where each module declares its available actions and parameter schemas, enabling the ActionHandler to validate and route actions without knowing module implementation details. Modules are loaded at startup and can be extended by creating new classes that inherit from the base Module interface.
vs alternatives: More flexible than hardcoded action handlers because new capabilities can be added by registering modules, but less standardized than OpenAI function-calling schemas which provide cross-platform compatibility.
persistent agent memory with event-sourcing architecture
Each agent maintains a Store (file-based, database, or custom implementation) that records all events (messages received, decisions made, actions executed) in chronological order. Agents retrieve their full event history on each decision cycle, enabling them to understand context and learn from past actions. The event-sourcing pattern ensures complete auditability and allows agents to reconstruct their state at any point in time by replaying events. Memory is agent-specific; each agent has isolated storage preventing cross-agent memory leaks.
Unique: Implements event-sourcing where every agent decision and action is recorded as an immutable event, enabling complete auditability and state reconstruction. Agents retrieve their full event history before each decision, allowing them to learn from past mistakes without external knowledge bases or RAG systems.
vs alternatives: Simpler than RAG-based memory because it doesn't require embeddings or semantic search, but less efficient for long-running agents because full history retrieval becomes expensive as event count grows.
dynamic agent creation and lifecycle management
Agents can be created at runtime through a factory pattern that initializes each agent with unique ID, isolated memory store, module manager, and message bus subscriptions. The system supports creating multiple agents with different configurations (model, modules, goals) without restarting the platform. Each agent operates independently in its own execution context, and the lifecycle is managed by the core system which handles agent startup, decision cycles, and graceful shutdown.
Unique: Supports runtime agent creation through a factory pattern where each agent is initialized with isolated memory, module manager, and message bus subscriptions. Agents are created with configurable parameters (model, modules, goals) enabling heterogeneous agent teams without code modification.
vs alternatives: More flexible than static agent pools because agents can be created on-demand with custom configurations, but less efficient than pre-allocated agent pools for high-throughput scenarios.
+5 more capabilities