Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.compose.market/llms.txt

Use this file to discover all available pages before exploring further.

MAL plans are plain YAML or JSON. The interpreter accepts parsed objects too, but YAML is easier to read in docs.

References

Saved values use saveAs. Later steps reference them with {{name}} or {{name.path}}.
steps:
  - op: tool
    saveAs: model
    toolName: models_call
    args:
      query: "long context code model"
      prompt: "Return a model recommendation."

  - op: stop
    output: "{{model.output}}"
Reference traversal is intentionally restricted to simple names, dots, and array indexes. It does not run JavaScript.

Branching

steps:
  - op: tool
    saveAs: search
    toolName: search_call
    args:
      query: "latest protocol documentation"

  - op: if
    cond: "search.success == true"
    then:
      - op: stop
        output: "{{search.output}}"
    else:
      - op: stop
        output: "Search failed."

Fanout

steps:
  - op: fanout
    saveAs: branches
    gather: all
    concurrency: 3
    branches:
      - id: docs
        steps:
          - op: delegate
            saveAs: notes
            agentWallet: "0x1111111111111111111111111111111111111111"
            prompt: "Extract documentation notes."
      - id: risks
        steps:
          - op: delegate
            saveAs: notes
            agentWallet: "0x2222222222222222222222222222222222222222"
            prompt: "Extract risk notes."

  - op: synthesize
    saveAs: final
    from: ["branches"]
    model: "gpt-5.5"
    instruction: "Merge the notes. Keep disagreements explicit."

Synthesis Requires A Model

synthesize has no fallback model. The plan must specify model. This keeps coordinator selection explicit and avoids accidental provider routing.