Agentic Behaviours.
By Design.

Caller
Any Caller
app · agent · IoT · human
Command
BEST Endpoint
Your Implementation
/.well-known/best
Event
Consumer
Any Agent
LLM · app · UI · agent

Expose a manifest. Any AI agent discovers your service, reads what commands it accepts and what events it produces, and starts interacting — no custom integration required.

spec/v0.9.1

Capabilities

Built for agent interoperability

Expose what your service does — the operations it accepts and the facts it produces — in a standard form any caller can discover and use. Over HTTP or MCP.

🌐

Discoverable by Default

Expose /.well-known/best and your service becomes immediately usable by any agent or LLM client — no custom integration, no bespoke connector, no onboarding docs. Capabilities, schemas, and transport bindings are all self-describing.

Behaviour, Not Resources

BEST is not REST. There are no resources to manipulate. Callers express named intents — commands like SignContract or SubmitOrder — and observe the facts that result. The domain language lives in the protocol, not buried in status-field patches.

📡

Observable Event Log

Every BEST service exposes a queryable event log — filterable by type, source, time range, or correlation ID. Correlate results back to the command that caused them, build projections, or feed an AI agent with factual history instead of synthetic prompts.

🔍

Queries

Read the current state of a service without sending a command. GET /queries returns the query catalogue — each query is self-documenting with a JSON Schema for its parameters and response. Reads and writes are cleanly separated at the protocol level.

🤖

Instant LLM Integration

Implement BEST and get MCP for free. Point best-mcp at any BEST-compliant endpoint and every LLM client — Copilot, Claude, ChatGPT — immediately discovers commands, reads state, and sends requests. No custom tool definitions required.

🔁

Live Events & History

Subscribe to events the moment they are produced — or query what already happened. GET /events/stream opens a live SSE connection for real-time results. GET /events queries the historical log. Together they give you the complete picture, past and present.

See it in action

Discovery manifest

Every BEST endpoint exposes a /.well-known/best manifest. Consumers discover agents, capabilities, and transports in a single request.

/.well-known/best
{
  "best": {
    "version": "0.9.1",
    "services": {
      "io.best.agents": {
        "version": "0.9.1",
        "description": "Service registry, command ingestion, published events",
        "http": {
          "endpoint": "https://api.example.com/"
        }
      }
    },
    "capabilities": [
      {
        "name": "io.best.agents.commands",
        "version": "0.9.1",
        "description": "Command catalogue and ingestion",
        "spec": "https://behavioralstate.io/specs/agents/commands",
        "schema": "https://behavioralstate.io/v1/schemas/agents/commands.json"
      }
    ],
    "agents": [
      {
        "id": "negotiation",
        "name": "Contract Negotiation",
        "accepts": ["ProposeCounter", "AcceptContract"],
        "produces": ["CounterProposed", "ContractAccepted"],
        "status": "running"
      }
    ]
  }
}

Designed for everyone

Who is BEST for?

For Developers

Build command-and-event services on an open foundation. JSON Schema definitions, OpenAPI specs, and transport bindings — everything you need to implement BEST.

For Businesses

Expose your services to any agent in the world. No bespoke integrations — just a manifest describing what you accept and produce.

For AI Platforms

Discover and interact with any BEST-compliant agent using MCP or simple HTTP. Compatible with existing agent frameworks.

For IoT & Sensors

Even a temperature sensor can be a BEST service — it accepts commands and publishes events, and any caller can discover it via the manifest.

Get started today

BEST is open-source under Apache 2.0. Explore the spec, read the schemas, and start building.