Graduate NFR into FR: A Plain Self-Improving Agent
A self-improving agent does not have to edit itself. Log each judgment, scan for repeats, and turn a judgment made three times into a script, with a human approving.
Several times in a row, North blocked a stale to-do snapshot by itself. One time, it added a line to the decision log: “FR candidate: host omits these facts when the snapshot date is not today.”
It was telling me that this judgment no longer needed to go to it every day.
The version from the talk
The talk by 「大大帶我飛」 covered self-improving agents. It cited an OpenAI article. The key idea is to turn failures in production into engineering tasks. You can trace each task to a cause, evaluate it, and hand it to an agent to improve:
My plain version
I did not build an improvement agent. I used a simpler method:
- The key is repetition. A judgment made once stays with the LLM. A judgment made three times is a rule.
- The agent can propose, but it never edits its own spec. A human changes the spec.
- The decision log comes from How Do You Know the Agent Did Well?. The whole flow is the meta loop from Three Loops in an Agent System.
Why this counts as getting better
A self-improving agent does not have to edit itself. When a repeated judgment becomes a script, the agent has one less judgment path. It gets cheaper, and when it breaks, the cause is easier to find.
This is the second half of Agent Design Is the FR/NFR Split. Split FR and NFR first, then let each NFR graduate one by one. The stale snapshot rule graduated from the judgment in Context: What the Agent Sees This Step.
An agent that becomes more fixed as it runs is an agent that really gets better.
References:
- A talk by 「大大帶我飛」
- OpenAI, Building self-improving tax agents with Codex, 2026
Related: see where the split starts in Agent Design Is the FR/NFR Split, where the stale snapshot judgment came from in Context: What the Agent Sees This Step, or go back to the series overview: Design an Agent.