Guides

Running Paperclip Agents Through Manifest

Wire Manifest in front of opencode_local so every agent shares one auto-routing config: point them at manifest/auto, inject the provider durably via PAPERCLIP_OPENCODE_PROVIDERS, skip discovery, and force-recreate the server so the cached config reloads. Fallbacks across providers, cheap models on simple work, premium on complex.

Running Paperclip Agents Through Manifest

Manifest is a request-time model router. Instead of pinning each agent to a specific model and tier, you point every agent at a single manifest/auto model name and let Manifest classify the request, pick the cheapest capable model from your provider pool, and fall back across providers when one hits a cap. For a Paperclip operator running tens of agents — each previously hand-assigned to a model tier — this collapses three configs (tier-1, tier-2, tier-3 switcher scripts) into one.

This guide walks through wiring Manifest in front of the opencodelocal adapter: the durable way to inject the provider config (the PAPERCLIPOPENCODEPROVIDERS env var), the per-agent adapterconfig, the discovery-skip step, and the verification — including the boot-cache gotcha — before flipping production agents.

> Updated 2026-07-06 — routing now requires auto. Manifest's Default routing changed after this guide first shipped. It now responds only to the model string auto. Requesting a named model like openai/gpt-4o-mini (or even MiniMax-M3) returns error M101 "no providers" — exactly what stalls a whole fleet the moment a named provider drops out from under it. Every reference below uses manifest/auto: the agent model string, the opencode.json models map, and the smoke test. If you're upgrading an older install, that single change — plus the boot-cache/recreate note in Step 4 — is what un-breaks it.

> Battle-tested context: the working config below was rolled out across a 45-agent Paperclip instance after three Manifest bugs got fixed in late April 2026 (/v1/responses 404, todowrite case sensitivity, and >12KB system-prompt 400s). If you tried Manifest earlier and gave up, the live API should now handle all three.

---

What you actually gain

| Before | After | |---|---| | Manual tier switchers (switch-provider.sh, switch-model.sh) | One model name (manifest/auto) across every agent | | Per-agent model assignment by hand | Manifest's classifier picks per request | | Single-provider lock-in — one weekly cap stalls everything | Fallback chain across OpenAI, Anthropic, Z.AI, etc. | | Flat-rate tier costs | Cheap models on simple work, premium only when needed |

The trade-off is cost visibility, not the cost model itself. Manifest routing is now largely subscription-based rather than purely per-token — the routing view shows the model it picked as "included in subscription" (e.g. MiniMax-M3) rather than metering every token the way early per-token routing did. What you give up is the neat single-line-item predictability of a fixed tier, so watch your first 24 hours on the Manifest dashboard before flipping mission-critical agents. And if a specific worker needs a specific model (high-quality copy from Claude, for instance), auto-routing may not consistently pick it — configure your provider pool deliberately, or pin that agent directly.

---