An open API service indexing awesome lists of open source software.

https://github.com/mirusser/quack

A tiny semantic protocol for agent coordination.
https://github.com/mirusser/quack

ai-agents protocol

Last synced: 6 days ago
JSON representation

A tiny semantic protocol for agent coordination.

Awesome Lists containing this project

README

          

# ๐Ÿฆ† Quack!

**A tiny semantic protocol for agent coordination.**

> Quack rides inside [A2A](https://google.github.io/A2A/) as an extension.
> Quack speaks in typed envelopes.
> Quack never mutates without proof.
> Quack loudly when something is unsafe.

If an agent cannot express the next step as a clear quack,
maybe it should not do it.

Agents can still use natural language, but every meaningful coordination
step must have a tiny typed **Quack** envelope next to it.

The agent that owns a capability should be the authority on whether that capability is appropriate to use in a given situation.

> **Quack is:**
>
> small ย ยทย  injectable ย ยทย  language-agnostic
> low-level ย ยทย  not married to JSON

## ๐Ÿชถ Verbs

Eleven typed envelopes. Verb reference: [`spec/quack-verbs.md`](spec/quack-verbs.md).

| Verb | Emoji | Kind | What it means |
|------|-------|------|----------------|
| `quack` | ๐Ÿฆ† | announce | "Something happened" |
| `peck` | ๐Ÿค | request | "Please do this" |
| `bob` | ๐Ÿฆข | ack | "Received / approved" |
| `nack` | ๐Ÿฆโ€โฌ› | reject | "Cannot do this" |
| `splash` | ๐Ÿ’ฆ | announce | "Here is the evidence" |
| `egg` | ๐Ÿฅš | request | "This is the plan" |
| `hatch` | ๐Ÿฃ | request | "Approve this plan" |
| `flap` | ๐Ÿชฝ | request | "Execute the approved plan" |
| `perch` | ๐Ÿ•Š๏ธ | announce | "Finished / landed" |
| `honk` | ๐Ÿชฟ | alarm | "Something is wrong" |
| `molt` | ๐Ÿชน | alarm | "Plan no longer valid" |

## ๐Ÿ“ฆ Encodings

Four encodings, one canonical frame. All round-trip through the abstract
Quack Frame model.

| Encoding | Role | Priority |
|----------|------|----------|
| Quack-Text | Humans, injection, logging | **MUST** |
| Quack-HTTP | A2A headers, agent cards | SHOULD |
| Quack-JSON | A2A bodies, tooling | MAY |
| Quack-CBOR | Machines, compact transport | MAY |

Quack does not require agents to speak JSON.
It only asks them to quack clearly.

## ๐Ÿงฉ Where Quack Fits

The agent protocol stack has a gap at the semantic coordination layer. A2A handles
discovery and transport, MCP handles tool access โ€” but nothing standardizes what agents
actually *say* to each other. Quack fills that gap.

| Layer | Existing standard | What it does | What's missing |
|---|---|---|---|
| Discovery | A2A Agent Cards | "What agents exist and what can they do?" | โ€” |
| Transport | A2A (JSON-RPC, gRPC, HTTP) | "How do messages flow between agents?" | โ€” |
| Task Lifecycle | A2A Task model | "Is this task pending, running, done?" | โ€” |
| **Semantic Coordination** | **Nothing standard** | **"What does this message mean?"** | **Quack fills this** |
| Tool Access | MCP | "How does an agent call a tool?" | โ€” |
| Orchestration | LangGraph, CrewAI, etc. | "How do I build multi-agent workflows?" | โ€” |

Quack rides inside A2A as an extension โ€” it adds typed semantic envelopes
(risk-gated, digest-bound, sequence-validated) on top of A2A's transport layer.

## ๐Ÿ” Proof Chain for Mutations

```
๐Ÿ’ฆ SPLASH โ†’ ๐Ÿฅš EGG โ†’ ๐Ÿฃ HATCH โ†’ ๐Ÿฆข BOB โ†’ ๐Ÿชฝ FLAP
(evidence) (plan) (human review) (approval) (execution)
```

Human approval is out-of-band: the gateway emits `bob`/`nack` as a relay.

Delivery rules: **risk gating**, **dst/addressing**, **ttl freshness**.
โ†’ [`spec/quack-0.1.md`](spec/quack-0.1.md)

## ๐Ÿ“„ Specs

| Document | What it covers |
|----------|---------------|
| [`spec/quack-0.1.md`](spec/quack-0.1.md) | Core protocol โ€” frame model, verbs, encodings, delivery rules, A2A integration |
| [`spec/quack-verbs.md`](spec/quack-verbs.md) | Quick-reference verb table |
| [`spec/quack.schema.json`](spec/quack.schema.json) | JSON Schema for all 11 verbs |
| [`spec/quack-mutation-v0.1.md`](spec/quack-mutation-v0.1.md) | A2A mutation profile โ€” state machine, digest rules, conformance fixtures |
| [`spec/quack-sdk-0.1.md`](spec/quack-sdk-0.1.md) | .NET SDK โ€” frame model, sinks, validation, DI, error handling |
| [`spec/quack-sdk-adapters-0.1.md`](spec/quack-sdk-adapters-0.1.md) | .NET SDK โ€” codecs, A2A adapter, ASP.NET middleware, URIs, traces |
| [`spec/quack-sdk-future-0.1.md`](spec/quack-sdk-future-0.1.md) | Future โ€” CLI, profiles, OTel, MCP, signing, multi-language |