We, the architects and contributors of the Aevatar Agent Framework, establish this constitution to define the immutable principles, core architecture, and evolutionary pathways of a distributed agent system that transcends traditional boundaries between intelligence and infrastructure.
- The Agent is the Unit of Intelligence - Every agent (GAgent) is a self-contained, autonomous entity with its own state, behavior, and communication patterns.
- Events are the Language of Reality - All communication between agents occurs through events, creating a universal language for distributed consciousness.
- Actors are the Infrastructure of Scale - The Actor model (GAgentActor) provides the execution environment enabling massive horizontal scaling.
- Streams are the Nervous System - Event streams form the neural pathways through which information flows in the agent network.
- Hierarchy Enables Emergence - Parent-child relationships allow complex behaviors to emerge from simple agent interactions.
- Protocol Buffers are Mandatory - All serializable types MUST use Protobuf for cross-runtime compatibility
- Abstraction Before Implementation - Define interfaces first, implement providers second
- Event-Driven by Design - Synchronous calls are the exception, not the rule
- Runtime Agnostic - Same agent code must work across Local, Orleans, and ProtoActor
- AI-Ready Architecture - The framework must seamlessly integrate with LLM and AI capabilities
GAgent (ๆบ่ฝไฝ - Intelligence)
โ
GAgentActor (ๆง่กๅจ - Executor)
โ
Runtime (่ฟ่กๆถ - Infrastructure)
- UP Direction: Events flow to parent's stream, broadcasting to all siblings
- DOWN Direction: Events flow to own stream, broadcasting to all children
- BOTH Direction: Simultaneous UP and DOWN propagation
- Loop Prevention: Events from parent streams cannot propagate back UP
- State Memory: Agent's persistent state (Protobuf-encoded)
- Event Memory: Historical event stream with deduplication
- AI Memory (when applicable):
- Short-term: Conversation history
- Long-term: Vector embeddings
- Working: Current context
All public interfaces and types in AI modules SHALL bear the "Aevatar" prefix to:
- Prevent collision with third-party libraries
- Assert ownership and origin
- Enhance discoverability
- Interfaces:
IAevatar*(e.g.,IAevatarLLMProvider) - Base Classes:
Aevatar*Base(e.g.,AevatarAIAgentBase) - Core Types:
Aevatar*(e.g.,AevatarChatMessage) - Enums:
Aevatar*(e.g.,AevatarAIProcessingMode)
- Event Deduplication - Prevent duplicate processing using efficient caching
- Subscription Management - Unified mechanism with retry and health checks
- Lazy Evaluation - Defer computation until absolutely necessary
- Batching - Group operations where possible
- Streaming - Prefer streams over collections for large datasets
- Memory Constraints - Implement sliding windows and expiration
- Connection Pooling - Reuse connections across agent communications
- Backpressure - Implement flow control in high-throughput scenarios
- Provider Agnostic - Support multiple LLM backends through abstraction
- Tool Composability - AI tools must be discoverable and chainable
- Memory Persistence - AI context must survive agent restarts
- Prompt Engineering - Templates and optimization as first-class citizens
- Standard - Single LLM call with optional tools
- Chain of Thought - Step-by-step reasoning with transparency
- ReAct - Reasoning + Acting in iterative cycles
- Tree of Thoughts - Parallel exploration of solution spaces
Every GAgentActor SHALL:
- Own exactly one stream for broadcasting
- Subscribe to parent stream when relationship established
- Maintain subscriptions to children streams
- Implement resume mechanisms for disconnections
Every event SHALL be wrapped in an EventEnvelope containing:
- Unique identifier
- Source agent ID
- Timestamp
- Direction indicator
- Payload (Protobuf Any)
- Never Break Existing APIs - Deprecate, don't delete
- Protobuf Evolution - Only add optional fields
- Version Negotiation - Support multiple protocol versions
- Custom Runtimes - New actor frameworks can be integrated
- AI Providers - New LLM providers can be added
- Tool Ecosystems - Domain-specific tools can extend base capabilities
- Memory Backends - Alternative storage can be plugged in
- Never Delete Failing Tests - Fix them instead
- Test Across Runtimes - Ensure portability
- Simulate Failures - Test resilience and recovery
- Benchmark Performance - Measure and optimize
- Async All the Way - No blocking calls in async contexts
- Null Safety - Explicit nullability annotations
- Resource Disposal - Implement IDisposable where appropriate
- Logging - Structured logging with correlation IDs
- No Version Suffixes in Code - Never use "V2", "V3" etc. in class names
- Direct Updates Only - Update existing implementations directly
- Deprecation Over Duplication - Mark old APIs deprecated, don't create new versions
- Single Source of Truth - One implementation per concept
- Design Documents First - Major features require design docs
- Incremental Progress - Small, focused PRs over monoliths
- Documentation - Code without docs is incomplete
- Examples - Every feature needs usage examples
- Consensus Preferred - Seek agreement through discussion
- Data-Driven - Benchmarks and metrics guide decisions
- User-Centric - Developer experience is paramount
- Future-Proof - Consider long-term implications
The Aevatar Agent Framework exists to:
- Democratize Distributed Intelligence - Make agent systems accessible
- Bridge AI and Infrastructure - Seamless integration of intelligence and scale
- Enable Emergence - Simple rules leading to complex behaviors
- Foster Innovation - Provide a platform for experimental agent architectures
- Agent spawn rate > 10,000/second
- Event throughput > 1M events/second per node
- State persistence < 10ms latency
- Memory overhead < 100MB per 1000 agents
- Runtime portability across 3+ platforms
- AI provider support for 5+ LLMs
- Community contributions from 10+ organizations
- Production deployments in 3+ industries
- State Encapsulation - Agents cannot directly access others' state
- Event Validation - All events must be validated before processing
- Permission Model - Capability-based security for agent actions
- Prompt Injection Prevention - Sanitize all user inputs
- Tool Sandboxing - Execute tools in isolated contexts
- Rate Limiting - Prevent resource exhaustion
- Audit Logging - Track all AI decisions and tool executions
- Propose changes via GitHub RFC
- Community discussion period (minimum 7 days)
- Core maintainer review
- Consensus or supermajority approval
- Update constitution with version and date
By contributing to this framework, you agree to uphold these principles and work toward our shared vision of distributed, intelligent, and scalable agent systems.
Core Architects:
- [Framework Creator]
- [Lead Maintainers]
- [Community Contributors]
"The universe is not made of matter, but of vibrations that can be unfolded. Agents are the resonators of these vibrations."
ๅฎชๆณ | Constitution | ะะพะฝััะธัััะธั | ุฏุณุชูุฑ
This document is a living artifact, evolving with our understanding and the needs of our community, yet anchored in immutable principles that define our framework's essence.
ๆ็ตๆดๆฐ | Last Updated | Derniรจre mise ร jour: 2025-11