Re: Interface

"Seyi Akadri (as seyiakadri at gmail dot com)" <[email protected]> Thu, 4 Jun 2026 12:03:48 +0100
Newsgroups gmane.lisp.lispworks.general
Message-ID <CAOa1hQShpq0nJe2KAy5Bbe95VCBCQ8dCj_4W-ieBqCqeJgHK5Q@mail.gmail.com>
Hi Kurt, Marco, Devon, Robert,

Following up on this thread, especially Kurt’s point about building a Lispy
LLM experimentation playground or even an orchestrator on top of model
APIs, I wanted to share something I have been working on,  a Common Lisp
agent runtime called Achatina.

Tried to explore whether the core ideas behind modern coding agents could
be expressed cleanly in Common Lisp rather than as another Python or
TypeScript framework. Over time, it has become more than a simple API
wrapper.

The part I think may be interesting to this list is the architecture:

surface form

  → semantic IR

  → validated IR

  → execution plan

  → local execution


Achatina also uses CAS-backed artifacts for provenance, so important
runtime and IR artifacts can be stored, inspected, and traced. The
coding-agent loop is working end to end: read files, call tools, edit code,
run tests, and verify results from a Common Lisp runtime.

The system leans on CL features rather than hiding them:

CLOS for provider/tool protocols

conditions for error classification

structs/generic functions for IR and runtime objects

CAS-backed artifacts for traceability


The repository is here:https://github.com/seyi/achatina

Useful entry points:

- ARCHITECTURE: https://github.com/seyi/achatina/blob/main/ARCHITECTURE.md

- QUICKSTART : https://github.com/seyi/achatina/blob/main/QUICKSTART.md

- Agent Loop Architecture:
https://github.com/seyi/achatina/blob/main/AGENT_LOOP.md


The quickstart includes a mock-provider path, so it should be possible to
inspect the flow without needing an API key.

It is still early — v0.1.0, source-available under BSL — so I am not
presenting it as finished. I would genuinely value unvarnished feedback
from people who know Common Lisp well:

Does the architecture hold up?

Where does the abstraction leak?

What feels un-Lispy?

What would you do differently?

Is the IR boundary sensible?


I would especially appreciate critique on whether the separation between
runtime loop, provider/tool protocol, IR, and artifact storage feels like
the right direction for a CL-based agent system.

Thanks,
Seyi Akadri

>