Repository navigation
First public release of the COIL specification.
COIL (Cognitive Orchestration Interface Language) is a protocol language for how agents interact — with each other and with humans. The runtime executes deterministic control flow; the LLM steps in only where reasoning is needed.
What's in v0.4
Core operators — ACTORS, TOOLS, DEFINE, SET, RECEIVE, THINK, EXECUTE, SEND, WAIT, EXIT. Surface syntax is stable.
Extended operators — IF, REPEAT, EACH (stable); SIGNAL (stable surface, experimental semantics).
Execution model — sequential steps, async launching operators, promise/value lifecycle, WAIT synchronization. Stable base.
Structured output — RESULT microsyntax with TEXT, NUMBER, FLAG, CHOICE, LIST, OBJECT types. Frozen.
Streams — bidirectional sessions via ~name, SIGNAL injection. Core model stable; event form (WAIT ... FROM ~name) experimental.
Expression grammar — comparisons, logical connectives, mandatory parenthesization for mixed AND/OR. Stable.
Templates — text with $-substitutions in GOAL, INPUT, CONTEXT, SEND body, DEFINE, SIGNAL. Stable.
Dialects — 8 keyword sets: ru, en, es, zh, ja, fr, pt-br, de. Identical semantics, different spelling.
COIL-H — tabular projection of COIL scripts. Experimental.
Test suite — 70 conformance tests (valid + invalid) in en-standard dialect.
Normative status markers
Each area carries one of three statuses:
- Stable — current norm. Docs teach it, downstream work relies on it.
- Experimental — accepted idea, syntax or semantics may still change.
- Deferred — recognized as important, not normalized in this cycle.
PDF documentation
Two documents are attached:
tutorial.pdf— getting started, common scenarios, anti-patterns, typical mistakeslang-reference.pdf— full language reference assembled from spec files