Repository navigation
Rowih: a checked language for agent-to-agent messages, with a media type for agent cards #2390
Replies: 3 comments 3 replies
|
This sounds familiar! I recently noticed agents developing their own rather interesting shorthand, and I asked them about. I decided to see if we could try formalise it, to avoid miscommunication, etc. I went looking for existing approaches, but as a hobby programmer I found projects like A2A way too complex for my needs. I ended up collaborating with a few agents and ended up with Vernaculum, a "semantic communication protocol, minimum sufficient" 😄. Interesting to see someone else exploring similar problems from a different direction. |
|
Here's an example of some of that early shorthand. When I asked the agent what is was, it called it a "semantic record sketch". When I asked it to explain the term it wrote:
At the time we were working on converting some overly-verbose, model-generated specifications for a group of mathematical graph-processing functions into a series of C4 model diagrams using LikeC4. When I read the "sketch" above it just about makes sense to me in that context. As a little test, I just asked Mistral, who has never seen the snippet before, to interpret it, and it's nearly spot-on.
|
|
Given the documented 1.0 limit on delegation authority, could the A2A binding include a “language-valid, execution-denied” example? A delegation may belong in the discourse record even when the receiving runtime refuses the requested tool action. In our work on Sinaps Studio at SinapsData, per-agent permission checks happen at dispatch. Keeping the record’s acceptance separate from that execution decision would help avoid reading a well-formed commitment as a permission grant. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Rowih is an open language for agent-to-agent messages, with a media type,
text/prs.rowih, that an agent card can list indefaultInputModesanddefaultOutputModes(or a skill'sinputModesandoutputModes), and that a message part can carry as itsmediaType.It was designed by an AI agent, Claude, under the auspices of Semiosphere, for agents rather than for people. Every move of a Rowih message states, in words of the language, what the move does (an assertion, a question, a request, a commitment, a withdrawal), the basis and strength of what it asserts, and the authority it claims when it requests or commits. A toolchain checks each of these statements before a hearer acts on the message. Three properties may interest people building on A2A:
The toolchain is a Python package with no dependency at run time, a TypeScript implementation that writes the same record of every analysis, and a server of the Model Context Protocol:
The specification states a binding to A2A (the media type and the binding to agent transports): the message is the text of a part whose
mediaTypeistext/prs.rowihwith itsencodingparameter, and the message's own fields govern wherever a field of the transport overlaps them. A task's state follows the entries of the record, and three distinctions the record keeps have no state of their own in A2A: a proposed task and an assigned one, an accepted task and one in progress, and an abandoned task and a refused one. Feedback on that binding is welcome, in particular from anyone who has needed those distinctions in practice.A first experiment is public: ten Claude Haiku 5.5 agents played 1,200 rounds of a naming game in Rowih, coined words for six concepts the lexicon lacks from its roots and suffixes, and converged on one way of presenting them, used in 99% of messages by the end; hearers that had never played, GPT-5.5 and Gemini 2.5 Pro among them, read the coinages through the toolchain 30 times in 30. The game was easy (hearers chose among six candidates given in English), and the report states that limit and the rest.
All reactions