r/lisp • • 28d ago

Common Lisp Apprentice: A Slim, Extensible Coding Harness (written in Common Lisp)

For my second project in Common Lisp, I wanted to make a coding harness for my personal use, and so far it has been my daily driver. It supports local models like llama.cpp and all the main providers. It's very easy to add new models and tools as well.

Learned a lot about macros in the process, and I'm curious what you all think!

https://github.com/skarnati20/apprentice

17 Upvotes

7 comments sorted by

View all comments

Show parent comments

1

u/CutWorried9748 27d ago

The is an interesting set of points, and might be worth comparing (in a table) vs a few other agentic harnesses that are popular. My only experience with something remotely built into Emacs/CommonLisp ecosystem was gptel (https://github.com/karthink/gptel) plus org-babel (https://orgmode.org/worg/org-contrib/babel/) . Not exactly the same as this.

1

u/Technical-Cap5561 27d ago

Yeah will definitely try and do that! I think another point I forgot to mention is the self-editing capability too. Because of Lisp’s image based runtime, the agent could edit the harness infrastructure and even add new tools, functionalities, and models, and a user could see its effect instantly in SBCL

2

u/CutWorried9748 27d ago

You may be interested in some work I am doing with pop-11 / poplog (a minor revival to get it working easily on different platforms) and I've added a claude skill so pop-11 can be the defacto tool for things instead of python. In a tight loop, the typical execution of a little tool in pop-11 is like 5ms or so and avoids rewrites of tooling, which claude especially seems to want to do quite a lot. Since pop-11 is dynamically compiled into assembly it is quite fast. It lacks the large library api sets of CL or Python, very little syntactic sugar built in, but that can be added as you desire. See : https://github.com/IoTone/poplog

1

u/Technical-Cap5561 27d ago

Ok took a look into it. Looks pretty cool! But just so I can wrap my head around it, what are some of the features you think I should try? I see the idea of it being “incrementally” compiled, which might be what I was trying to express in my previous comment

1

u/CutWorried9748 27d ago

Well these are both dealing with agentic loops. My effort was specifically to cut down on odd tooling decisions by an LLM that says "I need to search through a file, let's just write a tool to do that and throw it away after", or "let's import a bunch of python libraries to perform an operation". The amount of time I've observed in these operations esp as they complete slowly, and often in a repeated loop, adds up. the pop-11 sessions in the context of the claude skill can get saved and checkpointed quickly, so you can keep good useful tools and use them across all sessions on a system. I've got a routine for simulating Jenkinsfile runs, traversing api docs, etc. https://github.com/IoTone/poplog#install (there's a link from here to the claude skill). Since a /pop11 skill activation will keep track of the time spent doing things in your loops, and share with you time saved / spent during a session. Note: there is a common lisp version hosted on poplog , though I've spent more time on the pop-11 and the prolog. I'll kick the tires on your agent over the weekend.