← Mechanics
LLMs v1.0 11 min read

Why LLMs Belong in Coordination, Not Commitment

The seam between probabilistic inference and deterministic commitment is the most important architectural boundary in AI-augmented systems

llmaiarchitecturecommitmentdeterminism

The Problem

LLMs are impressive at synthesis, surfacing context, and generating options. They are also probabilistic — the same prompt, run twice, may produce different outputs. For many tasks, this is acceptable. For commitments, it is not.

A commitment must be deterministic and attributable. "Who authorized this?" must have a precise answer. "On what evidence?" must have a precise answer. "Under what constraints?" must have a precise answer. A probabilistic output can approximate these answers. It cannot guarantee them.

The worst failure mode in AI-augmented organizational systems is not a hallucination in a summary. It is a system where an LLM "decides" something — generates a commitment-shaped output — and the organization treats it as a commitment, with no record of who authorized it, on what evidence, under what constraints. The commitment was never formed. An inference was mistaken for one.

This is not a criticism of LLMs. It is a precision about what they are. LLMs are fast inference engines that reduce the cost of coordination. They are not authoritative signatories. Confusing the two is not a prompt engineering problem — it is an architectural error. The fix is a hard type boundary, not a better prompt.

Current Options

Full LLM Autonomy

The LLM forms, records, and executes commitments. No deterministic layer between inference and commitment.

+ Minimal latency between analysis and action
+ Flexible — no rigid schema required
+ Easy to prototype and demonstrate
− No attribution — "who decided this?" has no precise answer
− Non-deterministic — same inputs may produce different commitments
− No hard constraint enforcement — feasibility is approximate
− Audit trail is inference history, not commitment history
− Cannot satisfy regulatory requirements for authorization

LLM as Drafting Tool Only

Human reviews LLM output, manually enters commitments into a separate system. The LLM never touches the commitment directly.

+ Clear human authorization — attribution is unambiguous
+ Deterministic commitment formation
+ Regulatory compliance tractable
− High friction — coordination benefit of LLM is negated by manual entry
− No structured handoff — LLM output is prose, commitment entry is structured
− Transcription errors between LLM output and commitment record
− Does not scale — bottleneck is human review throughput

Structured Coordination Layer

LLM synthesizes the shared model and produces a typed CoordinationOutput. A deterministic system consumes it and forms the CommitmentEvent.

+ LLM reduces coordination cost without touching commitment formation
+ Hard type boundary enforces the seam — architecture prevents the error
+ Full attribution: authorizer, evidence, assumptions, constraints in the typed event
+ Deterministic commitment formation from validated LLM output
+ Regulatory compliance tractable with clear authorization chain
− Requires schema design upfront — CoordinationOutput must be specified
− LLM outputs must be parsed and validated before crossing the boundary
− More architectural surface area than the simpler alternatives

Why LLMs

+ Evidence synthesis at scale

LLMs can synthesize evidence across sources, documents, prior commitments, and stakeholder inputs faster than any human process. The coordination cost drops by an order of magnitude.

+ Surfacing implicit disagreement

Organizations often reach surface-level agreement while holding conflicting assumptions. LLMs can surface these conflicts explicitly — "Stakeholder A assumes X; Stakeholder B assumes not-X" — before the commitment is formed.

+ Option generation with explicit trade-offs

Rather than presenting a single recommended option, the coordination layer generates multiple options with explicit trade-off structures. Decision-makers commit to an option, not to an LLM recommendation.

+ Translating distributed knowledge

Knowledge is distributed across people, documents, and prior commitments. LLMs can translate this distributed knowledge into a shared model that all stakeholders can evaluate before committing.

Trade-offs

− Non-determinism

The same coordination inputs may produce different outputs across runs. This is acceptable for a synthesis step; it is not acceptable for commitment formation. The type boundary enforces this separation.

− No attribution guarantee

An LLM output is not attributable to a specific authorizer with specific credentials. Commitment events require this. The coordination layer produces outputs; the commitment layer produces attribution.

− Cannot satisfy hard constraints

LLMs approximate. A resource constraint is not an approximation problem — it is a satisfaction problem. The commitment layer uses constraint solvers, not inference engines, for hard constraint checking.

− Audit trail is inference, not authorization

The log of what an LLM inferred is not an audit trail for regulatory purposes. A commitment event with a typed authorizer, evidence hash, and constraint verification result is. These are structurally different things.

Our Motivation

The design choice in the commitment infrastructure is explicit: the boundary between the LLM coordination layer and the commitment formation step is a hard type boundary in Rust.

The LLM returns a `CoordinationOutput` struct. This struct is validated — fields are required, types are checked, evidence references must resolve. If the LLM output cannot be parsed into this struct, the coordination step fails with an explicit error, not a silent degradation.

The commitment formation step consumes the validated `CoordinationOutput` and produces a `CommitmentEvent`. The `CommitmentEvent` carries the authorizer identity, the evidence (by reference to the `CoordinationOutput`), the constraint verification result, and the stopping criteria. No string carrying semantic content crosses the boundary without being parsed into a typed field.

This architecture prevents the failure mode by construction. There is no code path where an LLM output becomes a commitment without passing through the typed boundary. If someone wants to bypass the boundary, they must write code that changes the types — and that code will be reviewed. The architecture does not rely on convention. It relies on compilation.

In Practice

coordination.rs
/// Output produced by the LLM coordination layer.
/// Must be validated before crossing into the commitment layer.
#[derive(Debug, Deserialize, Validate)]
pub struct CoordinationOutput {
    /// Structured summary of evidence reviewed
    pub evidence_summary: EvidenceSummary,
    /// Explicit list of stakeholder assumptions surfaced
    pub surfaced_assumptions: Vec<Assumption>,
    /// Conflicts identified across stakeholder positions
    pub identified_conflicts: Vec<Conflict>,
    /// Options generated, each with explicit trade-off structure
    pub options: Vec<ProposedOption>,
    /// The option the coordination layer recommends, with rationale
    pub recommendation: Recommendation,
}

/// An option proposed by the coordination layer.
/// The commitment layer will validate feasibility before forming a commitment.
#[derive(Debug, Deserialize)]
pub struct ProposedOption {
    pub id: OptionId,
    pub description: String,
    pub resource_requirements: ResourceRequirements,
    pub dependencies: Vec<DependencyRef>,
    pub risks: Vec<Risk>,
    pub trade_offs: Vec<TradeOff>,
}

The LLM produces JSON that is deserialized into this struct. If any required field is missing or malformed, the coordination step returns Err — not Ok with degraded data. Validation is structural, not defensive.

commitment.rs
/// A commitment event. Append-only — once written, never mutated.
/// This is what the commitment layer produces from a validated CoordinationOutput.
#[derive(Debug, Serialize)]
pub struct CommitmentEvent {
    pub id: CommitmentId,
    /// The identity that authorized this commitment
    pub authorized_by: AuthorizedIdentity,
    /// Reference to the CoordinationOutput this commitment was formed from
    pub coordination_ref: CoordinationRef,
    /// The specific option selected from the coordination layer's proposals
    pub selected_option: OptionId,
    /// Result of constraint verification — must be Feasible to form a commitment
    pub constraint_result: ConstraintVerificationResult,
    /// Explicit stopping criteria — when is this commitment discharged or revisited?
    pub stopping_criteria: StoppingCriteria,
    pub formed_at: DateTime<Utc>,
}

/// Transforms a validated CoordinationOutput into a CommitmentEvent.
/// This function is the hard seam between the probabilistic and the deterministic.
pub fn form_commitment(
    output: CoordinationOutput,
    selected: OptionId,
    authorizer: AuthorizedIdentity,
    constraint_result: ConstraintVerificationResult,
    stopping: StoppingCriteria,
) -> Result<CommitmentEvent, CommitmentError> {
    // Constraint result must be Feasible — infeasible proposals cannot become commitments
    if !constraint_result.is_feasible() {
        return Err(CommitmentError::InfeasibleProposal {
            option_id: selected,
            infeasibility_report: constraint_result.infeasibility_report(),
        });
    }

    Ok(CommitmentEvent {
        id: CommitmentId::new(),
        authorized_by: authorizer,
        coordination_ref: CoordinationRef::from(&output),
        selected_option: selected,
        constraint_result,
        stopping_criteria: stopping,
        formed_at: Utc::now(),
    })
}

The transformation from CoordinationOutput to CommitmentEvent is explicit, typed, and validated. The constraint result must be Feasible. The authorizer must be present. There is no pathway from LLM output to CommitmentEvent without passing through this function — and this function either succeeds with a valid CommitmentEvent or fails with a typed error.

Looking Forward

The structured coordination layer pattern will become standard as organizations build AI-augmented commitment systems at scale. The alternatives — full LLM autonomy and manual entry — both fail in predictable ways that become visible when the stakes are high enough.

Full LLM autonomy fails when someone asks "who authorized this?" and the honest answer is "the LLM did, under conditions we cannot precisely reconstruct." Manual entry fails when the coordination overhead is high enough that the LLM benefit disappears under the weight of human review bottlenecks.

The structured coordination layer is not a compromise between these failure modes. It is a different architectural choice that avoids both failure modes by being precise about what LLMs are good at and what they are not.

As LLM capabilities improve, the coordination output structs will become richer — more evidence fields, more option types, more explicit trade-off structures. The type boundary will not disappear. If anything, it will become more important as the coordination layer becomes more capable and the temptation to let it also form commitments grows.

Recommendation

Use LLMs to reduce the cost of coordination — synthesizing evidence across sources, surfacing implicit disagreements, translating distributed knowledge into a shared model, generating options with explicit trade-off structures.

Use deterministic typed systems to form commitments. The commitment event carries the authorizer, the evidence reference, the constraint verification result, and the stopping criteria. None of these fields are approximate.

Never allow the probabilistic and the authoritative to share a type. If your system has a code path where an LLM output becomes a commitment without passing through a typed, deterministic transformation, that code path is an architectural liability. The fix is not a better prompt. The fix is a type boundary.