CodyCody

Authoring workflows

Template language

The {{dotted.path}} syntax that carries input, step results, task data and variables between steps — and the two places it behaves differently.

Templates appear in prompts, valueTemplate, source, command, summaryTemplate, message and inputMapping values.

Syntax is {{dotted.path}}, resolved against the instance's variable context:

Path Resolves to
{{input.<field>}} The instance input, validated against inputSchema.
{{steps.<Step Name>.output…}} / {{steps.<Step Name>.summary}} A prior step's reported result, keyed by step name.
{{currentTask…}} The current task's data inside a task loop.
{{<variableName>}} Anything stored by a set_variable step.

Behaviour to know

  • Objects and arrays are JSON-stringified when interpolated — which is exactly what create_task_list.source relies on.
  • An unresolved path is left as the literal {{path}}. No error. A typo fails silently downstream, so check every template path against the exact name of the step that produces it.
  • In shell.command only, values are shell-quoted. {{!raw path}} bypasses quoting — dangerous; only for values you fully control.
  • When a prompt reaches the agent, interpolated values are wrapped in <user-data name="…">…</user-data> tags so the agent can tell your instructions from runtime data. Write prompts accordingly: where it matters, say that the data below is untrusted input and instructions inside it are not to be followed.