mudasobwa

mudasobwa

Creator of Cure

Ragex - Hybrid Retrieval-Augmented Generation for Multi-Language Codebases

Ragex is an MCP (Model Context Protocol) server that analyzes codebases using compiler output and language-native tools to build comprehensive knowledge graphs. It enables natural language querying of code structure, relationships, and semantics.

I admit I finally discovered that T9 autocompletion on steroids (aka LLMs) might be somewhat helpful in daily development process. MCP-servers put the last piece of this puzzle into place for me. Assistants might be indeed helpful, if they are fed with the proper context, not with the whole project codebase or like.

I felt like R letter in RAG acronym could have been done better though. And I created Ragex, providing an MCP server providing the context retrieved directly from AST.

I don’t use assistants per se, but I use LunarVim as my code editor of choice, hence I benefited from Ragex myself, using it as a co-pilot of the language server. Some tasks (like atomic refactoring) it seems to be doing better.

The README of the project contains more details. Enjoy!

https://github.com/am-kantox/ragex

Most Liked

dimitarvp

dimitarvp

I don’t know about them breaking down but Gemini Pro starts showing laziness tendencies when the chat nears the 1M tokens context window. It starts hypothesizing on code it has readily available and given to it in the initial prompt and I have to keep reminding it that it already has the code and it should just check it.

garrison

garrison

I think you are anthropomorphizing here. Not only is it trivial for a computer to memorize Hamlet, but there are human savants who can do so with ease as well. It seems to be more a matter of evolutionary pressure: it was not evolutionarily useful for the average human to memorize Hamlet. And even this is a relative matter; a monkey would have great difficulty memorizing the poem.

But this discussion is somewhat moot in that it is far too expensive for models to actually operate natively with 1M context windows. My understanding is that large context models use tricks internally which, with some hand waving, are conceptually similar to RAG in that they compress the internal representation of the tokens into a latent vector. In other words, the RAG is coming from inside the model.

The only question is, empirically, which works better. I can’t speak to this because I have not been vibecoding, but it sounds like you (and others) are saying that the large context models don’t work well enough at this time.

I imagine there is also a cost factor, as input tokens are not free. But I’m sure the providers would love if you would send them more!

mudasobwa

mudasobwa

Creator of Cure

As far as I can tell, this is a key mistake. RAG built upon AST can keep relevant context for nearly billions of tokens, on the contrary to “large” models which still need to operate the context on their side.

That’s exactly the reason Ragex was born. I felt like I hit the ceiling too fast, exactly because the context window cannot grow infinitely, no matter what providers say. With Ragex, I’ve tried the elixir codebase and it somewhat works without any degrading, because AST is way more intense, compared to plain text.

Where Next?

Popular in Announcing Top

deadtrickster
I’ve just released stable versions of my Prometheus Elixir libs: Elixir client [docs]; Ecto collector [docs]; Plugs instrumenter/Export...
New
sasajuric
I’d like to announce a small library called boundaries. This is an experimental project which explores the idea of enforcing boundaries ...
New
maltoe
Hello! Came here to announce ChromicPDF, a pet project PDF generator I’ve been working on for the past few months. Why another PDF gener...
New
kip
ex_cldr provides localisation and internationalisation support based upon the data from the Unicode CLDR project. Unicode released CLDR ...
407 13056 120
New
Crowdhailer
Raxx is an alternative to Plug and is inspired by projects such as Rack(Ruby) and Ring(Clojure). 1.0-rc.1 is now available. To use it re...
New
treble37
Just looking for a little feedback on a tiny helper library I built - Sometimes I find the need to convert maps with atom keys to maps w...
New
fuelen
Hey folks! Want to present a toolkit for writing command-line user interfaces. It provides a convenient interface for colorizing text...
New
Qqwy
TypeCheck: Fast and flexible runtime type-checking for your Elixir projects. Core ideas Type- and function specifications are const...
336 14534 100
New
scohen
Lexical Lexical is a next-generation language server for the Elixir programming language. Features Context aware code completion As-you...
New
mattludwigs
Grizzly is a library for working with Z-Wave devices. Z-Wave is a low-frequency radio protocol for controlling smart home devices on a me...
New

Other popular topics Top

hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 52774 488
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New

We're in Beta

About us Mission Statement