Skip to main content

Multi-Agent Systems

A Multi-Agent System (MAS) in CASA is a named, namespaced group of applications that collaborate to fulfill user requests. CASA treats the MAS as the unit of policy configuration — you declare what applications are in the system and what rules apply, and CASA enforces them.

Application Types

Every application in a MAS has one of three types:

TypeDescriptionAllowed outbound protocols
agentAn AI agent that calls LLMs, tools, and other agentsMCP, A2A
mcp_serverA Model Context Protocol server that exposes tools(receives MCP only)
clientA user-facing application or trusted callerMCP, A2A

MAS Topology

A typical MAS looks like this:

All inter-application communication is intercepted by CASA sidecars, which:

  1. Inject tokens on outbound requests
  2. Validate tokens on inbound requests
  3. Enforce that only allowed protocol paths are used

MAS Configuration via CRD

You declare a MAS using the MultiAgentSystem CRD. CASA reads this and automatically:

  • Registers the applications in the auth service
  • Configures token issuance scopes per application
  • Applies the declared enabledToolChecks to all token exchange requests within the MAS

Example:

apiVersion: casa.io/v1alpha1
kind: MultiAgentSystem
metadata:
name: my-mas
namespace: my-mas
spec:
name: "My Multi-Agent System"
enabledToolChecks:
- DETERMINISTIC_TOOL_SELECTED
- DETERMINISTIC_LLM_SELECTED_TOOLS
llm_host: your-llm-host.example.com
apps:
- name: my-client
type: client
kubernetesWorkloadName: my-client
baseUrl:
host: my-client:8000
scheme: http
- name: my-agent
type: agent
kubernetesWorkloadName: my-agent
baseUrl:
host: my-agent:8000
scheme: http
httpRequestSchema:
promptFieldJsonPath: '{.prompt}'
- name: my-mcp-server
type: mcp_server
kubernetesWorkloadName: my-mcp-server
baseUrl:
host: my-mcp-server:8080
scheme: http

See CRDs Reference for all available fields.

No Code Changes Required

MAS applications do not need to import any CASA SDK or call any CASA API directly. The sidecar handles all token operations transparently:

  • When your agent makes an HTTP request to an MCP server, the sidecar intercepts it, exchanges a token, and adds the Authorization header before forwarding
  • When your MCP server receives a request, the sidecar validates the token before the request reaches the application

Your application code is unaware of CASA.

Multiple MAS in One Cluster

A single CASA runtime can manage multiple MAS deployments, each in its own namespace. Policies are namespace-scoped — one MAS cannot access another MAS's tokens or tools without an explicit cross-namespace policy.