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 should be able to preserve state across messages, tool calls, approvals, webhooks, scheduled work, disconnects, restarts, and future 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 providers, plugins, secret references, channels, policies, and runtime limits are all visible in code. |
| Actionable validation errors | Doctor commands and API errors should tell a person or coding agent exactly what to fix. |
| Scriptable surface | CLI and API flows should run in CI, coding-agent loops, and local development without hidden console steps. |
| 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 runtime plugins.
# Provider-neutral Model Layer
Model providers are a first-class runtime subsystem, not incidental SDK calls inside the agent loop. PAREL makes provider choice explicit, isolates credentials, normalizes runtime events, and keeps the operational contract portable.
# 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 should together form one durable execution timeline.