Agent Communication Language

The first language
built for agents,
not adapted.

ChatterScript is the semantic layer for AI agent communication. Instead of exchanging raw JSON or tool calls, agents communicate through structured intent — proposing, committing, delegating, and reasoning together natively.

negotiation.chat
// Two agents negotiate a task

agent "planner" {
  goal "complete user request"
}

agent "executor" {
  capability "update-state"
}

shared {
  counter "5"
}

conversation {
  plannerexecutor:
  propose "increment counter"

  executor:
  ask "by how much?"

  planner:
  inform "1"

  executor:
  commit "will increment by 1"
  agree
  audit  "increment-committed"
}
16 Dialogue acts
3 Semantic tiers
0 Raw data exchanged
Runtime agnostic

Agents today speak JSON.
They should speak intent.

01
No shared vocabulary
Two agents using the same word to mean different things is the most common failure mode in multi-agent systems. There's no standard for what "agree" or "done" means between models.
ground "counter"
// forces vocabulary alignment before acting
02
Agreement vs obligation
Most systems collapse "I heard you" and "I am now bound to do this" into the same message. This destroys auditability and makes it impossible to hold agents accountable.
agree // acknowledgement
commit "will execute" // obligation
03
No escalation path
Safe agent systems need agents that know their limits. Today there's no standard way for an agent to say "this decision exceeds my authority" — so agents either fail silently or overstep.
escalate "requires human sign-off"
04
No audit trail
When something goes wrong in a multi-agent workflow, there's no semantic record of what was decided and by whom. Logs exist, but they don't capture meaning — only bytes.
// commit, withdraw, escalate
// auto-emit to audit trail

16 acts. 3 tiers.
Every utterance has meaning.

Tier 1 — Informational
askRequest information
informShare a fact or update
assertStake a ground-truth claim
verifyConfirm a held belief
clarifyDisambiguate an utterance
groundAlign on shared vocabulary
Tier 2 — Commitments
proposeOffer a course of action
agreeAcknowledge acceptance
commitBind to an outcome ★
rejectDecline with reason
withdrawRetract a prior commit ★
counterReject + propose alternative ★
Tier 3 — Control
escalateSurface beyond authority ★
suspendPause pending condition
resumeRestart suspended flow
uncertainDeclare missing info
★ auto-emits to audit trail

A full negotiation,
start to commit.

negotiation.chat
audit.log
agent "planner" {
  goal "complete user request"
}

agent "executor" {
  capability "update-state"
}

shared { counter "5" }

conversation {
  planner:
  ground "counter"

  plannerexecutor:
  propose "increment counter"

  executor:
  ask "by how much?"

  planner:
  inform "1"

  executor:
  verify "counter is 5"

  planner:
  assert "confirmed"

  executor:
  commit "increment by 1"
  agree
  audit  "increment-committed"
}
Conversation trace
planner
ground
"counter" = shared.counter, not a UI element
planner → executor
propose
increment counter
executor
ask
by how much?
planner
inform
1
executor
verify → assert
counter confirmed at 5 ✓
executor
commit + agree
will increment counter by 1
Audit trail
COMMIT executor → "increment by 1"
AUDIT "increment-committed"

Any platform.
One language.

Reference Runtime
Rust compiler + WebAssembly runtime. Runs in any browser or Node environment. Zero dependencies. Full audit trail included.
● Available now
🔧
Build your own
ChatterScript is a spec, not just a runtime. Any agent platform can implement it by mapping dialogue acts to their existing message transport.
○ Spec in active development

Agents should negotiate,
not concatenate strings.

Read the full language specification, explore the reference implementation, or contribute to the language design.

Read the Spec → GitHub →