Skip to content

Dana (Domain-Aware NeuroSymbolic Architecture)

Vision

Dana is a universal program format and execution runtime that enables intelligent agents — human or machine — to reason, act, and collaborate through structured, interpretable programs.

It serves as the missing link between natural language objectives and tool-assisted, stateful action. Dana programs are concise, auditable, explainable, and can be authored by LLMs, domain experts, or both.


Motivation & Problem

Modern AI systems struggle with:

  • Prompt chains are fragile — hard to debug, hard to maintain
  • Plans are opaque — impossible to inspect or explain mid-flight
  • Tool use is scattered — logic is buried in code, not declarative programs
  • State is implicit — no shared memory model or traceable updates

Symbolic systems offer structure but lack adaptability. LLMs offer creativity but lack transparency. Dana bridges the two.


✅ Solution

Dana introduces a lightweight domain-aware program language and runtime. It allows:

  • Programs as first-class reasoning artifacts
  • Shared state containers (agent, world, temp, execution)
  • Reusable logic units via a structured Knowledge Base (KB)
  • Declarative goals, imperative execution
  • Bidirectional mapping to/from natural language

Dana can:

  • Be generated by a planning agent (like GMA)
  • Be executed line-by-line by a runtime
  • Interact with tools, LLMs, and memory
  • Be stored, versioned, tested, and explained

Architecture Overview

Emitters and Interpreters of Dana

Actor Type Role(s) in Dana Description
User (Human) Person 🖋 Emitter Writes Dana directly to define goals, logic, or KB entries
GMA Agent 🖋 Emitter General planner that emits Dana plans from objectives
DXA Domain Agent 🖋 Emitter Emits specialized domain logic/workflows, often tied to KB content
KB Maintainer Person or Agent 🖋 Emitter Curates reusable Dana programs as structured knowledge
Tool Resource System Component ✅ Interpreter Executes atomic tool-backed actions referenced in Dana
Local Runtime System Component ✅ Interpreter Executes Dana deterministically except for reason(...)
Dana_LLM LLM Wrapper Module 🖋 Emitter + ✅ Interpreter Emits code and executes reasoning operations
AgentRuntime System Component 🔁 Coordinator Orchestrates execution and manages delegation across all actors

State Model

Dana programs operate over a shared RuntimeContext, which is composed of four memory scopes (state containers):

Scope Description
local: Local to the current agent/resource/tool/function (default scope)
private: Private to the agent, resource, or tool itself
public: Openly accessible world state (time, weather, etc.)
system: System-related mechanical state with controlled access

Note: Only these four scopes are valid in the Dana language and enforced by the parser. Any references to other scopes (such as agent:, world:, temp:, stmem:, ltmem:, execution:, or custom scopes) are not supported in the current grammar and will result in a parse error.

Security Design

**The dana.runtime