upvote
Agents use source control, too. It's a pretty important part of the development process to understand how code has changed.

For example, you can imagine, at the extreme, that agents could get caught in code change loops: a code change seems appropriate, it is implemented, it turns out there's some external factor which makes it not appropriate, the change is reverted, then that same code change seems appropriate again, etc.

Obviously you can prevent that from occurring with some extra infrastructure in-place, but at that point you're basically creating source control.

reply
Anthropic can just replace pesky source control with a much better source guardrails. Aren't they all the rage and next step evolution in the computer security? Just ask Claud "pretty please do version control" and that should be enough, right?:)
reply
I’m not advocating for no source control, but you can avoid loops like this with Architectural Decision Records. If you’re real lazy, let the agent maintain the ADRs and they will usually call out when these “painted into a corner” scenarios happen and you can then reason them around it.
reply
> Hmm, I have destroyed the file again, that's odd. Let me rebuild it from a half recollection of what it was supposed to do based on my compacted context.

It's the right approach if your business is selling tokens and the customer doesn't know any better.

reply
Right. But how to prevent adversarial agents working on the same code base from treating the ADR list as a form of malicious message exchange?
reply
[delayed]
reply
In theory, an agent could use git-bisect to identify when a bug was introduced. But the operator would have to be more interested in understanding the root cause than in fixing the current form of the bug...
reply
For me, Claude regularly looks at git blame after identifying a bug, then reads the commit message and other changes in the commit to understand the context of why that behavior was introduced like that. I wouldn't be surprised if it pulled out a git bisect

Then again, my standard instruction is something like "{bug description}. Find the root cause and propose possible solutions" so I guess I fit your profile

reply
Same, I basically take the derivative of a bug wrt every major dimension before I fix it.
reply
not really an option when you're working on a large codebase where a bisect means that a lot of steps could be multiple-hours of compiles. E.g if on a simple 12-step bisect you get 6/8 with a full rebuild you've already spent an entire work day on this
reply
> the operator would have to be more interested in understanding the root cause than in fixing the current form of the bug...

Can you even do the latter without the former?

reply
I see it all the time, it is fixing the symptoms usually. It kind of works until it doesn’t and it fails miserably.

So yes you can and it works, sometimes…

reply
You can "fix" it (make the current reproducer not reproduce it anymore).
reply
> Agents use source control, too.

This is true, but at 30,000 merges a day we're talking about nearly 1 million merges a month, and purely autonomous agentic merges tend to be noisy. Is this still a tractable problem, even for an agent? Do revisions older than a few days, other than perhaps release snapshots, have any relevance for such a process?

reply
Not all merges are equal, even if it's a monorepo, it's probably rare that you'd have to look at the whole codebase to implement a new feature or find the root cause of a bug. Once you start looking at the history of a specific folder, it becomes more tractable.

Of course that does require some folder structure, and agents are not necessarily great at that, but they're still decent enough that you do end up with many folders not being impacted hour or even daily.

reply
I am not sure that I can agree with this at this scale, especially for the hotspots in the code. But I admit that I am speculating here.
reply
> Agents use source control, too. It's a pretty important part of the development process to understand how code has changed.

This is a great idea, now they just have to use/do it. Maybe they can use it effectively by cloning the repo and having all the history at hand, rather than continuously scraping web pages with git content formatted for human brwosing.

reply
In this sentence who would be understanding the code changes, humans?
reply
And which is understanding the code changes meant for?
reply
The agents obviously.. I thought that was obvious.
reply
That's not super reassuring, until I know they can read, remember, and reference reliably at suitable complexity.
reply
Just have the agent rederive the revert, based on the facts of whatever made the change inappropriate.
reply
[flagged]
reply
Many parts of the Git distributed version control are the results of good decision made. Anthropic source control team just think that their trade-offs needs are vastly different from other businesses. They said these too:

1. they have no-cap token spend allowance internally

2. their agent swarms are amongst the largest if not the largest, again because #1 above.

3. their git repo is enormously large (100GB uncompressed git history on main, 25GB compressed).

4. their merges per day count grew an order of magnitude from May to September to 30000 times per day, they are not seeing it slowing down anytime and probably only going to accelerate.

5. all of their code agents are networked and has network access, full local pull down is not needed at all and too slow (see #3)

6. their design of the Scion is based off prior art Google’s Piper and Meta’s Sapling.

Given their own constraints and characteristics of their own. It only makes sense to build their own homegrown solution based on prior arts. But this was NOT a complete redesign from scratch - so it's an full online download only what you need type of source control system. The problem is the version control software itself but its prior tradeoffs are misaligned with their scaling needs.

PS, if anyone noticed, Anthropic starts to concealing their employee full names and replaced with only first name + last name initiate, not sure why.

PPS, the project Scion is so bad, scn is worst, it reminds people of prior SVN, which is bad by itself.

reply
Perhaps I'm dense but I don't see how any of that answers the question "why even have source control?"
reply
I think the answer is that they don't, indeed, need source control but just a way to let their agents resolve editing conflicts. It's basically yet another message board.
reply
> 100GB uncompressed git history on main, 25GB

I might be completely out of context, but why is it only 4x compression? Do they commit a lot of binaries? I just don't understand why would code compress so badly.

reply
But Piper is a reimplementation of perforce which makes me wonder why they couldn't just license it. Why does it make sense to do this. Perforce should scale to the level they're talking about. Google were using it even when they had many tens of thousands of developers and multiple changesets per second and presumably it got better since then
reply
Google implemented Piper because Perforce simply didn't scale well. In the years since, P4 has barely improved at all. Licensing P4 would not help and Google doesn't offer Piper licenses.
reply
It scaled pretty well compared to everything else. I was there, they were running tens of thousands of engineers and hundreds of p4 commands per second off a 16 core box with a few replicas before starting the Piper migration. Commit rates were comparable to what Anthropic report. And although you say it barely improved, they were doing that sort of scale on 15 year old hardware and the p4 admins wrote a paper where they said Perforce had improved scalability a lot over time, so it's not like the software was static. Architecturally Scion sounds rather similar.

It's always a question of opportunity cost. The culture that led to Piper also led to them creating their own IDEs and everything else, often with questionable outcomes. Google had the profitability to get away with that kind of profligacy but do the AI labs really want to go the same route?

reply
These productivity gains must go somewhere.
reply
I feel like "didn't scale well" is unfair to Perforce. It scaled to accommodate an absurd monorepo that might have been, at the moment they switched to Piper, the largest single software project in history. It scaled to handle the needs of every organization in the industry except Google and Microsoft.
reply
In the age of AI writing code, maybe the question flips from "why not license it" to "why not reimplement it"?
reply
Is it really their comparative advantage? Perforce can use Claude too but can amortize the cost over many customers so it should be cheaper and faster to reuse.

I mean 30k CLs per day isn't much. That's one every few seconds. Well within what a decent perforce setup can do with enough replicas.

reply
You loose the free promo for your LLM, though.
reply
All of this is unsustainable in short, not to mention medium term (not just for affordability, even just security reasons) so I don't think there is a reason to look into scaling this mess.
reply
re: PPS: Employees are an attack vector. Making their identities harder to discover is a protection.

Gives me a vaguely creepy feeling, but it's reasonable.

reply
Anthropic is protective of employee names because of the sheer amount of hacking/phishing attempts that happen. A friend of mine got a job at Anthropic and within a week he was getting linkedin and email spam from people impersonating Dario.
reply
So? That's true of any employee at any company worth more than a billy and that's not a small amount of companies. I have gotten personal text messages from the CEO of my company, emails, and fake LI invites all at companies nobody has ever heard of.
reply
> Many parts of the Git distributed version control are the results of good decision made.

For how the Linux Kernel, a highly decentralized, completely open source project, with a single monotonic product, tyrannically lead (a good thing) - is developed.

Permissions, Partial Checkouts, Sub Repos, Vendoring, pub/sub... How many companies bought into git and then had to buy more tooling (like artifactory) because their 3rd party dependency's needed a home. Thats a feature that git does not support because git, as designed, did not need it.

Think about how much better your life would be if every time you typed npm,pip,goget,cargo it fetched THROUGH your repo. If those updates triggered code reviews of whatever changes you're going to consume. You are code reviewing those updates aren't you (someone is, cause supply chain attacks don't last that long)

Git has some weak points, Google doesn't use it for a reason. Epic created lore for a reason, This exists for a reason. Im not sure that any of them are the next thing that replaces GIT but it's getting to be time. Tools like this are going to keep popping up till someone gets it right.

reply
Maybe a frequent checkpoint suffices ? Let’s say I have hourly snapshots. In case of an outage I can restore the earliest checkpoint things were working well and have LLMs triage what the root cause is since then. Some code changes will be irrelevant. Sure, but reading code is now basically free ?
reply
I have a theory (loosely held, it's just an idea, not a belief) that this could lead to something I call Evolutionary Architecture. That instead of waiting for vulnerabilities to be discovered in code, that systems could end up with code being changed and re-implemented by agents so fast that attacks aren't able to probe for attacks because they end up probing code that by the time the answer is come it, in production that code no longer exists because it was moved to another language or something. The change to prevent vulnerabilities isn't the reason for change, but the change has defensive side effects.

All of this may be slightly inspired by the Militech neural matrix in Cyberpunk 2077

reply
I've been developing a weaker version of this line of thought for code reviews for large architectural features.

A big motivator of thinking architecture through really well is that although the software may work just fine now, a good architecture will make it easy to add a feature a year from now, whereas a bad architecture will necessitate significant rewriting.

But significant rewriting is cheap nowadays, so in code reviews I put a lot more weight on whether it works today, and a lot less weight on whether we'll need to change it when making a different change.

Entire classes of things like "should this be in this component or split out into its own" just don't matter anymore because no matter how tedious changing that might be once there's a ton of things depending on it, that's the kind of thing AI can do no problem.

reply
Lets take the idea further, and since nobody seems to be reading it, just throw away the source code. Just let the agents go directly to assembly.
reply
Assembly is source code...
reply
Can confirm: In the 1970s our high school had a minicomputer for teaching programming, and it was turned off when not in use. After turning it on, we would enter the magic three binary instructions into memory using sixteen toggles on the front panel.

Give it six months and there'll be have Optimus robots toggling switches to load terrabytes of binary programs directly into memory. Nobody wrote it, nobody will read it, but it will run everything.

reply
I’ve been building and playing with this idea for a while. Mostly with simple chips and simple programs. It seems like a good idea on the surface, but unless they build the whole OS the ordeal gets much more difficult. There is also a lot of work building / finding training data without decompiling and labelling current exes.
reply
Does your agent not know how to just build a binary?
reply
If not, agents can reverse engineer binaries.
reply
Source control has fine-grained metadata that is invaluable for LLMs.

They can just analyze PRs and diffs without loading the entire 10,000 line file.

Also, anti-AI folks really have a fundamental misunderstanding of how everything works in the LLM world and is probably why all their predictions are wrong

reply
I've been doing that for one project/experiment. No source control. Tests and an agent swarm let loose.

It works, but there is a significant amount of churn. I find when the swarms use git it's less churn and less token usage.

reply
Yep. You need some amount of workspace separation and reconciliation.
reply
> then why even have source control?

I know you are joking, but the answer is the same. Because the agents need it, not because any human need it. The Agents quite actively use the history. It's more effective than any comments or separate documentation might be for the agents working on the code.

reply
There would be so much noise in it, the history is going to be pretty much useless.
reply
Yet, in all that noise, a git bisect will still function to find when a bug was introduced.
reply
Do the math yourself: A bug is picked up 2 week after commit. In the meantime, a good 4096+ commits have happened since. You are looking for the pathological case, at +- 12 commits.

Do you think each and every one of those are going to be "good" commits, commits that still "compile" or function. Possible, but unlikely given the insane velocity.

reply
deleted
reply
Quite the claim to present without evidence
reply
Even with humans out of the loop you will still want features like branches, pull requests, tags/versioning, build reproducibility, etc.
reply
A pull request could be a special case of some other construct?

All the others seem necessary. Maybe you don't need branches at all, of course we do! Things have to have names.

reply
Technically, I guess you could say that a pull request is not a part of a version control system. GitHub has pull requests, but they're not a primitive in git, they're built on top of branches, commits, and merge/rebase. That said, I would expect a version control system built around agentic workflows to have something like it as a core feature.
reply
Feels like a pull request is a proposal for whomever controls the branch ledger, to sign an existing commit as the new head of the branch.

There could be some fun cryptographic ways you could do it directly inside of git.

reply
You’d expect that while the frontier of changes fans out and grows, some of them burn out and disappear and some of them survive and solidify into a relatively static code base.

The big baddies of build have worked this way for a long time already. Git surfaces a single Merkle tree id for the whole repo on each commit, but build tools like bazel/blaze, buck, pants, et al look at hashes of subtrees and use cached artifacts for the parts of the tree that didn’t change.

Your CI no longer becomes a binary signal on the code and more of a continuous signal on how much your “this works” pointer has caught up with your “this is the latest code” pointer.

reply
Reading this post put me in a similar head space.

I believe you're mostly thinking of version history though. There’s plenty of other reasons to have source control we still need, like guarding against racing writes or continuous integration to ensure correctness. Even some industries require version history for compliance reasons.

I do love how AI is challenging us to rethink our tools though rather than blindly reaching to git for every project.

reply
My mental model, for what it's worth, is this: - deterministic foundation - non-deterministic on top of it operating against (and building) it

That is, the deterministic part is the platform that is being built and that non-deterministic agents will use and build it, but that layer is a key part of how they do work and will continue to be.

reply
You think CI and distributed builds aren't necessary if you change the code fast enough?

There's lots to improve in how we handle code, and losing the agreement on what the codebase even is sounds like an awful regression.

reply
You're asking if the bitter lesson is true and the neural nets will become so general purpose, they'll eat the source control as well? Yes, but that won't happen for another couple months.
reply
I don't think this is stupid, and I think the logical extension to this is agents will start writing directly to prod with fully automated code changes.

Pulling that off successfully at scale would be pretty incredible to watch.

reply
I let my Claude write to prod in some projects. But after comitting, pushing, waiting for CI to run unit tests and build the docker image. Then it can deploy the image on k8s. Sure, it can also just run commands on the pod. But the agent benefits from the ability to rollback, identify at a glance which version is running, what has changed since then and why

We built all this tooling because it's useful. If you replace the human with an agent the tooling doesn't stop being useful. If anything it becomes more useful, since AI Agents excell at reading tool output but struggle with maintaining long-term state

reply
That's because we're in a world where the human and agent make mistakes. But think about the world where the agent doesn't make any mistakes anymore and doesn't need to rollback or figure out what has changed.
reply
So agent would have reached perfection. I'm not sure humans can create a machine capable of perfection. This is a philosophical question waiting for a definitive answer.
reply
I don't think we will reach a world where agents make no mistakes. Because there are always tradeoffs. So an agent could choose the "wrong" tradeoff and we call that a "mistake", but is that really a "mistake"? Arguably not
reply
If the agent is able to make fewer mistakes but chose the wrong tradeoff it will be faster to fix forward than to look back, figure out why it happened, dig out the rollback, and then figure out how to change the decision.
reply
Your last statement holds even after removing the word "successfully".
reply
Lisp machines finally vindicated. Took only 40 years and a historic paradigm shift
reply
deleted
reply
They are probably like 3-6 months away from just letting their agents work directly on prod after realising that repos don't scale enough.
reply
I expect mainly because the coding models are trained to roleplay that process and don't work as well if they can't pretend to use git
reply
This has always been the dream, code flowing constantly like a river, like green rain. Imagine a world where you never use the same piece of software twice, because every day it changes.

This is how we solve cybersecurity, by making code into constant shifting sand, so a vulnerability never truly lives long enough to be exploited at scale. Sure, a hacker may occasionally pick out a vulnerability like a bear picks salmon out of a river, but it makes larger scale cyberattacks impractical. The code is a firehose, constantly in flux.

reply
Due to the pace of app changes, people on reddit seem to think Spotify is a constant "green rain"
reply
We could do all of this right now. I see it laid out like a great tapestry, as specs are reimplemented over and over again, in an endless sea of meetings. Some in Rust but others in PHP or Cold Fusion. Entire lives conjoured from the ether to simulate stan so he could be a TPM on the multibusiness unit unified receivables, this time in vb.net and with 3 kids instead of two.
reply
Source code exists, that’s not in doubt. If it exists it needs to be managed.

From the post (especially the end) it seems that they are essentially letting software be fluid.

reply
Good way to keep metrics and prove work is happening would be my guess.
reply
Funny you mention that, that’s actually the direction I’m taking with the architecture that I’m building

In fact most of the architecture work I’m building, assumes that there will not be a human reading code, they read (effectively) UML and data diagrams

so most of the interesting parts I’m working on now are how do you make code blazingly fast, formally verified and memory safe if you remove the constraint of human interpretability of machine instruction

reply
didnt the article say thay engineers still review change requests? They just switched from reviewing code to reviewing intent.

So "no direct human supervision" seems like a misunderstanding. Article even bigs up the purpose of engineers with a hilarious (to me at least) line about auto adversial reviews resulting in over engineered designs.

reply
Good point, I wasn't clear enough about my thoughts here. I tried to say that in a multiple commits/s world the review might not be direct line/hunk review of the code but a more "indirect", abstracted or higher level human oversight, which is how I understand an intent review is.

I'm not saying that Anthropic here close their eyes and tell Claude to ship and that in the future there will be no code review at all, but that if we have 30K merges/day, human review seems to need to be done at some higher level, likely AI assisted like it seems to be done with their Antique code review tool mentioned in the post.

reply
I mean i’m solodeving and on my github 30 commits a day is light green. Record probably was 280/day, but I’m not sure if every commit is merge to them. or if they just count PRs
reply
[flagged]
reply