Welcome! This is my corner of the internet ⛺🔥 I'm a guy who likes to read a lot, tries to write, and most recently, obsessed with gen ai. Other interests...
Building CPE: From Chat Tool to Programmable Agent Harness I've been working on a project called CPE for the past eight months, and I've used it daily since day one. What started as a simple chat-based code editor — inspired by aider back in July 2024, which in AI years is a lifetime ago — has evolved into something quite different: a general-purpose, self-assembling agent harness that power users…
When building AI agents, tool calling is the standard way to give models access to external functionality. Most providers offer native tool calling APIs where you define schemas, and the model outputs structured JSON. But there's another approach: virtual tool calling. Instead of using the provider's tool calling mechanism, you describe tools in plain text and have the model output tool…
I've discovered two interesting quirks when working with Claude 3.7 Sonnet compared to earlier versions. Quirk 1: JSON Array Parsing Issues When working with my agentic coding CLI , Sonnet 3.7 consistently struggles with the get_related_files tool, which expects an array of file paths as input. Despite the schema clearly specifying that input_files should be an array: "input_files" : {…
In recent years, we've seen an explosion of AI-powered coding assistants like GitHub Copilot and Cursor (followed by what seems like a new VSCode fork every other week). These tools rely heavily on neural code retrieval to provide context to large language models. While these tools have shown impressive capabilities, their fundamental approach to context gathering through embedding-based retrieval…
I write code for a living. I've also been following along the developments of LLMs, especially their coding abilities. It has become apparent that LLMs are now capable of coding non trivial solutions, supported by the rise of LLM autocomplete in IDEs like Github Copilot, as well as agentic AI developers like Devin. The barrier to writing new lines of code continues to diminish. With LLMs becoming…
I've always liked to read, much more than I liked to write. Writing is a cumbersome process, refining the text over and over again to asymptotically approach the exact shape of a thought you wish to express (which mind you, in the process of writing can evolve and mutate). All the more reason why as an avid reader, I do appreciate well-written pieces (and why I am trying to write more). I prefer…
I recently got some time to try out Modal , which is a serverless platform that offers GPUs. I was searching for an easy way to run inference and fine-tune models in an easy and cost-effective manner (since I am GPU poor). There were a couple of options during my research, such as Replicate and friends, Huggingface Inference Endpoints , etc. but I was drawn to Modal for a couple of reasons.…
Python in AI These days, everything from prompting to training to inference is done in Python. There are other languages that also see usage, such as Rust (see HuggingFace tokenizers or Text Generation Inference ) or C++ ( TensorRT ), but these languages augment rather than replace. Interestingly, Python seems to be the primary language used for prompting as well, even though there is nothing…