3 ms·
Implementing a (Vibed) LLM Coding Agent in Prolog
- bwestergard 9mo agoThis is a neat idea. The "core motivations" description makes intuitive sense to me. https://github.com/deepclause/deepclause-desktop?tab=readme-ov-file#core-motivation https://github.com/deepclause/deepclause-desktop?tab=readme-... Similarly, I have had some success using Gemini to extract facts from plain text in the format of Souffle Datalog[1] facts. The resulting dataset can then be conveniently and efficiently queried with Datalog. In this way, LLMs allow for a partial return of the software development strategies of the semantic web[2]. I wrote up some thoughts along those lines earlier this year[3]. 1: https://souffle-lang.github.io/ https://souffle-lang.github.io/ 2: https://en.wikipedia.org/wiki/Semantic_Web https://en.wikipedia.org/wiki/Semantic_Web 3: https://bjornwestergard.com/llm-extractors/ https://bjornwestergard.com/llm-extractors/
- schmuhblaster 9mo agoThank you! I went with a Prolog base, because I was interested in what might be possible when combining its execution model with LLM-defined predicates. For anything related to modelling and querying data, a Datalog dialect might indeed be a better choice. I've also used Logica [0] as an intermediate layer in a text2sql system, but as models get better and better, I believe there is less need for these kinds of abstractions. [0] https://logica.dev/ https://logica.dev/
- phunterlau 9mo agoGreat idea to bring the consistency to coding agent with domain specific language (DSL). It reminded me of Google's CaMel work https://arxiv.org/abs/2503.18813 https://arxiv.org/abs/2503.18813 which introduces DSL to LLM prompt to prevent prompt injection by design, and the DeepClause work is like a more general approach on code agent. Great work!