Skip to main content

Ecosystem YAML reference

The full field reference for a Tessera ecosystem (ecosystem_yaml_v1). See Ecosystems for the conceptual overview and Build an ecosystem for a worked example.

Top level​

FieldTypeRequiredDescription
ecosystem.namestringyesDisplay name.
ecosystem.descriptionstringyesOne or two paragraphs describing the workflow.
ecosystem.versionstringyesSemver, e.g. "1.0".
strategyenumyesorchestrated (DAG), choreography, or quorum.
reportboolnotrue auto-injects report_agent (default behaviour).
quality.challengerboolnotrue auto-injects challenger_agent.
quality.groundingboolnoEnables internal + external grounding checks.
entry_pointagent idyesThe agent the run starts on.
inputslistnoOperator-facing inputs (see below).
memoryobjectnoShared memory config (see below).
agentslistyesAt least one agent (see below).
swarmsmapnoNamed groups of agents.
parallel_swarmslistnoSwarms that may run concurrently.
triggerslistnoe.g. - type: manual.

inputs[]​

FieldTypeDescription
idstringReferenced by agents / the launch form.
typeenumtext, select, or file.
labelstringOperator-facing label.
requiredboolWhether the field must be filled.
defaultanyOptional default value.

memory​

FieldTypeDescription
strategieslist[semantic]; add episodic for chronological recall.
shared_namespaces[].namestringNamespace agents read/write.
shared_namespaces[].writelist[all] or specific agent ids.
shared_namespaces[].readlist[all] or specific agent ids.

agents[]​

FieldTypeRequiredDescription
idstringyessnake_case, starts with a letter.
namestringyesDisplay name.
registry_idstringnoConventionally tessera/{id}.
swarmstringnoSwarm grouping for parallel execution.
depends_onlistnoUpstream agent ids (defines the DAG).
toolslistnoe.g. web_search, memory_read, memory_write, current_time, code_interpreter, generateUI.
tool_budgetmapnoPer-tool call caps, e.g. web_search: 12.
output_kindenumnoanalyst, synthesizer, challenger, reporter, drafter, creative, chat, operator.
output_formatobjectnoTyped artifact (see below).
promptstringyesThe agent's instructions (≥ ~50 chars).

agents[].output_format​

FieldTypeDescription
typeenummarkdown (default), json, yaml, html.
file_extensionstringe.g. .yaml.
save_asstringOutput filename.
template_idstringCross-reference a versioned template to inline into the prompt.
schema_idstringJSON Schema the output must match.

swarms​

swarms:
research: { agents: [a, b], strategy: graph }
synthesis: { agents: [c], strategy: graph }
parallel_swarms: [research, synthesis]

evaluation (optional)​

An opt-in block that adds offline capability evaluation, a regression deploy-gate, and online monitoring. Omit it entirely and the ecosystem is unaffected. See Evaluation and Evaluate an ecosystem.

evaluation:
golden_set: s3://<runs-bucket>/evaluations/<eco>/<version>/cases.jsonl
replicates: 3
run_mode: headless
trajectory: false
metrics:
- id: decision_acc
field: decision
scorer: categorical
cost_weights: { false_approve: 5, false_decline: 1 }
thresholds:
decision_acc: 0.9
gate: warn
online:
enabled: true
baseline_sample_rate: 0.1
always_eval_when: [gate_fired, human_override, { faithfulness_below: 0.8 }]
FieldTypeDescription
golden_setstringS3 path to the versioned cases.jsonl golden set.
replicatesintRuns per case, to form noise bands.
run_modeenumheadless — gates warn (never pause) so unattended runs complete.
trajectoryboolEnable AgentCore trajectory evaluation.
metrics[].idstringMetric name.
metrics[].fieldstringOutput field to score ("*" = all cited claims).
metrics[].scorerenumcategorical, exact_match, numeric_tolerance, set_recall, coverage, citation_resolves, abstention, bedrock_judge.
metrics[].cost_weightsmapOptional asymmetric error weights.
thresholdsmapPer-metric pass threshold.
gateenumblock, warn, or off.
online.enabledboolTurn on async production-run monitoring.
online.baseline_sample_ratenumberFraction of runs sampled for baseline drift.
online.always_eval_whenlistConditions that force an online eval.

Auto-injected agents​

When report: true and quality.challenger: true, the compiler adds report_agent (output_kind: reporter) and challenger_agent (output_kind: challenger). Do not define these in agents[].

Validation rules​

  • Unique snake_case ids starting with a letter; prompt ≥ ~50 chars.
  • depends_on must form a DAG — no cycles, no missing references.
  • Saving compiles the ecosystem; invalid graphs fail the save.
tip

The canonical template and JSON Schema live at app/content/templates/ecosystem_yaml_v1/ in the repository.