CX · Reference guidecx-platform-agent
PlaygroundDownloadsAboutv0.18.0-pre.1

cx-platform-agent

tools, mcp, mcp-server, a2a, a2a-xap, llm, run, adjudicate

Why reach for it

An agent is a peer, and its messages are ordinary values. cx-platform-agent is the tool and agent-protocol surface: a tool descriptor is projected from a command definition at list time, an MCP request or an A2A message is a CX value shaped to its wire form, and any callable — a def, a closure, a tool behind a transport — composes through one Runnable convention.

The projection is the point: a [?def] that carries an [effects] clause is a command, and its descriptor — name, description, input and output schema, the read-only and destructive annotations — derives from the definition and its documentation when the tools are listed, never from a hand-kept manifest, so a tool cannot say one thing and do another. A feature grammar projects the same way: an observe verb is a read-only tool, an act verb its complement, and two features that share a verb name export two distinct tools.

The protocols compose the substrate this site already documents — JSON-RPC, JSON Schema, the HTTP client — with no new transport: the MCP client builds and reads the initialize, list-tools and call-tool exchanges, the server half answers them from the same projection, and the A2A client shapes messages and tasks and records a task's lifecycle in a hash-chained journal, so its history replays and verifies. run is the algebra over all of it — invoke, batch, pipe, compose, fan out — llm is the first Runnable, and adjudicate turns a review band's pairs into resolution records an agent decided and a later run consumes deterministically.

What it gives you

Eight modules of the platform group, pure CX with no V build: the tool projection, the MCP client and server, A2A and its journal binding, the Runnable algebra, the LLM provider and the adjudicator. Each links to the reference page projected from its own documentation, and their sources keep the x/ path they graduated from.

module import it as where it lives reference
a2a [?lib 'cx-platform/a2a'] Ring 1 · the platform group a2a reference
a2a-xap [?lib 'cx-platform/a2a-xap'] Ring 1 · the platform group a2a-xap reference
adjudicate [?lib 'cx-platform/adjudicate'] Ring 1 · the platform group adjudicate reference
llm [?lib 'cx-platform/llm'] Ring 1 · the platform group llm reference
mcp [?lib 'cx-platform/mcp'] Ring 1 · the platform group mcp reference
mcp-server [?lib 'cx-platform/mcp-server'] Ring 1 · the platform group mcp-server reference
run [?lib 'cx-platform/run'] Ring 1 · the platform group run reference
tools [?lib 'cx-platform/tools'] Ring 1 · the platform group tools reference

Try it

A command definition with an empty [effects] clause and its documentation, projected to a tool descriptor: the summary is the description, the parameter is the input schema, and the empty effect set is inside the read-only set, so the annotations say read-only and not destructive — a command still, because the clause is present.

prog.cx

        [?lib 'cx-platform/tools' as=tools]
[?let [= $src """
[fn-doc name=touch scope=public purity=impure
  [sig '''($x::string) -> string''']
  [summary '''A zero-item-effects command (still a command).''']]
[?def touch scope=public impure [effects] [returns string] ($x::string) [$x]]
"""]
  [$tools:descriptors-of $src]]
      
        $ cx prog.cx
[tool name=touch [description A zero-item-effects command (still a command).] [input-schema {type: object, properties: {x: {type: string}}, required: (x), additionalProperties: false}] [output-schema {type: string}] [annotations read-only=true idempotent=false destructive=false open-world=false] [meta [source sha2-256:d47f9b8bb83bc841fcaf99d88bea54f01e13c5a9ae8d84388c973db367142087] [code computes-as:sha2-256:531a5e15748b3545e0f1d8b38efe1e7d9353b597d9468cd6969a1f38a2e619da] [input-schema-id sha2-256:e83d97d3f70736b8f54f426885f1875873cfed9c61cb88656e81dd8a0c534e61] [output-schema-id sha2-256:00404e686415370f1711c4d7acfa2905444d3cf23cef2e10c47d445ebe690f96] [returns-type string] [requires]]]
      

Fixture tools-004-zero-item-effects-is-a-command in deps/cx-platform-agent/conformance/x/tools.cxd — replayed against this cx when the page was built.

Status

The agent surface ships as a package: its eight modules are bundled into the build from the pin, its specification and corpus travel with it, and its own repository grades the pins, the lint, the corpus and the real-socket tests before the front door moves the pin.

fact as the registry records it
ships as package
status extracted
pinned at 9f57d6abb
builds on cx-core-code, cx-platform-store, cx-platform-xap
built on by nothing pins it yet
bundled modules 8
BUILDS ON THIS REPOSITORY · SHIPS BUILT ON BY cx-core-code cx-platform-store cx-platform-xap cx-platform-agent a2a a2a-xap adjudicate llm mcp mcp-server run tools nothing pins it yet DRAWN FROM registry/repos.cxd's pins= COLUMN AND registry/modules.cxd WHEN THIS PAGE WAS BUILT
Fig. — what cx-platform-agent plugs into: the repositories it builds on (left), the modules it ships (centre), the repositories that build on it (right) · drawn from registry/repos.cxd, deps.cxd and registry/modules.cxd when this page was built