mudasobwa

mudasobwa OP

Creator of Cure

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

First 8 of 8 Posts Switch mode

garrison

garrison

Many such capitulations lately.

Last year there was a lot of talk about how RAG would be killed by large context models, but it doesn’t seem to have happened. Instead it seems like a lot of prompting discourse has been replaced with context management discourse.

Empirically, how many lines of code do you find you’re able to shove into current models before they start to break down? And has that number gone up over the last couple of generations?

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.

mudasobwa

mudasobwa OP

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.

mudasobwa

mudasobwa OP

Creator of Cure

I have kinda insider info (please don’t quote me) that G actually lied about 1M. They started to accept 1M, which far from they learned to use 1M.

That’s the problem. Having (somehow squeezed) AST instead of code reduces the number of tokens drastically.

garrison

garrison

My understanding is that large context models are not natively trained on their full context window (as this would be prohibitive). Instead the models are trained at a much smaller context size and then the window is extended in post-training (I have little understanding of how). There is a resulting performance degradation once you eclipse the “true” context size of the model, but large context is still better than nothing.

I have no idea how much of this has changed over the past year, though. Everything is moving so fast.

mudasobwa

mudasobwa OP

Creator of Cure

AFAIU (I am not a model engineer either,) simply feeding the model with larger and larger contexts is a way to nowhere, because, you know, it’s easy to memorize Ode to a Nightingale, but it’s next to impossible to cram Hamlet from the first to the last line. No matter how large the context window is, one still needs to comprehend the meanings out of it.

That being said, I came to a conclusion that the more concise we can make the context without losing the significance, the better we are. That’s why I am a believer in local RAG for contexts, and that’s why I ever started Ragex.

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 OP

Creator of Cure

I don’t do vibecoding either, I do vibe-documenting, vibe-testing, and vibe-keeping-track-on-changes for vibe-committing.

Well, I am pretty sure I (the client side) know better what is more significant than the server side. They surely do kinda RAG on their side, but they have no idea what’s important in this text junk and what’s not. I do.

— All posts loaded —

Where Next? Top

Trending in Announcing Top

bluzky
You may know https://ui.shadcn.com/, a UI component library for React. I really love it’s design style and components. I’ve built some co...
387 14960 120
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
shahryarjb
The Chelekom project is a library of Phoenix and LiveView components generated via Mix tasks to fit developer needs seamlessly. One of i...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

Other Trending Topics Top

type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
akoutmos
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New
bjorng
We want to introduce a new native datatype to Erlang: native records. Although replacing all tuple records with native records is not our...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New

We're in Beta

About us Mission Statement