Register typed tools and execute a task end-to-end through the runtime
Implement a custom MemoryStore backend against the provided interface
Build a tracing or event-sink adapter to plug into the runtime event stream
Many subsystems (wallet actions, persistent memory, model providers, policies) are scaffolded interfaces only, so anything beyond the happy path requires writing real implementations.
agentlily-runtime is a TypeScript codebase that provides the execution layer for AgentLily instances in Lily Protocol, a project the README describes as autonomous agent finance infrastructure being built on the Stellar blockchain. The repository is explicitly framed as an open-source-ready foundation rather than a finished runtime, with one working code path and many deliberately unfinished extension points. What exists today is a narrow happy-path flow. You create an AgentRuntime, start it, register tools, build a runtime context for a task, send the task through a task runner and action executor, invoke a typed tool, store lightweight task history in memory, and emit runtime events and structured log entries. The README says this is intended to give contributors a working reference path without locking the project into premature architecture. The unfinished areas are listed openly. Wallet-aware and payment-aware actions, persistent memory and state backends, model provider integrations, policy engines and approval flows, long-running orchestration and scheduling, distributed and durable coordination, identity-aware execution, and richer tracing and metrics are all scaffolded with interfaces, types, or placeholders and are described as future contributor work. The source tree groups code into folders such as actions, agents, errors, events, guards, logger, memory, providers, runtime, state, tasks, and tools, with a tests folder for foundation and happy-path tests. To try it locally, the quick start is npm install, npm run build, and npm run test. A short usage example creates a runtime, registers an echo tool that returns the input message, calls executeTask with an agentId, taskId, and tool name, then logs the output. Helper scripts include npm run lint, npm run typecheck, npm run verify, and a Vitest coverage run. Contributor guidance suggests adding depth without collapsing the extension points, with example tasks such as implementing a new memory backend against the MemoryStore interface, adding tool allowlist policies, writing an event sink or tracing adapter, building a model provider adapter, or extending the task lifecycle. The README also notes that maintainers can immediately open issues around provider adapters, persistent storage, wallet-aware execution boundaries, observability, documentation, and test matrix expansion, drawing on a backlog list produced by the initial setup.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.