EVE Technical Reference Manual
Deep technical specifications of the EVE system: architecture, providers, tools, configuration, performance, and operations.
Multiplayer Collaboration
Overview
EVE supports real-time and asynchronous multiplayer collaboration. Every actionβedits, commands, tool usesβperformed by any user in a session is automatically tracked, attributed, and stored. This enables seamless teamwork, full project history, and robust audit trails.
How It Works
- All collaborative actions are logged as Multiplayer Actions in the project database.
- Each action is attributed to a user and session, with full details and timestamps.
- History can be reviewed, filtered, and exported for audit or teamwork review.
How to Use
- Run the full agent:
./agentorgo run agent.go - Invite teammates to join the same project/session (via shared environment or remote access).
- All actions are tracked automaticallyβno extra setup required.
- To review collaboration history, use the multiplayer history tool or view the
multiplayer/directory in the project database.
Demonstration
You: Start a new coding session with my teammate. EVE: Multiplayer session started. All actions will be tracked. You: Edit main.go to add a new function. Teammate: Refactor utils.go for performance. EVE: Actions recorded for both users in the session. You: Show multiplayer action history. EVE: [Displays a list of actions, who performed them, and when.]
Technical Details
- Actions are stored in
eve_project_data/multiplayer/as structured records. - APIs and CLI tools are available for advanced filtering and export.
- See Build Guide for more on multiplayer internals.
1. System Overview
1.1 Purpose and Scope
EVE (Enhanced Virtual Environment) is a sophisticated AI-powered coding assistant designed to provide intelligent, context-aware assistance for software development tasks. The system implements a multi-provider architecture that enables seamless integration with various LLM services while maintaining a consistent interface and behavior.
1.2 Key Design Principles
- Provider Agnosticism: Abstract interface allowing transparent switching between LLM providers
- Tool-Driven Architecture: Extensible tool system for executing complex operations
- State Persistence: File-based database system for project state management
- Modular Design: Clean separation of concerns with well-defined interfaces
- Resilient Operation: Comprehensive error handling and graceful degradation
1.3 System Boundaries
Included Components
- Core agent execution engine
- Multi-provider LLM integration
- Tool execution framework
- Project database management
- Web interface (optional)
- Configuration management
External Dependencies
- LLM provider APIs (Anthropic, Google, OpenAI)
- File system access
- Terminal/command execution
- Network connectivity for API calls
2. Core Architecture
2.1 Component Hierarchy
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GenericAgent β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β LLMProvider Interface β β
β β βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ β β
β β β Anthropic β OpenAI β Gemini β β β
β β β Provider β Provider β Provider β β β
β β βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Tool System β β
β β βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ β β
β β β File Ops β Terminal β Code Search β β β
β β β Tools β Tools β Tools β β β
β β βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Project Database β β
β β βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ β β
β β β File Store β Checkpoints β MCP Config β β β
β β βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2.2 Core Data Structures
Message Flow
type Message struct {
Role string // "user", "assistant", "system", "tool"
Content interface{} // string or []ContentBlock
}
type ContentBlock struct {
Type string // "text", "tool_use", "tool_result"
Text string
ToolUse *ToolUse
ToolResult *ToolResult
}
Tool Definition
type ToolDefinition struct {
Name string
Description string
InputSchema anthropic.ToolInputSchemaParam
Function func(input json.RawMessage) (string, error)
}
2.3 Execution Model
- Input Reception
- Message Processing
- Provider Dispatch
- Tool Execution
- Response Integration
- Output Rendering
3. Provider Abstraction Layer
3.1 Interface Definition
type LLMProvider interface {
SendMessage(ctx context.Context, conversation []Message, tools []ToolDefinition) (*LLMResponse, error)
Name() string
AvailableModels() []string
}
3.2 Provider Implementations
- Anthropic: Claude 3.x family, tool calling, streaming
- Gemini: Function calling, multimodal support
- OpenAI: Interface defined, implementation planned
3.3 Message Format Conversion
Each provider implements conversion logic between the generic Message format and provider-specific formats (Anthropic content blocks, Gemini parts, OpenAI chat completions).
3.4 Error Handling Strategy
- API/Network errors normalized
- Format/schema validation
- Provider-specific mapping
4. Tool System Architecture
4.1 Tool Categories
File System Tools
- ReadFile, ListFiles, EditFile
- SaveToDatabase
Execution Tools
- Bash command execution
- APICall, WebScraper
Development Tools
- CodeSearch, Checkpoints
- BackupProject
Integration Tools
- MCP Integrations
- Multiplayer Tracking
4.2 Execution Pipeline
User Request β LLM Processing β Tool Selection β Input Validation β Execution β Result Processing β Response Generation
Includes schema validation, sandboxed execution context, and result normalization.
5. Database and Persistence Layer
5.1 Architecture Overview
- Version control with hash integrity
- Checkpoint-based snapshots
- MCP configuration storage
5.2 Data Structures
ProjectFile
type ProjectFile struct {
ID int; Path string; Content string; Hash string; Version int;
CreatedAt time.Time; ModifiedAt time.Time; IsActive bool
}
Checkpoint
type Checkpoint struct {
ID int; Name string; Description string; Timestamp time.Time; FileCount int
}
MCPIntegration
type MCPIntegration struct {
ID int; Name string; Type string; Config map[string]interface{}; CreatedAt time.Time; IsActive bool
}
5.3 Storage Implementation
eve_project_data/
βββ files/
βββ checkpoints/
βββ integrations/
βββ multiplayer/
βββ next_ids.json
6. Configuration Management
6.1 Sources
# Provider Selection
LLM_PROVIDER=anthropic|openai|gemini
# API Keys
ANTHROPIC_API_KEY=sk-ant-api03-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
# Model Selection
LLM_MODEL=claude-3-5-sonnet-20241022
# System Configuration
EVE_DATABASE_PATH=./eve_project_data
EVE_LOG_LEVEL=info|debug|warn|error
EVE_MAX_WORKERS=10
EVE_CACHE_SIZE=100MB
EVE_TIMEOUT=30
6.2 Validation
- Key format checks and connectivity tests
- Go version and dependency verification
- File system permissions
7. Execution Flow and State Management
7.1 Conversation Management
Input β Tokenization β Context Window Management β Provider Dispatch β Response Processing β State Update
- Token counting and message pruning
- Summarization and persistence
7.2 Tool Execution State
- Request IDs, progress monitoring, timeout management
- Retry logic and fallback mechanisms
8. Error Handling and Resilience
8.1 Classification
- Provider, tool execution, and system errors
8.2 Recovery Strategies
- Exponential backoff, circuit breaker
- Graceful degradation and user notification
8.3 Monitoring
- Health checks, structured logging, rotation
9. Performance Characteristics
9.1 Latency
- Providers: Anthropic 2β5s, Gemini 1β3s, OpenAI 1β4s (typical)
- Tools: file ops < 100ms, network 100msβ2s
9.2 Throughput & Memory
- Up to 10 concurrent tool executions
- ~50MB base, +1MB/1000 messages
9.3 Scalability
- Stateless instances, shared storage, load balancing
10. Security Considerations
10.1 API Key Management
- Env var storage; no persistence to disk
- TLS 1.3, cert validation, key rotation
10.2 File System Security
- Path validation, permission checking
- Optional encryption, integrity checks
10.3 Command Execution Security
- Whitelisting, escaping, isolation, resource limits
11. Extensibility Framework
11.1 Provider Extension
// Provider registration
const ProviderNewProvider ProviderType = "newprovider"
// CreateProvider switch case
case ProviderNewProvider:
return NewNewProvider(c.APIKey, c.Model), nil
11.2 Tool Extension
var NewToolDefinition = ToolDefinition{
Name: "new_tool",
Description: "Description of new tool functionality",
InputSchema: GenerateSchema[NewToolInput](),
Function: NewToolFunction,
}
11.3 Integration Points
- MCP: server discovery and config
- Plugin lifecycle and sandboxing
12. Deployment and Operations
12.1 Build Process
# Standard build
go build -o eve .
# Optimized build
go build -ldflags="-s -w" -o eve .
# Cross-platform
GOOS=linux GOARCH=amd64 go build -o eve-linux .
GOOS=darwin GOARCH=amd64 go build -o eve-mac .
GOOS=windows GOARCH=amd64 go build -o eve.exe .
12.2 Runtime Requirements
- OS: Linux/macOS/Windows; Arch: x86_64/ARM64
- Memory: 4GB min (8GB rec.); Storage: 500MB+
- Outbound HTTPS; DNS; firewall 443
12.3 Monitoring and Observability
- Performance metrics and provider usage
- Structured JSON logs; aggregation
12.4 Backup and Recovery
- Automated, incremental backups; offsite storage
- Disaster recovery and failover support
Conclusion
EVE delivers a provider-agnostic, extensible assistant with robust tooling and resilient operations. Use this reference alongside the source code for implementation details and future extensions.