Search papers, labs, and topics across Lattice.
ETAS is a novel programming language designed specifically for agent systems, integrating model-backed agents, tool calls, and typed memory into its core semantic structure. By separating deterministic computations from nondeterministic agent actions, ETAS allows for enhanced reasoning about authorization, recovery, and audit evidence throughout agent execution. The implementation in Rust includes robust static and dynamic semantics, ensuring type and effect soundness while providing a clear framework for managing complex agent behaviors and policies.
ETAS redefines how we program agent systems by integrating semantic elements that enhance authorization and audit capabilities without sacrificing programming clarity.
ETAS is a programming language for agent systems that treats model-backed agents, tool calls, prompts, typed memory, human approvals, policies, and execution traces as semantic program elements rather than library conventions. It separates deterministic computation from agentic nondeterminism and externally visible actions while preserving a direct programming style. We present the core design of ETAS. Its static semantics assigns ordinary types through spec conformance and tracks each computation with two behavioral indices: an escaping effect row and a persistent abstraction of the typed action trace it may request. Specs form a terminating compile-time constraint calculus: type specs provide evidence for polymorphism and resource facts, callable specs constrain function and stage shapes, and trace specs express allow, deny, and temporal constraints. Typing checks requested traces against compiled monitors and emits residual obligations when dynamic resources preclude a complete static proof. The dynamic semantics distinguish requested, handled, denied, and committed events; handlers interpret typed actions without making their requests invisible to authorization or audit. We formalize a core calculus and state preservation, progress, type/effect soundness, handler trace-transparency, and policy safety. We also implement ETAS in Rust with a command-line interface, typed HIR checks, effect and policy diagnostics, handler checks, and trace-aware execution hooks. ETAS provides a programming-language foundation for reasoning about authorization, nondeterminism, recovery, and audit evidence before and during agent execution.