Enaya Agent
Task-delegation AI agent with multi-agent orchestration, deep research, and structured planning.
Built on Hermes Agent architecture principles — local-first, multi-provider, extensible.
Quick Install
# From source
git clone https://github.com/tnvmac-web/Enaya-Agent.git
cd Enaya-Agent
pip install -e ".[dev]"
# Or install directly (when published)
pip install enaya-agent
Quick Start
# Interactive chat
enaya chat
# Single query
enaya chat -q "Research the latest LLM agent architectures"
# Delegate a complex task
enaya delegate "Build a REST API with authentication and tests"
# Deep research
enaya research "Current state of distributed caching" --depth deep
# Create a plan
enaya plan "Implement user authentication system" --complexity moderate
# Switch model
enaya model openrouter:anthropic/claude-3.5-sonnet
# Setup wizard
enaya setup
Core Capabilities
| Capability | Description |
|---|---|
| Delegation | Spawn specialized subagents for parallel task execution |
| Research | Web search, academic papers, source validation, synthesis |
| Planning | Hierarchical task decomposition, phased execution plans |
| Memory | 5-layer persistent memory (Session, Episodic, Semantic, Procedural, Project) |
| Codebase | Code search, analysis, modification, testing |
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Enaya Agent │
├─────────────────────────────────────────────────────────────┤
│ AIAgent (run_agent.py) — Single class, all entry points │
├─────────────────────────────────────────────────────────────┤
│ Agent Loop │ Prompt System │ Provider Res │
│ conversation_loop │ prompt_builder │ runtime_ │
│ context_compressor │ anthropic_adapter │ provider │
├─────────────────────────────────────────────────────────────┤
│ Tools (50+) │ Delegation │ Memory │
│ registry │ orchestrator │ 5-layer │
│ file/web/delegation │ task_queue │ SQLite+Chroma │
│ research/planning │ result_aggregator │ project_index │
│ synthesis │ policies │ │
├─────────────────────────────────────────────────────────────┤
│ Interfaces: CLI • ACP (VS Code/Zed) • API Server • Gateway │
└─────────────────────────────────────────────────────────────┘
Configuration
# ~/.enaya/config.yaml
model: "openrouter:anthropic/claude-3.5-sonnet"
provider: "openrouter"
max_turns: 500
temperature: 0.7
toolsets: ["core", "research", "planning", "delegation", "synthesis"]
fallback_providers: []
compression_threshold: 0.50
prompt_caching: true
# ~/.enaya/.env
OPENROUTER_API_KEY=sk-...
ANTHROPIC_TOKEN=sk-ant-...
OPENAI_API_KEY=sk-...
NVIDIA_API_KEY=...
Providers Supported
| Provider | Models | API Mode |
|---|---|---|
| OpenRouter | Claude, GPT, Gemini, Llama, Nemotron | chat_completions |
| Anthropic | Claude 3.5 Sonnet/Haiku/Opus | anthropic_messages |
| OpenAI | GPT-4o, GPT-4o-mini, o1 | chat_completions |
| NVIDIA | Nemotron 3 Ultra, Llama 3.1 | chat_completions |
| Gemini 1.5 Pro/Flash | chat_completions | |
| Ollama | Local models | chat_completions |
| LM Studio | Local models | chat_completions |
Skills (Bundled)
| Skill | Purpose |
|---|---|
enaya-research |
Deep research workflow |
enaya-planning |
Task decomposition & plan creation |
enaya-delegation |
Multi-agent orchestration |
enaya-code-review |
Automated code review |
enaya-doc-audit |
Documentation drift detection |
Programmatic Integration
ACP (VS Code, Zed, JetBrains)
enaya acp # Starts JSON-RPC stdio server
API Server (OpenAI-compatible)
enaya api-server # Starts HTTP + SSE server
Python Embedding
from enaya.run_agent import create_agent
agent = create_agent(model="openrouter:anthropic/claude-3.5-sonnet")
result = agent.run_conversation("Research quantum computing advances")
Development
# Setup
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
# Test
pytest tests/ -n0 -q
# Lint
ruff check src/
# Type check
mypy src/enaya/
# Coverage
pytest --cov=enaya --cov-fail-under=60
Project Structure
enaya-agent/
├── src/enaya/ # Core package
│ ├── agent/ # Agent loop & prompts
│ ├── cli/ # CLI commands
│ ├── tools/ # 50+ built-in tools
│ ├── delegation/ # Multi-agent orchestration
│ ├── research/ # Research pipeline
│ ├── planning/ # Planning engine
│ ├── memory/ # 5-layer memory
│ ├── gateway/ # Messaging gateway
│ ├── acp_adapter/ # ACP server
│ └── plugins/ # Plugin system
├── skills/ # Bundled skills
├── tests/ # Unit/integration/e2e
├── docs/ # Documentation
├── pyproject.toml
├── AGENTS.md # Development guide
├── HERMES.md # Project context
└── README.md
Design Principles
- Platform-Agnostic Core: One
AIAgentserves CLI, gateway, ACP, API server - Observable Execution: Every tool call visible via callbacks
- Interruptible: API calls and tools cancellable mid-flight
- Loose Coupling: Optional subsystems use registry patterns
- Profile Isolation: Multiple concurrent instances via
enaya -p <name>
License
MIT License — see LICENSE file.
References
- Hermes Agent Architecture: https://hermes-agent.nousresearch.com/docs/developer-guide/architecture
- Original Hermes: https://github.com/NousResearch/hermes-agent
Metadata
Release files for enaya-agent 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| enaya_agent-0.1.0.tar.gz | 125.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| enaya_agent-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 276.4 kB
Release files / enaya_agent-0.1.0.tar.gz
| Download URL | enaya_agent-0.1.0.tar.gz |
|---|---|
| Size | 125.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d7736ce8f8156fa598beda1dee317861413ed0f6427b4c34c0954a994ac5f6b
|
|
BLAKE2b-256 checksum How to use checksums |
10ce70a9627f535b95e1210aa14ad49899af508bfaa6ae83da72009e175b8e61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / enaya_agent-0.1.0-py3-none-any.whl
| Download URL | enaya_agent-0.1.0-py3-none-any.whl |
|---|---|
| Size | 151.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f11f5fe15c3fe4540e569920a17ced418e5726fb312c039f6628b99768ccdaf
|
|
BLAKE2b-256 checksum How to use checksums |
9e9baae1333d7b87f29f5f0f926c5b9b25ad57fc5a2df66e435540773fd1f322
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|