Skip to content

Deployment Boundaries

Agent can run as an embedded pipeline, a provider-capable CLI, or a fixed offline HTTP v1 application. These are distinct deployment postures. The package owns orchestration evidence; the host owns network trust, provider credentials, workload isolation, durable publication, and multi-tenant state.

Responsibility boundary

flowchart TB
    subgraph host["Deployment-owned controls"]
        gateway["TLS, identity, authorization, request limits"]
        admission["queues, concurrency, deadlines, cancellation"]
        secrets["provider keys and rotation"]
        isolation["filesystem, process, network, and tenant isolation"]
        custody["artifact publication, signing, retention"]
    end

    subgraph package["bijux-canon-agent"]
        interface["Python, CLI, or offline HTTP v1"]
        pipeline["roles and lifecycle controller"]
        artifacts["final_result.json + run_trace.json"]
        interface --> pipeline --> artifacts
    end

    gateway --> interface
    admission --> pipeline
    secrets --> pipeline
    isolation --> package
    artifacts --> custody

Deployment shapes

Shape Provider posture Important boundary
Embedded Python Chosen by the host's composition The caller owns adapter construction, resource cleanup, cancellation, and output publication
CLI Can construct configured provider adapters CLI bootstrap currently requires all registered provider keys even for help, dry-run, replay, or a single-provider run
HTTP v1 Fixed offline simple/extractive execution Request configuration does not select arbitrary providers, roles, models, backends, or filesystem paths

Do not satisfy the CLI key check with committed dummy credentials. Treat it as an availability constraint of that interface and use an appropriately controlled environment.

Artifact publication

The CLI writes result/final_result.json and, for a successful executed run, trace/run_trace.json. The files are separate writes with no manifest, signature, atomic directory publication, or completion marker. Always use a fresh output root, validate both artifacts, confirm the trace path stays below that root, and publish or sign the validated directory as one unit.

Directory input can produce several per-file outcomes while the primary final artifact represents the first success. Batch services must retain the complete per-file success and failure report rather than infer batch success from that primary result.

Production controls

A deployment supplies:

  • TLS, authenticated identities, per-operation authorization, and rate limits;
  • transport-level request byte limits before HTTP body collection;
  • bounded concurrency, queue depth, stage deadlines, cancellation, and retry budgets for document and provider work;
  • least-privilege input, output, log, and telemetry paths;
  • provider secret injection and rotation without recording keys in YAML, prompts, errors, logs, results, or traces;
  • egress policy and isolated execution for untrusted document parsers or custom providers;
  • redaction policy for source text, prompts, model output, paths, and exception detail;
  • durable artifact publication, external integrity protection, backup, retention, and tenant-specific namespaces;
  • monitoring for role failure, veto, retry exhaustion, convergence state, resource exhaustion, trace validation failure, and result/trace mismatch.

Operational acceptance

Test each selected interface independently. For CLI deployments, verify key bootstrap, file and directory behavior, provider failure, partial batch outcomes, and interrupted writes. For HTTP, verify that gateway controls apply before application parsing and that request configuration cannot escape the offline contract. For all shapes, validate lifecycle, reconstruct the result from the trace, and exercise replay without provider access.

The artifact contract gives the complete publication procedure. The security guide describes credential, document, logging, and HTTP risks.