Contents
Philosophy
PAREL is a serverless runtime for AI agents. You deploy an agent spec; PAREL handles execution, optional durable state, model dispatch, runtime plugins, channels, policy, observability, and execution control.
# Serverless Agent State
An agent should behave like a cloud object, not a process you have to keep alive. It can run as a short job, as a resumable session, or as a durable agent whose transcript, plugin state, channel routes, costs, and execution timeline stay addressable while its compute sleeps.
Not every agent needs durable state. But when continuity matters, the runtime keeps state across messages, tool calls, approvals, webhooks, disconnects, restarts, and branches.
# Agent-friendly Development
Developing an agent should be friendly to both people and coding agents. agent.yaml is the primary deployment contract: small, textual, diffable, and schema-validatable, and clear enough that one agent can safely edit, validate, and deploy another.
| Principle | Meaning |
|---|---|
| One spec | Model provider, plugins, secret references, channels, guard plugins, and runtime limits are all declared in agent.yaml. |
| Actionable validation errors | parel capabilities doctor checks a spec before you deploy, and API errors carry a stable code, so a person or a coding agent can see exactly what to fix. |
| Scriptable surface | The CLI and the API work the same in CI, in coding-agent loops, and on your machine; the CLI prints JSON with --json or PAREL_JSON=1. |
| Visible runtime | Transcripts, traces, logs, costs, and execution timelines keep deployed behavior inspectable. |
# Kernel Dispatch, Capability Plugins
The kernel should stay small. It schedules turns, dispatches hooks, calls the model provider layer, executes tools through registered capabilities, and records events. Sandbox, memory, tools, security, budget, steering, channels, and system behavior come from plugins.
# Provider-neutral Model Layer
Model providers are a first-class runtime subsystem, not incidental SDK calls inside the agent loop. The spec names the provider explicitly, credentials stay out of the spec, runtime events have one shape for every provider, and the operational contract stays portable. PAREL does not resell model access: agents run on your own provider keys.
# Execution Is a Control Surface
Agent execution should stay inspectable and controllable after deployment. Turns, steps, model calls, tool calls, plugin events, channel events, pauses, approvals, snapshots, branches, and replays form one durable execution timeline. Today that means a trace of every step, a snapshot at the end of every turn, breakpoints, branch and replay from any snapshot, and turn receipts you can look up later.