Interview with Boris Cherny [video]
youtube.com
youtube.com
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
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.
source: https://microsoft.github.io/language-server-protocol/specifi... and https://microsoft.github.io/language-server-protocol/specifi...
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-lan...
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.
Still, these links may be of interest:
TypeScript’s language-service implementation of the “Move to file” refactor: https://github.com/microsoft/TypeScript/blob/main/src/servic...
Documentation for how `typescript-language-server` exposes that refactor as an opt-in code action: https://github.com/typescript-language-server/typescript-lan...
`ast-grep`, an AST-based search and transformation tool that may be closer in spirit to the cli functionality you describe, albeit more general-purpose: https://github.com/ast-grep/ast-grep
And in my experience, Claude Code will often ignore LSPs, despite instructing Claude to use them and have them installed through Claude, and revert to using grep and sed.
https://go.dev/gopls/features/transformation
it does look to have a method for moving a function to a new file
I give my agent access to go pls and find it overall beneficial, based on vibes eval. Its way easier to ask LSP everywhere a function or field is used versus grep, saves a lot of tokens
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
There Is: https://github.com/oraios/serena
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).
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.
Most users are on a subscription, and aren’t able to run dynamic workflows, spinning up 1000 agents or leaving a bun rewrite going for weeks. Don’t get me wrong… I like cake.
Somewhat like AWS CloudFormation templates start with something like TemplateVersion: 2017-10-01
But maybe that's old school thinking still.
we keep the AGENTS.md simple and monorepo quirk focussed, no instructions for specific agents or models
The whole idea behind LLM is they use the same language and tools as us, so we literally don't design anything specifically for them.
And a lot of people latched on to it as a form of self-soothing.
"I may not write much code anymore, but I can still be an expert prompt engineer!"
I wrote this last year, it's still true:
--- start quote ---
https://dmitriid.com/prompting-llms-is-not-engineering
In reality these are just shamanic rituals with outcomes based on faith, fear, or excitement. Engineering it is not.
--- end quote ---
There are some prompts useful for the user like brainstorming [1] but on the whole it's nothing but lucky charms
[1] brainstorming from superpowers: https://github.com/obra/superpowers
You can see this visually in older image generation models. Stable Diffusion 1.5 would produce wildly different images based on slight variations in prompt and seed, but the latest image gen models are nearly seed indifferent and can tolerate a decent amount of prompt tweaking while staying "consistent"
It's really tiring to have to tweak everything with each model release and then watch those changes mess up cheaper models in the process.
Finally he also "recommends" that you do not look at the code, or even understand it.
His "recommendations" are designed to get you to spend even more tokens and get you hooked on the Opus / Fable slot machine in order to extract as much money as possible from your wallets.
News at 10.
Now, the codebase is managed by agents and, while the company has the source, it's as if they bought it from a vendor and pay the vendor for changes. The vendor of their own system is the AI company selling them tokens.
He can be informative to listen to, as long as you keep that in mind.
Yes, they keep surprising me that they still keep doing all of this: https://news.ycombinator.com/item?id=48962703 with no improvement despite all the marketing assurances that "hey you don't need to read code anymore"
I am on board with not putting stuff like "write clean code" into an agent file, or using plugins for tools that are now built into the harness. I don't see enough evidence to support models being significantly better at figuring out intent, or getting the assumption correct. I've always gotten better results (as ever) with very constrained instructions, vs "fix the install".
I’m sure this just intended to steer you to vendor lock-in. Remember, these are the same people who are so insecure/petty about their product that they won’t make it recognize the .agents/AGENTS.md standard.
If you were, please share the knowledge with us. Where can I learn more?
Tried out Opus 5 and it's been a super annoying experience out of the box.
I have some wrappers but the only one I really use is a variant of that pinned to haiku for quick questions.
Anthropic had something about API-only in the description a couple months back, but they've been waking all those back for months since the fable access rollback fallout
> That's right. So to be fair, we don't delete the entire codebase.
31:09 He flubs the questioning. His first says "Raise your hand if 100% of your code uses agents." Then he says, "What about more than 50%". You can see the same audience members who raised the first time shrug and also raise the second time. He then says "Slightly less hands," which just means he sees what he wants to see. Don't believe this man.