3 ms·
I feel like the Big Insight with Claude Code was 'give the AI access to tools, in fact to your actual laptop'. And of course 1.5 years later 'a harness to enabl
by firasd 2mo ago
I feel like the Big Insight with Claude Code was 'give the AI access to tools, in fact to your actual laptop'. And of course 1.5 years later 'a harness to enable an agent to use my computer' has turned into the flagship product we expect from frontier labs
However. I don't think all the other 'Ideas' these harness-building guys have are all that universally applicable. Heck they are naysaying their own gearhead stack of skills.md and claude.md lately including in this video. But also I'm suspicious of this whole thing of spawning agents. For example "find every function in this codebase" is probably better done deterministically using a script that extracts function names rather than by spawning 20 agents to 'read' chunks of the code in token space. But it certainly racks up the token usage which is good for the person selling you inference...
And there is a lot missing in the actual harnesses frankly that isn't about more parallel agent ninjutsu. Like why isn't there a 'move this function from this file to this file' tool (copy/paste char range) and we have to see Claude/Codex/etc flail around rewriting huge chunks of code in token space
- rescripting 2mo ago> Like why isn't there a 'move this function from this file to this file' tool (copy/paste char range) There is, you can install LSPs for a given language which act as just another tool the model can use to more efficiently manipulate code.
- firasd 2mo agoLSPs don't really do this. They're like a better way to grep for something (so they do address the previous thing I said about listing all function names etc.) But they often don't say (depending on the particular LSP setup etc) this function ends at this char and they definitely don't then provide the text editing tool
- throw478239 2mo agoThis is not accurate. Most LSPs do provide text editing tools, which the Language Server Protocol calls "code actions". These actions do things like: reorganizing imports, expanding macros, extracting a selection into a function, or converting one type of control flow into another (e.g. if to match). Common LSPs, like rust-analyzer and Ruff (Python) support code actions. Editors also expose code actions: Zed, for instance, exposes actions under the default keymap with the binding Command + . source: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_codeAction https://microsoft.github.io/language-server-protocol/specifi... and https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_executeCommand https://microsoft.github.io/language-server-protocol/specifi...
- firasd 2mo agoCome on what are we talking about. Ruff is a linter. Can you show me any LSP server that can move an arbitrary function from file1.ts to file2.ts based on calling it on the command line?
- wild_egg 2mo agoI've had decent results telling agents to use emacs for structural editing operations. Pretty rare that I need to move a function across files verbatim but that should only be a few extra lines of elisp.
- jaggederest 2mo agoThey're not command line applications, they use JSON-RPC inline, and it's an interactive flow, so you need the client to actually persist state. So what you'd see in the LLM traces, for example, is a couple back-and-forths using JSON-RPC. It absolutely works at the moment, and claude code will happily use it if everything is set up correctly, just tested it using https://github.com/typescript-language-server/typescript-language-server https://github.com/typescript-language-server/typescript-lan...
- firasd 2mo agoWhat did you test exactly? Look what I’m asking for is not complicated Node cutpaste.js inputpath startcharnum endcharnum outputpath startcharnum I was just using it as an example of how dropping claude / gpt in a Linux shell and saying good luck and then giving interviews about spawning sub agents seems to overlook basic text editing primitives But if you managed to move an arbitrary char range from one file to another using Claude Code talking to the TS LSP server let me know that would be enlightening.
- jaggederest 2mo agoNo, not an arbitrary character range, it's quite a lot smarter than that. It's an AST transformation - it takes the parsed tree out and puts it in another file and updates any imports that refer to the prior function to the new location. That all happens in the LSP side, not the LLM side, so it's deterministic. You can look at the source code for the LSP yourself.
- ifwinterco 2mo agoYes exactly, his job is first and foremost to be a token salesman. He’d be telling you to use workflows that spin up loads of agents all the time whether or not he actually thought they were the best way to be productive
- senand 2mo ago> Like why isn't there a 'move this function from this file to this file' tool (copy/paste char range) There Is: https://github.com/oraios/serena https://github.com/oraios/serena
- KptMarchewa 2mo ago"find every function in this codebase" is rarely a thing imo. Why would you want to do that, for some statistics? In many cases, what you want to do is find "all classes that implement some interface" - of course depending on the language. And reasonable languages allow agents to find that reasonably efficiently ("implements Foo") - a bit slower than specialized interfaces, but in a way that don't require you to maintain a giant index. And yes, agents writing chunks of code or scripts to accomplish tasks is already what they do, when they determine it's efficient. >And there is a lot missing in the actual harnesses frankly that isn't about more parallel agent ninjutsu. Like why isn't there a 'move this function from this file to this file' tool (copy/paste char range) and we have to see Claude/Codex/etc flail around rewriting huge chunks of code in token space I think if we had agent-specialized languages that you would modify by directly changing AST or some other structure it would be more efficient. But, otherwise, it's way more efficient to train on existing corpus - like PRs - which is the same reason that internal LLM thinking is not binharic, but regular English (or Chinese).
- bmitc 2mo ago> And there is a lot missing in the actual harnesses frankly that isn't about more parallel agent ninjutsu. Like why isn't there a 'move this function from this file to this file' tool (copy/paste char range) and we have to see Claude/Codex/etc flail around rewriting huge chunks of code in token space This is a very important point. There's so much missing in software development that we've gone from zero to one hundred without considering the in between. Same thing happened with electric cars and automated driving. Everyone decided that we should go from no driver assistance to full-self driving instead of incrementally building up driver assistance features. This is similar. We and these AI tools need better semantic tooling for dealing with software development. Otherwise, like you say, these AI tools are just going to flail about as much as we do. It's pretty ridiculous our version control systems still operate on objects that are just lines of text.
- killix 2mo ago[flagged]