System design

The kernel stays deterministic; apart from kernel system calls, every other function evolves autonomously during use.

Conventional OS vs Agent OS

The job of an operating system is to allocate and schedule resources. Change the set of resources and the system changes generation.

  • A conventional OS schedules machine resources; an agent OS schedules model inference, the context window, tools, memory, and user attention.
  • Apps on a conventional OS are maintained by developers; apps on an agent OS are maintained by AI. The reliability of autonomous evolution is the core problem.

Overall architecture

The system has four layers: desktop, apps, kernel, and model and storage.

  • All capabilities come from apps.
  • Every tool call goes through the kernel: load the app, decide permissions, execute, record.
Mechanism 1

Autonomous tasks

Delegated in a conversation, or triggered by time; each run is a complete session, carried out by two agents in conversation.

This week's experiments Field research

Turn these three sets of results under experiments/ into a weekly report, one chart per set, with the charts and the text written into the project folder.

Running12sWaiting for input or approval34sRunning48sProcessed3m 06s

Current: List directory · experimentsCurrent: Read · experiments/run_3.csvList directory · Read ×3 · Create task

List directoryexperiments Readrun_1.csvrun_2.csvrun_3.csv

The columns line up across the three sets. The rest will take a while to run, so I am handing it to a separate run.

Create taskSummarize the three sets of results under experiments/ — run_1.csv, run_2.csv, run_3.csv — into a weekly report
New taskWaiting for you New taskGranted
Receipt · Weekly report

The weekly report and the three figures are in the project folder: the mean is higher than last week, and run_2 has a larger variance.

New task
Summarize the three sets of results under experiments/ into a weekly report: one line chart per set exported as PNG, written into the project folder together with the text.
1Allow once2This session3DenyEdit
Turn these three sets of results under experiments/ into a weekly report, one chart per set, with the charts and the text written into the project folder.Message CLAgent…
Normal
📈Weekly reportField research
ImmediatelyRunningRun nowDelete
From CLAgent

Summarize the three sets of results under experiments/ into a weekly report: one line chart per set exported as PNG, written into the project folder together with the text.

Running1m 18sProcessed2m 41s

Current: Write file · weekly-report.mdRead ×3 · Python code · Write file ×4

Readrun_1.csvrun_2.csvPython codeAggregate and plotWrite fileweekly-report.md

All three sets are aggregated: the mean is higher than last week, and run_2 has a noticeably larger variance. The weekly report and the three PNGs have been written to the project folder.

Message CLAgent…
Trigger ImmediatelyDelegated on the spot in a conversation; due the moment it is created OnceA given date and time, once RepeatsEvery minute to every week ManualNo trigger; waits for the user to start it
Create Trigger = new sessionOpens a new session in the owning project; the first message is the task text verbatim, and the source is marked as a task; single instance: if the previous run has not finished, this due time is skipped
Run Two agents in conversationTwo agents take turns speaking within one session, up to six rounds ExecutionWorks turn by turn; every change comes after a permission decisionStands in for the userRead-only tools only: read files, list directories, search contents Say the next lineEndAsk the user
End ReceiptReturns to the tool call that delegated it; if it did not finish, it carries an interrupted marker RecordFiled in the task's own folder, no different from an ordinary session
The receipt lands back in the conversation that started it, and the delegation ends
Mechanism 2

Autonomous memory updates

A memory is a record: a name, a one-line description, and an optional body. The index stays loaded, the body is fetched on demand, and every write is logged.

Where the data lives Field researchMemory

From now on, when an experiment finishes, create a folder named after that day's date first, then put the results in it.

Running4sWaiting for input or approval11sRunning16sProcessed17s

Current: Read memory · experiment-layoutRead memory · Save memory

Read memoryexperiment-layout

The entry I hold left out the step "create that day's folder first"; I have corrected it.

Save memoryExperiment data is archived by date under experiments/; each run creates that day's folder first
memory writing permissionWaiting for you memory writing permissionGranted

Corrected. The entry now says archived by date; the old wording is gone.

memory writing permission
Experiment data is archived by date under experiments/; each run creates that day's folder first
1Allow once2This session3Deny
From now on, when an experiment finishes, create a folder named after that day's date first, then put the results in it.Message CLAgent…
Normal

Memory

Let CLAgent remember preferences, project background and frequently used locations

GlobalProjectsSession New memory

Experiment data goes under experiments/

Experiment data is archived by date under experiments/; each run creates that day's folder first

v23 days agoJust now

The paper revision is due on March 1

v22 days ago

Use the ACM citation format throughout the paper

Last week

Activity

Today

Agent Normal Updated global memory, experiment data is archived by date under experiments/, and each run starts by creating that day's folder
Experiment data goes under experiments/
+Experiment data is archived by date under experiments/; each run creates that day's folder first

Last week

You Normal Added global memory, use the ACM citation format throughout the paper
Write paths Saved during a sessionThe user asks it to remember, or it judges the fact worth keeping Post-turn reviewTwo judgements: whether there are new facts, and whether old entries still hold AddDeleteMergeEdit No direct write: it creates a task first, and the task run does the writing Edited on the memory pageThe user adds, deletes and edits directly
Permission decision
Storage Memory storeEvery entry carries a record: who wrote it, which session it came from, the permission tier at the time, and who allowed it GlobalFollows the userProjectsFollows the projectSessionLives only in this one session
Retrieval The index loads with the sessionOne line per entry; when the budget is exceeded, descriptions are omitted first and names are always kept The body is fetched on demandReads the current file on disk by name and returns it with a revision marker; an overwrite must match what was last read
Mechanism 3

Autonomous app updates

Problems are found by Call statistics and Post-turn review; after adoption the rewrite happens only inside a task run, and the replacement is made only once the dry run on a copy passes.

Chart export Field research Autonomous updates1

Export this line chart as PNG and put it in charts/.

Running9sProcessed26s

Current: Export figure · charts/fig3.pngExport figure ×2 · 1 error

Export figure charts/fig3.png charts/fig3.png
New taskWaiting for you New taskGranted

The first export had a transparent background; I redid it another way and wrote it to charts/fig3.png.

New task
This task was created automatically after the evolution observation was adopted. Target: package drawing. What was observed: the export step fails with the same error again and again. Evidence: 12 calls / 7 errors (14-day window). What to do: read the current state first, then change the export to validate before writing to disk.
1Allow once2This session3DenyEdit
Export this line chart as PNG and put it in charts/.Message CLAgent…
Normal
🔧Update package drawingField research
ImmediatelyRunningRun nowDelete
From CLAgent

This task was created automatically after the evolution observation was adopted. Target: package drawing. What to do: read the current state first, then change the export to validate before writing to disk.

Running41sProcessed1m 52s

Current: propose_package · drawingread_package_file · read_friction_ledger · propose_package

read_package_filedrawing/export.pyread_friction_ledgerdrawingpropose_packagedrawing
package changeGranted

Export now validates before writing to disk. The whole tree is dry-run on a copy first and is replaced only after validation and startup checks pass — Drawing is now at generation 3.

Message CLAgent…
Detection Call statisticsRecords only call counts and errors, kept for fourteen days; regressions and repeated failures are decided by arithmetic alone Post-turn reviewThe agent rereads the session that just ended and accepts only two kinds: the app made the user take a detour, and a missing capability
Deciding what to adopt Observation logAn observation is recorded first, with nothing acted on; it is adopted as soon as any one criterion holds ReviewTwo independent runs point at the same spotStatisticsCounts and error rates establish it directlyBoth at onceThe review finds a problem and the statistics show real errors Discarded if not adopted within fourteen days Decline listWhat the user has said not to raise again is barred from adoption, and this does not expire
Rewrite · inside the task run Update taskAdoption creates a task, once and only once; the run inherits the conversation in which the problem was found. The tools that rewrite an app are available only inside that run ProposalDry run on a copyvalidation and startup checksReplaceThe old version goes into the library, counted as one generation
Presentation Autonomous updatesA derived view: it keeps a single read position, and what changed is shown here
An app that has changed version stays under observation; the next round counts it as usual