Standing Order Agent / Module 01
Module 01

Intelligence that can change providers without changing the product.

The LLM layer helps with ambiguous product ranking, basket suggestions, explanations, and recovery hints. Structured contracts keep model output advisory and testable.

2provider adapters
5initial task types
1shared evaluation set
0purchase tools
Flow

Provider-neutral orchestration

Intelligence module
Intelligence module
Task policy selects provider, model, prompt, schema, timeout, and fallback. All outputs are normalized and schema-validated before returning to the workflow.
Contract

Stable input and output

interface IntelligencePort {
  generateStructured<TInput, TOutput>(
    request: IntelligenceRequest<TInput>,
    outputSchema: JsonSchema
  ): Promise<IntelligenceResult<TOutput>>;
}

type IntelligenceTask =
  | 'basket.propose'
  | 'product.match-candidates'
  | 'substitution.rank'
  | 'order.explain-changes'
  | 'browser.recovery-hint';
Task policy

Use models only where they add value

TaskModel contributionDeterministic verification
Basket proposalSuggest likely due items from sanitized history featuresUser confirmation, cadence rules, active product refs
Candidate rankingRank a small set of similar retailer productsExact ID, size, availability, approved policy, fresh price
Substitution rankingExplain tradeoffs among already allowed candidatesApproved alternatives and item-level limits
Change explanationTurn reason codes into concise household languageEvery statement traces to structured facts
Recovery hintSuggest how to re-locate a changed page elementNo direct action; reviewed locator and postcondition required
Adapters

OpenAI and Anthropic behind one port

Primary or fallback

OpenAI adapter

Responses API with a configured GPT-5.6 model, structured output, normalized usage, bounded timeout, and task-specific prompt version.

Primary or fallback

Anthropic adapter

Messages API with claude-opus-4-8, equivalent schemas, normalized finish reasons, and the same contract suite.

AI
Provider swap is an evaluation event

Changing the configured model is not only a configuration edit. The candidate-matching, injection, faithfulness, schema-validity, latency, and cost evaluation set must pass again.

Safety

What remains outside the model

Authoritative totals

Prices, fees, quantities, savings, and budget enforcement come from retailer data and deterministic calculation.

Product identity

A generated product reference is never trusted. It must resolve against a fresh retailer candidate and pass product rules.

Purchase authority

Automation mode, approval validity, restricted categories, and final checkout are evaluated outside the LLM.