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 |
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 builtLinks
- github.com/cx-home/cx-platform-agent — the repository
- README — what it is, how to install it, what it pins
-
spec/03-approved— the specification, the only truth -
spec/03-approved/x— the specification, the only truth -
conformance— the conformance corpus, the executable truth -
conformance/x— the conformance corpus, the executable truth