Version: 0.1.1 | Status: Active Development | Last Updated: 2026-03-21
Dana (Domain-Aware Neurosymbolic Agents) is a production-ready Python agentic runtime by Aitomatic, Inc. It implements the STAR pattern (See-Think-Act-Reflect) for building sophisticated conversational AI agents with multi-provider LLM support, extensible tool frameworks, and intelligent context management.
Enable developers to build domain-aware AI agents that combine symbolic reasoning with neural capabilities, providing transparent, controllable, and explainable agent behavior.
- Multi-Provider LLM Support - Seamless integration with OpenAI, Anthropic, Google, Azure, and local models
- Extensible Tool Framework - Easy addition of custom tools and resources
- Intelligent Context Management - Token-aware timeline compression and memory
- Production Ready - Robust error handling, logging, and observability
- Developer Experience - Rich CLI, REPL, comprehensive examples
Conversational agents follow structured reasoning:
- See - Perceive user intent and context
- Think - Reason about response using resources/tools
- Act - Execute tools, retrieve information
- Reflect - Learn from outcomes, update state
- OpenAI - gpt-4.1, gpt-4.1-mini, o3, o4-mini
- Anthropic - claude-sonnet, claude-opus, claude-haiku
- Google Gemini - gemini-2.5-flash, gemini-2.5-pro
- Azure OpenAI - Full compatibility
- Local Models - LLaMA Stack, Ollama support
- Custom Endpoints - Anthropic-like protocol support
Built-in resources for common tasks:
- BashResource - Execute shell commands
- FileIOResource - Read/write files
- FileEditResource - Edit file contents with diff
- SearchResource - Web search integration
- TaskResource - Task management
- TodoResource - Todo list operations
- SkillResource - Claude Code skills
- WebResearchResource - Advanced web research with synthesis
- MCPResource - Model Context Protocol support
- Chronological entry tracking (9 entry types)
- Token-aware automatic compression
- LLM-based conversation summarization
- Serializable history
- Short-Term Memory (STMemory) - Per-session cache
- Long-Term Memory (LTMemory) - Persistent markdown storage
- Memory Types: lessons, episodes, facts, patterns
- HTML content extraction
- Multi-source synthesis
- URL caching
- Search result aggregation
| App | Command | Purpose |
|---|---|---|
| Dana Agent | adana |
Interactive conversational agent |
| REPL | adana-repl |
Interactive Python environment |
| Code Agent | dana-code |
Coding-focused agent with UI |
| Init | dana-init |
Bootstrap config setup |
- Support ≥5 LLM providers with provider-agnostic abstraction
- Implement fallback mechanism when primary provider unavailable
- Handle provider-specific tool schemas (native vs XML)
- Status: ✅ Complete
- Enable custom resource creation via BaseResource extension
- Auto-registration of resources on instantiation
- Tool schema generation from resource methods
- Status: ✅ Complete
- Maintain chronological conversation history with 9 entry types
- Implement token-aware compression at 80% context threshold
- Support LLM-based history summarization
- Status: ✅ Complete
- Implement full See-Think-Act-Reflect loop
- Support streaming responses
- Enable tool call handling and result integration
- Status: ✅ Complete
- Enable multi-step workflow definition and execution
- Support conditional execution and branching
- Implement workflow validation
- Status: ✅ Complete
- HTML content extraction and parsing
- Multi-source synthesis
- Search result integration
- Status: ✅ Complete
- Implement short-term memory (per-session)
- Implement long-term memory (persistent)
- Support 4 memory types (lesson, episode, fact, pattern)
- Status:
⚠️ In Progress
- Structured logging via structlog
- Debug mode support
- Performance metrics
- Status: ✅ Complete
- LLM response latency: <5s average
- Token compression at 80% threshold
- Streaming response support
- Status: ✅ Complete
- Error handling for all resource operations
- Graceful degradation on provider failure
- Retry logic for transient failures
- Status: ✅ Complete
- Code coverage: >70%
- Type hints throughout codebase
- Comprehensive test suite (105 test files)
- Status: ✅ Complete
- Plugin architecture for resources/workflows
- Auto-registration system
- Protocol-based design
- Status: ✅ Complete
- Safe code execution (Python sandbox)
- Input validation & sanitization
- Environment variable protection
- Status: ✅ Complete
- Python 3.12+ support
- Cross-platform (macOS, Linux, Windows)
- Async/await support throughout
- Status: ✅ Complete
┌──────────────────────────────────┐
│ Applications (CLI Apps) │ adana, adana-repl, dana-code
├──────────────────────────────────┤
│ Agent Layer │ STARAgent, Components
├──────────────────────────────────┤
│ Core Systems │ Timeline, Resources, Workflows
├──────────────────────────────────┤
│ LLM Abstraction │ Codec, Providers, Runtime
├──────────────────────────────────┤
│ Data Persistence │ Repository Layer, Memory
├──────────────────────────────────┤
│ Infrastructure │ Config, Logging, Utils
└──────────────────────────────────┘
- Composition - STARAgent composes: Communicator, State, Learner, Observer
- Provider Pattern - LLM abstraction via codec/runtime
- Resource Pattern - Tool framework with auto-registration
- Protocol-Based - Extensible via protocol definitions
- Global Registry - Centralized resource/agent/workflow management
- STAR agent loop operational
- Multi-provider LLM integration working
- Tool execution framework functional
- Timeline compression operational
- Workflow composition implemented
- Web research pipeline complete
- >70% code coverage
- Type hints throughout
- All tests passing
- Linting compliant (Ruff)
- MyPy type checking passes
- CLI applications functional
- Configuration system working
- Error messages clear
- Documentation complete
- Examples provided
- Error handling robust
- Logging structured
- Observability integrated
- Performance optimized
- Security hardened
| Metric | Target | Current |
|---|---|---|
| LLM Response Latency | <5s avg | ✅ Achieved |
| Code Coverage | >70% | ✅ >80% |
| Test Pass Rate | 100% | ✅ 100% |
| Supported Providers | 5+ | ✅ 6+ |
| Built-in Resources | 8+ | ✅ 9 |
| CLI Applications | 4+ | ✅ 5 |
- Core agent infrastructure
- Multi-provider LLM support
- Basic resource framework
- Timeline management
- Memory system expansion
- Advanced web research
- Workflow optimization
- Performance tuning
- Additional LLM providers
- Domain-specific agents
- Advanced observability
- Distributed execution
- Enterprise features
- Scale testing
- Security audit
- Performance optimization
- Python 3.12+
- Async/await capable environment
- Network access for LLM APIs
- 2GB+ RAM for large context
- Bash shell for full functionality
- Modern terminal (256 color support)
- LLaMA Stack or Ollama (for local models)
- Database adapters (for persistence)
- Redis (for distributed caching)
Core (Always):
- openai, anthropic, google-genai, httpx, pydantic, requests, beautifulsoup4, html2text, rich, structlog
Optional Groups:
- web: lxml, selenium
- local: llama-stack, ollama
- data: pandas, matplotlib
- memory: lancedb, sentence-transformers
- knowledge: rdflib, rank-bm25
- observability: langfuse
Current: 0.1.1 Channel: Stable (ready for production use) License: MIT
Release Process:
- Increment version in
pyproject.toml - Update
CHANGELOG.mdwith features/fixes - Create git tag
- Build and publish to PyPI
- Publish release notes
- Memory - LT memory relies on markdown; consider DB adapter for scale
- Distributed - Currently single-process; consider task queue for scale
- Streaming - Some providers have limited streaming support
- Local Models - Performance variable based on hardware
- Distributed Execution - Task queues for parallel agent execution
- Database Persistence - SQL/NoSQL adapters for memory & timeline
- Advanced Observability - Metrics, tracing, profiling
- Domain Specialization - Healthcare, Finance, Legal agent templates
- Voice Integration - Speech-to-text and text-to-speech
- Multi-agent Collaboration - Agent-to-agent communication
Approval Status: Ready for Production Last Review: 2026-03-21 Next Review: 2026-04-21