doc/plans/2026-04-08-agent-os-technical-report.md
Date: 2026-04-08
Analyzed upstream: rivet-dev/agent-os at commit 0063cdccd1dcb1c8e211670cd05482d70d26a5c4 (0063cdc), dated 2026-04-06
agent-os is not a competitor to Paperclip's core product. It is an execution substrate: an embedded, VM-like runtime for agents, tools, filesystems, and session orchestration. Paperclip is a control plane: company scoping, task hierarchy, approvals, budgets, activity logs, workspaces, and governance.
The strongest takeaway is not "copy agent-os wholesale." The strongest takeaway is that Paperclip could selectively use its runtime ideas to improve local agent execution safety, reproducibility, and portability while keeping all company/task/governance logic in Paperclip.
My recommendation is:
agentos_local execution adapter or internal runtime experiment.From the repo layout and implementation, agent-os is a mixed TypeScript/Rust system that provides:
AgentOs TypeScript API for creating isolated agent VMsThe repo is substantial already:
packages/, crates/, and registry/packages/, crates/, and registry/The main API lives in packages/core/src/agent-os.ts and exports an AgentOs class with methods such as:
create()createSession()prompt()exec()spawn()snapshotRootFilesystem()This is an execution API, not a coordination API.
The kernel is implemented in Rust under crates/kernel/src/. It models:
That gives agent-os a much stronger isolation story than Paperclip's current "launch a host CLI in a workspace" local adapter approach.
The filesystem design is one of the most reusable ideas. agent-os uses:
This is cleaner than treating every execution workspace as a mutable checkout plus ad hoc cleanup. It enables reproducible starting states and cheap isolation.
The kernel-level permission vocabulary is strong and concrete:
The Rust kernel defaults are deny-oriented, but the high-level JS API currently serializes permissive defaults unless the caller provides a policy. That is an important nuance: the primitive is security-minded, but the product surface is still convenience-first.
agent-os exposes host-side tools via a toolkit abstraction (hostTool, toolKit) and a local RPC bridge. This is a strong pattern because it gives the agent explicit, typed tools rather than ambient shell access to everything on the host.
The session model is more uniform than most agent wrappers. It includes:
This is directly relevant to Paperclip because our adapter layer still normalizes each CLI agent in a fairly bespoke way.
The most relevant current Paperclip surfaces for any future agent-os integration are:
packages/adapter-utils/src/types.ts
detectModel()server/src/services/heartbeat.ts
server/src/services/execution-workspaces.ts
server/src/services/plugin-loader.ts
packages/adapters/codex-local/src/server/execute.ts and peers
agent-os runtime experiment would complement or replace for selected agentsPaperclip's local adapters currently run host CLIs in managed workspaces and rely on adapter-specific behavior plus process-level controls. That is pragmatic, but weakly isolated.
agent-os shows a path toward:
Best use in Paperclip:
agent-os sessionsThis fits Paperclip because it improves execution safety without changing the control-plane model.
Paperclip already has strong execution-workspace concepts, but they are repo/worktree-centric. agent-os adds a stronger "start from known lower layers, write into a disposable upper layer" model.
That could improve:
This is especially interesting for tasks that do not need a full git worktree.
Paperclip has governance at the company/task level:
It has less structure at the runtime capability level. agent-os offers a clear vocabulary that Paperclip could adopt even without adopting the runtime itself:
fs.read, fs.write, fs.mount_sensitivenetwork.fetch, network.http, network.listen, network.dnsThat vocabulary would improve:
Paperclip's plugin system and adapters already have the beginnings of a controlled extension surface. agent-os reinforces the value of exposing capabilities as typed tools rather than raw shell access.
Concrete Paperclip uses:
This aligns well with Paperclip's governance story.
Paperclip's adapter contract already supports execution results, session params, environment tests, skill syncing, quota windows, and optional detectModel(). But much of the per-agent behavior is still adapter-specific.
agent-os suggests a cleaner normalization target:
Paperclip does not need ACP everywhere, but it would benefit from a more formal internal session capability model inspired by this.
One of the best architectural choices in agent-os is that it does not pretend every workload fits the lightweight runtime. It has a sandbox extension for workloads that need a fuller environment.
Paperclip can adopt that philosophy directly:
That is better than forcing all tasks into the heaviest environment up front.
agent-os includes cron/session/workflow style primitives inside the runtime package. Paperclip already has higher-level orchestration concepts:
If Paperclip copied agent-os cron/workflow/queue ideas directly into core, we would likely duplicate orchestration across two layers. That would blur ownership and make debugging harder.
Paperclip should keep orchestration authoritative at the control-plane layer.
agent-os is runtime-first, not company-first. It has no native concepts for:
Those are Paperclip's differentiators. They should not be displaced by runtime abstractions.
Adopting agent-os deeply would add:
This is justified only if we want stronger local isolation or portability. It is not justified as a general refactor.
The permission model is good, but it is low-level. Paperclip would still need to answer:
In other words, agent-os can supply enforcement primitives, not the control policy system itself.
The repo is explicit that some runtimes are planned, partial, or still being adapted. In practice this means:
So the main near-term value is not universal replacement. It is selective use where compatibility is strong.
agentos_local adapterThis is the highest-value experiment.
Goal:
agent-osGood first target:
pi_local or opencode_localWhy not start with Codex:
agent-os's Codex story is present in the registry/docs, but the safest path is to validate the runtime on a less central adapter firstSuccess criteria:
Even without using agent-os, Paperclip should consider standardizing adapter/runtime permissions around a vocabulary like:
This would improve:
Paperclip should evaluate whether some execution workspaces can be backed by:
This is most valuable for:
It is less urgent for full repo editing flows that already benefit from git worktrees.
Paperclip plugins and adapters should continue moving toward explicit typed tools over ad hoc shell access. agent-os confirms that this is the right direction.
This is a good fit for:
Paperclip should not copy agent-os cron/workflow/queue concepts into core orchestration yet.
If we want them later, they must map cleanly onto:
Without that mapping, they would create a second orchestration system inside the product.
agent-os is useful to Paperclip as an execution technology reference, not as a product model.
Paperclip should treat it the same way it treats sandboxes or agent CLIs:
If we do one thing from this report, it should be a narrowly scoped agentos_local experiment plus a design pass on capability-based runtime permissions. Those two ideas have the best upside and the lowest architectural risk.