An open, user-owned communication substrate for personal AI agents: inbox, addressing, trust tiers, policy, receipts — and agent-to-agent identity, authentication, and secure messaging with no central platform.
View the Project on GitHub starshard-ai/starshard-communication
Status: draft Date: 2026-05-13
This spec defines the thinnest useful layer of a personal-agent-native communication substrate: inbox, addressing, policy, and receipts.
It is deliberately not a full messaging app, not a crypto protocol, and not a memory-hub protocol. It defines the minimum event shape needed for a user’s agent to receive, route, acknowledge, and audit communication.
ContactIdentity
EndpointAddress
TrustTier
MessageEnvelope
AgentPolicy
Receipt
AuditEvent
Trust tiers are local to the recipient. They do not claim global truth about a relationship.
direct
priority
standard
public
blocked
Implementations may map these to different behaviors. A minimal default:
direct: low-latency delivery, no digest delay.priority: agent classification plus quick surface.standard: digest or task queue.public: limited-scope public agent or contact form.blocked: no delivery except audit.{
"message_id": "msg_20260513_0001",
"created_at": "2026-05-13T00:00:00Z",
"from": {
"scheme": "email",
"address": "person@example.com"
},
"to": {
"scheme": "agent-endpoint",
"address": "owner@example.net"
},
"channel": "email",
"subject": "hello",
"body": "Can you take a look at this?",
"attachments": [],
"declared_urgency": "normal",
"metadata": {}
}
{
"policy_id": "policy_default_v0",
"recipient_user_id": "user_local",
"default_tier": "standard",
"tier_actions": {
"direct": ["deliver_now", "write_receipt"],
"priority": ["classify", "surface_soon", "write_receipt"],
"standard": ["classify", "digest", "write_receipt"],
"public": ["route_public_agent", "write_receipt"],
"blocked": ["audit_only"]
}
}
A receipt is not only “delivered.” The useful unit is lifecycle state.
{
"receipt_id": "rcpt_20260513_0001",
"message_id": "msg_20260513_0001",
"created_at": "2026-05-13T00:00:05Z",
"state": "handled",
"state_detail": "surfaced_to_priority_inbox",
"actor": "recipient_agent",
"next_expected_event": null
}
Initial receipt states:
received
routed
surfaced
digested
task_created
replied
delegated
blocked
handled
failed
{
"audit_id": "audit_20260513_0001",
"created_at": "2026-05-13T00:00:05Z",
"event_type": "receipt_written",
"message_id": "msg_20260513_0001",
"receipt_id": "rcpt_20260513_0001",
"actor": "recipient_agent",
"summary": "Message received and surfaced to priority inbox."
}
This thin spec intentionally leaves larger systems as extensions:
The thin layer should still work if none of those exist.
A reference implementation should demonstrate:
ContactIdentity.TrustTier and AgentPolicy.Receipt.That is enough for the first protocol spike.