Prerequisites
Before you begin, prepare:- the exact published Praxa package versions used by the tutorial;
- a trusted agent host with explicit tool, approval, timeout, and output policies;
- deployment-specific OAuth or backend-owned provider clients where the selected lane requires them;
- synthetic tenant, subject, prompt, and tool fixtures for positive and adversarial tests;
- an acceptance assertion that proves the selected framework invokes only the intended Praxa lane and produces independently verified evidence.
Choose by responsibility
Shared implementation rules
- Keep model-provider, Praxa, and memory-provider credentials separate.
- Resolve tenant and subject from authenticated application context.
- Preserve tool names and MCP annotations exactly.
- Require approval for consequential operations in the host and at Praxa.
- Persist one idempotency key per logical mutation.
- Inspect returned run, event, receipt, or source status independently of the model’s final text.
Shared acceptance matrix
Test correct scope, wrong scope, revoked credential, cross-tenant identifier, exact retry, changed-body conflict, provider outage, and cleanup. A mocked host test proves adaptation; a live authenticated canary proves the deployed boundary.Troubleshooting
Best practices
- Enable the smallest tool or source set needed for the workflow.
- Require approval for mutations and independently for destructive actions.
- Derive tenant, subject, purpose, and credential from trusted host context.
- Bound tool inputs, output bytes, concurrent calls, retries, and total turn time.
- Verify a run, event, trace, receipt, or source status independently of model prose.
Optimize for production
- Reduce tool definitions and provider sources to the relevant set before each turn.
- Use deterministic filtering and pagination before placing results in model context.
- Cache only versioned, non-sensitive contracts and read-only metadata.
- Measure tool-selection accuracy, approval rate, p50/p95 call latency, context bytes, retries, and verified completion.
Cleanup and next steps
- Revoke disposable delegated grants and remove test host configuration.
- Delete provider fixtures through the provider’s own lifecycle when applicable.
- Disable mutation tools until their negative and approval tests pass again after upgrades.
- Retain only redacted tool, run, trace, and receipt identifiers needed for evaluation.