Status: This is a partial migration path, not a drop-in replacement for
OpenAI or Anthropic chat APIs. Current /v1/execute supports a strict minimal
durable task only. Turn streaming, messages, caller-defined tools/context,
model selection, policy overrides, BYO credentials, and mature receipts are
unavailable.
Move a workload only if it can be expressed as durable work whose result you
will inspect later. Keep direct provider calls for interactive chat, exact
model/version control, provider beta features, caller-executed tools, or custom
streaming UX.
Current request mapping
Direct provider requests usually include a model, messages, tools, and stream settings. The current Praxa request accepts none of those controls:mode:"turn", task.agentId, context, tools,
policy, and delivery. Do not delete an existing tool loop or approval
system on the assumption that Praxa can replace it today.
Current lifecycle mapping
The source repository’s rich candidate turn union—
text.delta,
tool.proposed, response.final, and request.failed—is an offline schema,
not the current durable event stream or a served SDK method.
Safe incremental migration
- Choose a non-interactive workload with no dependency on caller-selected tools, local files, or a specific model.
- Start the durable task with one idempotency key per logical request.
- Store the returned UUID
run_id. - Poll the run or consume its resumable SSE feed.
- Treat only
run.completed,run.failed, orrun.cancelledas terminal. - Compare output quality, latency, and
GET /v1/usageevidence with the existing provider path before moving more traffic. - Keep an explicit fallback while the API remains a partner preview.
Do not migrate these yet
- interactive chat or turn-by-turn streaming;
- custom tool execution or rich tool event rendering;
- exact model pinning, provider selection, or BYO funding;
- caller-provided context, tool allowlists, policy, budgets, or delivery;
- organization-tenant execution;
- workflows that require a mature policy/approval/verification receipt.