Generative AI

When AI Can Rewrite Itself, What Does “Version 2” Even Mean?

When AI Can Rewrite Itself, What Does “Version 2” Even Mean?

Designing Version Control for AI Models, Memory, Tools, Knowledge, and Self-Improving Agents

Your production AI agent worked perfectly on Monday.

On Tuesday, it started making strange decisions.

The model didn't change.

The code didn't change.

The system prompt didn't change.

So what changed?

Maybe its memory.

Maybe the documents in its knowledge base.

Maybe a tool definition.

Maybe a retrieval configuration.

Maybe the model provider silently changed the underlying model.

Maybe the agent learned a new skill.

Maybe an evaluator promoted a new workflow.

Or maybe several of those things changed at once.

Now try to answer a very simple engineering question:

What version of the AI was running when the bad decision happened?

For traditional software, this is easy.

commit: 7f3a91c

You inspect the diff.

You reproduce the environment.

You roll back.

With modern AI systems, the answer might look more like this:

Model:             gpt-x
Prompt:            unknown
Memory:            18,291 records
Knowledge base:    4.2M documents
Tools:             17
Tool versions:     mixed
Policies:          unknown
Agent workflow:    v31
Retriever:         v8
Embeddings:        v4
Runtime:           v12
Conversation:      9 hours old
Evaluator:         v6

And suddenly "version" doesn't mean much.

This is the problem with AI version control.

Git gives software engineers a history of what changed.

AI systems need something much more complicated:

A history of what the system was capable of, what it knew, what it remembered, what it was allowed to do, how it was evaluated, and why a particular version was promoted.

And if AI eventually becomes capable of modifying its own architecture, tools, memory, and training process, this stops being an MLOps problem.

It becomes an AGI systems problem.

1. Git Solved Version Control for Software

Git works because software has a relatively clean representation.

A repository contains files.

A commit points to a specific state.

Commit A
   │
   ▼
Commit B
   │
   ▼
Commit C

Each commit can answer:

  • What changed?
  • Who changed it?
  • When?
  • What was the previous state?
  • Can we reproduce it?
  • Can we revert it?

The underlying model is essentially:

Repository state
        ↓
      commit
        ↓
   immutable history

That model works remarkably well for deterministic artifacts.

AI is different.

Consider an AI agent.

Its behavior may depend on:

                    AI Agent
                       │
       ┌───────────────┼────────────────┐
       │               │                │
       ▼               ▼                ▼
     Model           Prompt           Tools
       │               │                │
       ▼               ▼                ▼
    Weights         Policies       Tool versions
       │
       ▼
     Memory
       │
       ▼
 Knowledge / RAG
       │
       ▼
 Runtime / Environment

Change any one of these and the resulting behavior can change.

The agent's "version" is therefore not one file.

It is a configuration of interacting state.

2. The AI Version Is a Vector, Not a Number

Instead of:

AI v17

think:

AI State v17

model          = model_8f31
prompt         = prompt_204
memory         = memory_921
knowledge      = kb_72
tools          = tools_44
policies       = policy_19
workflow       = workflow_83
retriever      = retriever_12
evaluator      = evaluator_7
runtime        = runtime_31

Mathematically, we could describe an AI state as:

S=(M,P,K,R,T,W,Q,E,X)S = (M, P, K, R, T, W, Q, E, X)

where:

  • MM = model
  • PP = prompts and instructions
  • KK = knowledge
  • RR = retrieval configuration
  • TT = tools
  • WW = workflow
  • QQ = policies and permissions
  • EE = evaluator
  • XX = runtime and environment

Two agents can use the exact same model and still be completely different systems.

For example:

Agent A
GPT-X
+ customer-support memory
+ refund tool
+ strict refund policy

Agent B
GPT-X
+ engineering memory
+ production deployment tool
+ infrastructure policy

Same model.

Completely different capabilities.

So saying:

"We're running model X"

is increasingly insufficient as a description of an AI system.

3. The First Principle of AI Version Control

Version behavior, not just artifacts.

This is the biggest conceptual shift.

Traditional version control asks:

What files changed?

AI version control needs to ask:

What behavior could have changed?

Suppose an agent's model remains identical but its memory changes.

A conventional model registry might report:

Model:
unchanged

An AI version-control system should report:

Behavioral state:
changed

Memory:
+4,812 entries
-31 entries
+17 corrected facts

Knowledge:
+2,102 documents

Tool permissions:
+1 capability

Observed evaluation:
planning: +4.2%
factuality: -1.1%

That's much more useful.

4. The AI Commit

The basic primitive of an AI version-control system should be an AI commit.

Imagine:

{
  "commit": "a91f42",
  "parent": "7c193e",
  "model": "model_82a1",
  "prompt": "prompt_91f2",
  "memory": "memory_4412",
  "knowledge": "knowledge_812",
  "tools": "tools_73",
  "policies": "policy_91",
  "workflow": "workflow_17",
  "runtime": "runtime_4",
  "evaluator": "evaluator_8"
}

The commit doesn't necessarily contain all of those artifacts.

It contains references to immutable versions of them.

Conceptually:

                 AI COMMIT
                     │
       ┌─────────────┼──────────────┐
       │             │              │
       ▼             ▼              ▼
     Model         Memory         Tools
       │             │              │
       ▼             ▼              ▼
    Hash A         Hash B         Hash C

       │             │              │
       └─────────────┼──────────────┘
                     │
                     ▼
              Behavioral State

Now an AI instance can be reconstructed from its commit.

That's the beginning of reproducibility.

5. Why Hashing the Model Isn't Enough

You might think:

"Just hash the model weights."

That works for identifying the weights.

It doesn't identify the AI.

Imagine:

Model hash:
8fa21

is identical across two deployments.

But:

Prompt:
different

Memory:
different

Tools:
different

Knowledge:
different

Their behavior can be radically different.

The model hash tells you:

Which neural network was used?

It does not tell you:

Which intelligence configuration produced this action?

That distinction becomes even more important for autonomous agents.

6. AI Needs a Behavioral Snapshot

A useful AI version should therefore capture a behavioral snapshot.

For example:

AI Snapshot #1842
│
├── Model
│   ├── architecture
│   ├── weights
│   └── adapters
│
├── Instructions
│   ├── system prompt
│   ├── policies
│   └── routing rules
│
├── Memory
│   ├── episodic
│   ├── semantic
│   └── working state
│
├── Knowledge
│   ├── documents
│   ├── embeddings
│   └── indexes
│
├── Tools
│   ├── definitions
│   ├── permissions
│   └── implementations
│
├── Agent
│   ├── workflow
│   ├── skills
│   └── planning strategy
│
├── Evaluation
│   ├── benchmarks
│   ├── test results
│   └── promotion decision
│
└── Environment
    ├── runtime
    ├── dependencies
    └── infrastructure

This is much closer to what "AI version" actually means.

7. The Hardest Part: Versioning Memory

This is where AI version control becomes fundamentally different from Git.

Software doesn't normally rewrite its own source code every time it learns something.

Agents do.

An agent might accumulate:

memory_1
memory_2
memory_3
...
memory_100000

Some memories are:

  • observations
  • user preferences
  • inferred facts
  • plans
  • mistakes
  • corrections
  • summaries
  • learned procedures

Now imagine the agent stores an incorrect fact.

Later it discovers the truth.

It updates the memory.

Then it uses the corrected memory to generate another memory.

Then another.

Six months later:

Which decisions depended on the original incorrect fact?

Normal database timestamps aren't enough.

We need memory lineage.

8. Memory Needs Its Own Version Graph

Consider:

Memory A
"Ireland is part of the UK."
       │
       ▼
Memory B
"User prefers Irish suppliers."
       │
       ▼
Decision C
"Contact supplier X."

Later:

Evidence D
"Ireland is an independent country."

The agent corrects Memory A.

But now we need to know that:

A
├── influenced B
└── influenced C

That gives us a causal graph:

                Memory A
                   │
          ┌────────┴────────┐
          ▼                 ▼
       Memory B          Decision C
          │
          ▼
       Plan D

A sophisticated AI version-control system should be able to answer:

Which downstream behaviors depended on this memory?

That is closer to data lineage plus Git than conventional model versioning.

Recent research is already moving in this direction. ChronoMem, published in July 2026, proposes semantic versioning and rollback for LLM agent memory, including historical memory snapshots and tests for whether an agent can behave as if later information had never existed.

That's an important signal.

Memory versioning isn't theoretical anymore.

But memory versioning alone isn't enough.

9. Knowledge Bases Need Version Control Too

Suppose your agent uses RAG.

On Monday:

Knowledge Base v14

On Tuesday:

Knowledge Base v15

Someone replaces 50,000 documents.

The agent's model doesn't change.

The prompt doesn't change.

But its answers do.

Now someone reports:

"The agent started giving incorrect answers Tuesday afternoon."

What do you inspect?

You need:

Document version
Embedding version
Chunking version
Indexer version
Retriever version
Ranking configuration
Knowledge snapshot

A reproducible AI query therefore looks more like:

request
  │
  ├── model = M17
  ├── prompt = P44
  ├── memory = MEM921
  ├── knowledge = KB72
  ├── retriever = R8
  ├── tools = T31
  └── policy = POL14

Now you can replay the decision.

Without this information, you're debugging a probabilistic system with missing evidence.

10. Tools Are Part of the AI Version

Consider an agent with:

search_web()
send_email()
deploy()
delete_database()

Now someone changes the deploy() tool.

The AI model doesn't change.

But its effective capability does.

The same applies to permissions.

Agent v10

Tool:
deploy_production()

Permission:
read-only

becomes:

Agent v11

Tool:
deploy_production()

Permission:
read + write

That's a capability change.

An AI version-control system therefore needs to version:

Tool definition
Tool implementation
Tool schema
Tool dependencies
Tool permissions
Authentication scope
Network access
Rate limits

This is especially important because tool access can expand an agent's real-world authority without changing its model weights.

11. Skills Are Code, Even When They Don't Look Like Code

Modern agents increasingly accumulate reusable skills.

For example:

research_company
analyze_financials
write_report
deploy_service
debug_database

A skill might contain:

instructions
examples
tool calls
code
retrieval strategy
evaluation criteria

If an agent improves its research_company skill, that is effectively a software update.

It should produce:

skill/research_company

v1
 ↓
v2
 ↓
v3

with evaluation attached to each version.

This is one reason version control for AI agents is emerging as a distinct engineering concern in 2026. Current systems and articles are already treating agent workflows, generated artifacts, context, and state as versionable objects.

12. Now We Can Build AI Branches

This is where the analogy with Git gets interesting.

Suppose an agent wants to improve its research ability.

Instead of modifying production directly:

production AI
      │
      ▼
modify itself
      │
      ▼
production

it creates a branch:

                    AI v40
                      │
            ┌─────────┴─────────┐
            │                   │
       research-A          research-B
            │                   │
         v41-A               v41-B

Branch A experiments with:

better retrieval

Branch B experiments with:

better planning

Both run against an evaluation suite.

Results:

              Research   Planning   Cost
v40              82         76       1.0x
v41-A            91         77       1.2x
v41-B            83         89       1.4x

Now we have a meaningful decision.

The system can choose:

v41-A

for research.

Or create another candidate combining ideas from both branches.

But this introduces a problem Git doesn't have.

13. AI Merging Is Not Code Merging

Git can merge:

file A
+
file B

AI capabilities aren't text files.

Suppose:

Branch A:
better reasoning

Branch B:
better memory retrieval

Can we simply create:

Branch C:
better reasoning + better memory

Not necessarily.

The two changes may interact.

Maybe Branch A relies on a particular memory representation.

Maybe Branch B changes that representation.

Maybe combining them creates a regression.

So an AI merge must be semantic.

Conceptually:

merge(A, B)
       │
       ▼
candidate C
       │
       ▼
compatibility tests
       │
       ├── fail
       │
       ▼
capability evaluation
       │
       ▼
regression evaluation
       │
       ▼
promotion

The merge isn't complete until the resulting intelligence is tested.

14. The AI Diff

This is perhaps the most useful feature an AI version-control system could provide.

Git shows:

- old line
+ new line

AI needs something different.

Imagine:

AI Diff: v41 → v42

Model

Architecture: unchanged
Weights: changed
Adapter: +finance-v2

Memory

Added:       18,421
Modified:     4,218
Deleted:        183
Corrected:      941

Tools

+ financial_search()
+ portfolio_analyzer()

- generic_search()

Policies

Changed:
  investment_disclaimer
  transaction_confirmation

Capabilities

Financial reasoning      +12.4%
Long-horizon planning     +4.7%
Coding                    +0.3%
Factuality                -1.2%
Tool safety               -3.1%

Cost

Tokens/request: +17%
Latency p99:    +9%

Regression

3 previously passing tests failed.

That is the equivalent of a code diff for intelligence.

And it's much more useful than:

"Model v42 scores 3% higher."

15. The Capability Graph

Now we can introduce another primitive.

A model doesn't just have a version.

It has capabilities.

Represent them as a graph:

                    Intelligence
                         │
        ┌────────────────┼────────────────┐
        │                │                │
     Reasoning        Planning          Memory
        │                │                │
    ┌───┴───┐        ┌───┴────┐      ┌───┴────┐
    │       │        │        │      │        │
  Math    Logic   Strategy  Execution Facts  Recall

A change might affect only one region.

For example:

v17 → v18

Reasoning:
    +8%

Planning:
    +12%

Memory:
    unchanged

Tool use:
    -3%

Factuality:
    unchanged

Now the version-control system can track capability deltas.

This is much more informative than model numbers.

16. Promotion Should Depend on Evidence

A candidate shouldn't become production because:

benchmark_score > old_score

A proper promotion pipeline might look like:

                 Candidate AI
                      │
                      ▼
                  Sandbox
                      │
            ┌─────────┼─────────┐
            ▼         ▼         ▼
         Quality    Safety     Cost
         Tests      Tests      Tests
            │         │         │
            └─────────┼─────────┘
                      ▼
               Regression Suite
                      │
                      ▼
                Hidden Tests
                      │
                      ▼
                 Canary Run
                      │
                      ▼
                 Promotion

This is where AI version control overlaps with CI/CD.

But there's a major difference.

Software tests often answer:

does the program work?

AI tests need to answer:

did the system get better without becoming worse somewhere else?

That's much harder.

17. The Most Dangerous Feature: Self-Evaluation

Now we reach AGI territory.

Imagine an AI can modify itself.

It produces:

v50

Then it evaluates v50.

It decides:

v50 is better.

Then it modifies itself again.

v51

It evaluates v51.

v51 is better.

Repeat.

The system appears to be improving.

But who wrote the test?

The AI.

Who ran the test?

The AI.

Who interpreted the result?

The AI.

Who decided whether to promote the result?

The AI.

Now the optimization loop is:

                AI
                 │
          modifies itself
                 │
                 ▼
              AI v2
                 │
             evaluates
                 │
                 ▼
              AI v2
                 │
          modifies itself
                 │
                 ▼
              AI v3

The evaluator is inside the system being optimized.

That's dangerous.

Recent research on recursive self-improvement increasingly identifies evaluation as the central bottleneck. A 2026 survey of 1,250 papers explicitly distinguishes self-improvement loops by what they improve and how closed the evaluation loop is, and places formal or executable verification above intrinsic self-assessment in its verification hierarchy.

Another 2026 analysis makes the same practical point: a self-improvement system can optimize its evaluator rather than the underlying capability if the evaluator is allowed to drift with the system.

This is where version control becomes much more than convenience.

It becomes a control mechanism.

18. Never Let the AI Rewrite Its Own History

Imagine:

v50
 ↓
v51
 ↓
v52
 ↓
v53

Now the AI decides:

"The evaluator used by v51 was flawed."

Fine.

The system should be able to create:

v51
 ↓
evaluation revision
 ↓
new evidence

But it should not rewrite the historical record.

The original commit must remain immutable.

Otherwise you get:

History:
v50 → v51 → v52

today,

and:

History:
v50 → v53

tomorrow.

For a self-improving system, immutable history is not optional.

19. Content-Addressed AI State

Git uses content-addressed objects.

AI version control can borrow the same idea.

Every component receives an immutable identifier:

model       → hash
prompt      → hash
memory      → hash
knowledge   → hash
tool        → hash
policy      → hash
evaluator   → hash
runtime     → hash

The AI commit then becomes:

AI Commit
    │
    ├── model:     sha256(...)
    ├── memory:    sha256(...)
    ├── knowledge: sha256(...)
    ├── tools:     sha256(...)
    ├── policy:    sha256(...)
    ├── evaluator: sha256(...)
    └── runtime:   sha256(...)

Now the entire AI state is content-addressable.

If one component changes:

memory

the resulting commit changes.

This gives us reproducibility.

20. But Reproducibility Has Another Problem

Even if the artifacts are identical, AI output may not be.

Inference can depend on:

  • model-serving implementation
  • tokenizer version
  • random seeds
  • GPU kernels
  • quantization
  • sampling configuration
  • external APIs
  • current tool state
  • current knowledge
  • network responses

So an AI version-control system needs to distinguish between:

Deterministic state

and:

Environmental state

For example:

AI Commit
├── deterministic artifacts
│   ├── model
│   ├── prompt
│   ├── policy
│   └── workflow
│
└── environment
    ├── runtime
    ├── dependencies
    ├── tool APIs
    ├── external data
    └── infrastructure

A truly reproducible replay requires both.

21. The AI Replay

Now imagine a production incident.

At 14:32:11, an agent made a bad decision.

Instead of asking:

"What happened?"

you should be able to run:

ai replay --commit a91f42 --trace 918273

The system reconstructs:

Model:
M82

Prompt:
P91

Memory:
MEM4412

Knowledge:
KB812

Tools:
T73

Policies:
POL91

Environment:
RUNTIME4

Then replays the exact trajectory.

If the output differs, you investigate the environmental dependency.

This turns AI debugging from:

"The model seems weird."

into:

"Commit a91f42 produced a regression under evaluator E7 after memory snapshot MEM4412 was introduced."

That's engineering.

22. Rollback Is More Complicated Than git revert

Suppose:

AI v10

creates:

AI v11

and v11 modifies:

model
memory
tools

Then v12 modifies:

memory

again.

Now v12 fails.

Should you restore:

v11?

Maybe.

But if the problem is only the v12 memory update, restoring the entire system to v11 might throw away a useful model improvement.

This means AI version control needs component-level rollback.

For example:

rollback memory

without:

rollback model

or:

rollback tool permissions

without:

rollback knowledge

This is much closer to transactional systems than ordinary Git.

23. AI Transactions

Consider an AI update:

Update:
model + memory + tool

We want:

BEGIN UPDATE

modify model
modify memory
modify tool

evaluate

COMMIT

If evaluation fails:

ROLLBACK

The entire behavioral state returns to the previous trusted snapshot.

Conceptually:

                 Candidate
                    │
                    ▼
               transaction
                    │
             ┌──────┴──────┐
             ▼             ▼
         evaluation      failure
             │             │
             ▼             ▼
          commit        rollback

That is the foundation for safe autonomous modification.

24. Canary Releases for Intelligence

Don't immediately replace:

AI v41

with:

AI v42

Run both.

                Traffic
                   │
             ┌─────┴─────┐
             │           │
           95%           5%
             │           │
           v41          v42

Compare:

accuracy
latency
cost
tool errors
user satisfaction
hallucination rate
policy violations
task completion

If v42 wins:

5%
 ↓
20%
 ↓
50%
 ↓
100%

If it fails:

5%
 ↓
rollback

This is standard progressive delivery applied to intelligence.

25. But AI Needs More Than Canary Traffic

A model can behave correctly on normal users and still have a regression.

So AI canarying should include:

Live traffic

What happens with real users?

Shadow traffic

What would the new AI have done?

Historical replay

How does it behave on past incidents?

Adversarial evaluation

Can it be manipulated?

Capability regression

Did something get worse?

Safety evaluation

Did the risk envelope change?

That gives us:

Candidate
   │
   ├── historical replay
   ├── shadow traffic
   ├── adversarial tests
   ├── capability tests
   ├── safety tests
   └── live canary

Only then should it become the new production version.

26. The Intelligence Control Plane

At this point, AI version control starts looking like an entire infrastructure layer.

Call it the:

Intelligence Control Plane

It would manage:

Models
Prompts
Memory
Knowledge
Tools
Skills
Policies
Evaluators
Experiments
Versions
Branches
Capabilities
Deployments
Rollbacks
Evidence

Architecture:

                    INTELLIGENCE CONTROL PLANE
                              │
        ┌─────────────────────┼──────────────────────┐
        │                     │                      │
        ▼                     ▼                      ▼
   Version Registry      Capability Graph      Evaluation Engine
        │                     │                      │
        ▼                     ▼                      ▼
   State Snapshots        AI Diffs             Test Results
        │                     │                      │
        └─────────────────────┼──────────────────────┘
                              │
                              ▼
                       Promotion Engine
                              │
                   ┌──────────┴──────────┐
                   ▼                     ▼
                Canary                Rollback

This is the missing layer between:

AI model

and:

production AI system

27. The Version DAG

Normal software development can be represented as a directed acyclic graph.

AI should have one too.

                    v10
                     │
             ┌───────┴───────┐
             │               │
           v11-A           v11-B
             │               │
             │           ┌───┴───┐
             │           │       │
           v12-A       v12-B   v12-C
             │           │
             └─────┬─────┘
                   │
                  v13

But every node carries more than source code.

It carries:

state
capabilities
evidence
environment
lineage

The DAG becomes a history of intelligence states.

28. The Capability Diff Is More Important Than the Code Diff

Suppose:

v20 → v21

and the system reports:

Code changes:
14 files

That's not very useful.

Instead:

CAPABILITY DIFF

Mathematical reasoning       +8.7%
Long-horizon planning        +11.3%
Code generation              +4.1%
Tool reliability             +2.4%
Factuality                   -0.8%
Latency                      +12%
Cost                         +9%
Safety boundary              CHANGED

Now the engineer knows what happened.

This could become one of the most important interfaces in future AI engineering.

29. What Happens When the AI Improves Itself?

Now take the architecture one step further.

Suppose an advanced agent can:

modify its prompts
modify its tools
modify its memory
modify its workflows
write new skills
modify its evaluator
propose model changes

The system can now generate its own commits.

AI v50
  │
  ├── discovers weakness
  │
  ├── proposes change
  │
  ├── creates branch
  │
  ├── modifies itself
  │
  ├── runs evaluations
  │
  ├── generates evidence
  │
  └── submits candidate
             │
             ▼
       Promotion Gate

This is where AI version control becomes infrastructure for recursive self-improvement.

Current research is already demonstrating bounded loops where AI systems modify code, workflows, skills, search strategies, or training recipes and retain changes that score better. The important limitation is that the quality of the loop still depends heavily on how improvement is evaluated.

Version control gives that loop something it desperately needs:

memory of its own evolution.

30. The AGI Problem: Version 100 May Not Understand Version 1

Now imagine a future system:

AGI v1
 ↓
v2
 ↓
v3
 ...
 ↓
v100

At v100, the system's internal architecture may be radically different.

Its capabilities may have expanded.

Its representations may have changed.

Its memory may contain knowledge generated by previous versions.

Its tools may include systems built by earlier versions.

Its evaluator may have evolved.

Now ask:

Is v100 still the same system?

That's no longer just philosophy.

It's a systems problem.

Version control provides the answer operationally:

Identity = lineage + state + provenance

We don't need to decide whether v100 is philosophically "the same mind."

We need to know:

Which version created this?
What did it inherit?
What changed?
What evidence supports the change?
Can we reproduce it?
Can we revert it?

That's what version control is good at.

31. The Most Dangerous Possible Loop

Here's the architecture we should avoid:

             ┌──────────────┐
             │     AGI      │
             └──────┬───────┘
                    │
                modifies
                    │
                    ▼
             ┌──────────────┐
             │     AGI      │
             └──────┬───────┘
                    │
                evaluates
                    │
                    ▼
             ┌──────────────┐
             │     AGI      │
             └──────┬───────┘
                    │
                promotes
                    │
                    └─────────►

The system is:

creator + evaluator + approver + deployer

all at once.

That's a closed loop with no independent reference point.

A better architecture is:

              Self-Improving AI
                      │
                 candidate
                      ▼
                AI-VCS branch
                      │
                      ▼
                 sandbox
                      │
        ┌─────────────┼─────────────┐
        ▼             ▼             ▼
    evaluator A   evaluator B   hidden tests
        │             │             │
        └─────────────┼─────────────┘
                      ▼
               promotion gate
                      │
                 human / policy
                      │
                      ▼
                   release

The AI can propose.

It cannot unilaterally define reality.

32. Immutable Evaluators

This is where the design gets controversial.

If the AI can modify:

model
prompt
memory
tools

should it also be allowed to modify:

evaluator?

There is a strong argument for keeping at least part of the evaluation layer outside the self-modification boundary.

Think of:

AI-controlled
├── model
├── memory
├── tools
├── skills
└── workflows

Externally controlled
├── core safety tests
├── hidden evaluation
├── identity / lineage
├── audit log
└── promotion authority

This creates an asymmetric architecture.

The system can evolve rapidly inside the boundary.

The boundary itself changes slowly.

That gives you a stable reference point.

Recent recursive-self-improvement research specifically highlights the danger of evaluator drift and self-confirming loops, making this separation one of the most important design questions for autonomous improvement.

33. The "Git for AI" Analogy Eventually Breaks

Git is a useful starting point.

But it isn't enough.

Git primarily tracks:

artifacts

AI version control needs to track:

artifacts
+
state
+
behavior
+
capabilities
+
provenance
+
evaluation
+
environment
+
causal lineage

So a better analogy is:

Git + MLflow + database snapshots + observability + CI/CD + provenance + capability testing.

And eventually:

A version-control system for intelligence itself.

34. What an AI Commit Could Look Like

Imagine a future CLI:

aivcs commit \
  --model model_82 \
  --memory memory_4412 \
  --tools tools_73 \
  --knowledge kb_812 \
  --policy policy_91

It produces:

AI COMMIT
────────────────────────────

ID:
a91f42d

PARENT:
7c193e1

MODEL:
model_82

MEMORY:
memory_4412

KNOWLEDGE:
kb_812

TOOLS:
tools_73

POLICY:
policy_91

CAPABILITY DELTA:
reasoning       +4.2%
planning        +8.1%
coding          +0.7%
factuality      -0.4%

REGRESSIONS:
2

EVALUATIONS:
18,492

PROMOTION:
CANARY

AUTHOR:
agent://research-agent-4

That's what AI engineering could eventually look like.

35. And the CLI Could Have diff

aivcs diff v41 v42

Output:

AI DIFF
────────────────────────────

MODEL
  adapter changed

MEMORY
  +18,421
  ~4,218
  -183

TOOLS
  +2
  -1

POLICY
  3 rules changed

CAPABILITIES

  reasoning       ██████████ +11%
  planning        ████████   +8%
  coding          █████      +4%
  factuality      ███████    -2%

COST
  +14%

LATENCY
  +8%

SAFETY
  1 regression

STATUS:
  NOT SAFE TO PROMOTE

That is an interface people could actually use.

36. aivcs rollback

And:

aivcs rollback production --to v41

would restore:

model
prompt
memory
knowledge
tools
policies
runtime

or perhaps:

aivcs rollback production \
  --component memory \
  --to memory_4412

without touching the model.

That level of granularity becomes important as AI systems become more stateful.

37. The Storage Architecture

An AI-VCS would probably need multiple storage layers.

                  AI VERSION CONTROL
                          │
          ┌───────────────┼────────────────┐
          │               │                │
          ▼               ▼                ▼
    Object Store      Metadata DB      Event Log
          │               │                │
          │               │                │
       Models          Lineage          Changes
       Memory          Versions         Events
       Knowledge       Capabilities     Evaluations
       Tools           Policies

The object store holds large immutable artifacts.

The metadata database stores relationships.

The event log records evolution.

A graph layer could represent:

version
   ↓
memory
   ↓
decision
   ↓
tool call
   ↓
outcome

That gives us provenance.

38. The AI Version-Control Data Model

A useful object model could look like:

AICommit
├── id
├── parent_ids
├── artifact_manifest
├── capability_manifest
├── evaluator_manifest
├── environment_manifest
├── evidence
├── author
├── timestamp
└── promotion_status

Where:

ArtifactManifest
├── model
├── prompt
├── memory
├── knowledge
├── tools
├── policies
└── workflow

And:

CapabilityManifest
├── reasoning
├── planning
├── coding
├── research
├── tool_use
├── factuality
├── safety
└── domain_capabilities

This is the kind of schema that makes the idea concrete instead of leaving it as "Git but for AI."

39. The Hardest Problem May Be Semantic Diffing

Hashing tells us:

different

It doesn't tell us:

what became different?

Suppose an agent's memory changes by 20,000 records.

A normal diff is useless.

We need semantic summaries:

Memory Diff

New concepts:
  421

Changed beliefs:
  83

Contradicted facts:
  17

User preferences changed:
  9

High-impact memories:
  3

Likewise for a model update:

Model Diff

Reasoning:
  improved

Tool selection:
  improved

Long-context retrieval:
  degraded

Refusal behavior:
  changed

Mathematical reasoning:
  unchanged

The AI diff must become a semantic explanation of behavioral change.

That's a major research problem in itself.

40. The Ultimate Goal: Reproducible Intelligence

Software engineering spent decades building reproducible systems.

AI needs to do the same.

The ideal future should let an engineer say:

Show me exactly what the AI knew
at 11:42 AM on September 6.

And get:

Model:
M82

Memory:
MEM4412

Knowledge:
KB812

Tools:
T73

Policy:
POL91

Environment:
RUNTIME4

Capability state:
CAP902

Then:

Why did it make this decision?

And receive the causal lineage.

Then:

What changed afterward?

And see the evolution.

Then:

Can we restore that state?

Yes.

That's reproducible intelligence.

41. Why This Matters for AGI and ASI

The AGI discussion often focuses on one question:

How do we make an AI smarter?

There's another question that deserves equal attention:

How do we keep track of what "smarter" actually means as the system changes itself?

If an advanced AI can generate thousands of candidate improvements, the bottleneck may shift.

The challenge isn't necessarily:

Can AI generate another version?

It becomes:

Which version should survive?

And then:

Why?

And:

Can we prove it?

And:

What did we lose?

And:

Can we undo it?

Recursive self-improvement makes version control part of the intelligence architecture.

The faster the system can modify itself, the more valuable its history becomes.

42. The Paradox of Self-Improving Intelligence

Here is the paradox:

The more capable an AI becomes at changing itself, the less useful a simple version number becomes.

At first:

GPT-1
GPT-2
GPT-3

is enough.

Then:

model
+
prompt
+
tools
+
memory

becomes necessary.

Then:

model
+
memory
+
skills
+
knowledge
+
policies
+
environment

becomes necessary.

Eventually:

AI vN

might represent an entire evolving ecosystem.

At that point, version control isn't just tracking software.

It's tracking intellectual state.

43. The Architecture I'd Build

If I were designing an AI-VCS today, I'd start with six primitives.

1. Immutable AI commits

Every behavioral state gets an immutable ID.

2. Content-addressed artifacts

Models, prompts, memory, tools, knowledge and policies are stored immutably.

3. Capability manifests

Every release records measurable capability changes.

4. Semantic diffs

The system explains behavioral differences rather than just file changes.

5. Evaluation lineage

Every promotion records the tests, evaluators, datasets and evidence behind it.

6. Transactional rollback

An AI state can be restored at the whole-system or component level.

Then add:

branches
experiments
canaries
shadow deployments
provenance
causal graphs

And eventually:

self-generated commits

for autonomous systems.

44. The Final Architecture

Put everything together:

                         ┌──────────────────────┐
                         │    AI APPLICATION    │
                         └──────────┬───────────┘
                                    │
                                    ▼
                         ┌──────────────────────┐
                         │   AI RUNTIME         │
                         │                      │
                         │ Model                │
                         │ Memory               │
                         │ Knowledge            │
                         │ Tools                │
                         │ Policies             │
                         │ Skills               │
                         └──────────┬───────────┘
                                    │
                                    ▼
                      ┌──────────────────────────┐
                      │  INTELLIGENCE CONTROL    │
                      │          PLANE            │
                      ├──────────────────────────┤
                      │ Version Registry         │
                      │ State Snapshots          │
                      │ Capability Graph         │
                      │ Semantic Diff            │
                      │ Lineage                  │
                      │ Provenance               │
                      │ Evaluation               │
                      │ Promotion                │
                      │ Rollback                 │
                      └────────────┬─────────────┘
                                   │
                 ┌─────────────────┼─────────────────┐
                 │                 │                 │
                 ▼                 ▼                 ▼
            Object Store      Evaluation Lab     Audit Log
                 │                 │                 │
                 ▼                 ▼                 ▼
              Models            Tests             History
              Memory            Judges             Events
              Knowledge         Verifiers          Decisions
              Tools             Simulations

This is what AI version control could become.

Not Git with an AI logo.

A genuine control plane for evolving intelligence.

45. The Question That Comes Before AGI

People often ask:

"When will we get AGI?"

A more practical engineering question may arrive first:

When will we be able to reliably tell that an AI system has changed?

Not merely that its benchmark score changed.

That its:

  • knowledge changed
  • memory changed
  • capabilities changed
  • behavior changed
  • permissions changed
  • goals changed
  • tools changed
  • reasoning changed
  • weaknesses changed

And when it can modify itself:

Can we prove what changed between one generation of the system and the next?

If we can't answer that, then "AGI version 2" is almost meaningless.

46. The Future May Have git log for Intelligence

Imagine looking at the history of a future autonomous AI:

$ aivcs log

ASI-000042
Improved long-horizon planning
+8.4% planning benchmark
+3.1% task completion
0 safety regressions

ASI-000041
Added theorem-proving skill
+17.2% mathematical reasoning
+2.4% compute cost

ASI-000040
Memory architecture migration
+31% retrieval accuracy
1 rollback

ASI-000039
Tool-use optimization
+9.2% execution success

Then:

$ aivcs show ASI-000042

returns the entire behavioral state.

And:

$ aivcs diff ASI-000041 ASI-000042

shows not merely code changes.

It shows:

What changed in the intelligence.

That is the real promise of AI version control.

47. The Bigger Idea

Git made software history manageable.

Containerization made environments reproducible.

MLOps made models deployable.

Observability made production behavior inspectable.

AI version control could combine those ideas into something new:

A reproducible history of machine intelligence.

And if AGI ever becomes capable of improving itself, that history may become one of the most important pieces of infrastructure around it.

Because the hardest question won't always be:

"Can the AI make a better version of itself?"

It may be:

"How do we know that version is actually better, what exactly changed, and can we go back if we're wrong?"

That's the version-control problem for intelligence.

And unlike a model checkpoint, you can't solve it by saving one more .safetensors file.

You need a history.

A lineage.

A diff.

An evaluator.

A rollback.

And eventually, a way to prove that the intelligence you have today is actually the intelligence you intended to build.

Share:
V
Vishnu Viswanath
Team at BlackBox Learning · Published September 5, 2026
Previous
Your WebSocket Server Didn't Fail. Your Reconnect Strategy Did

Comments (0)

No comments yet. Be the first!