Skip to main content
A boundary is a named memory scope inside one workspace. It records which projects, which person and which agent a piece of traffic is about, so that whatever uses it reads and writes only that memory. Instead of passing those four references on every call, you pass the boundary’s ID. Boundaries are used by:
  • Memory Router — pass the boundary as ?boundary_id= on LLM calls. A common pattern is one boundary per end user, so each user’s conversations read and write only their own memory.
  • MCP — the user picks a workspace and a boundary on the OAuth consent screen when a client connects.
You can create boundaries in the console, or manage them with the endpoints below.

What a Boundary Contains

Every project, actor and agent a boundary names must belong to its workspace: projects must be in the workspace, and the actor and agent must be bound to it and not deleted.

Permissions

Reading a boundary needs only boundary:read. It shows which scope was declared, not what is in it: searches through the boundary still check permission on the content. Creating or updating a boundary also needs search permission on everything the request names, because a boundary is a way to search that content: If any one is missing, the whole request is refused with 403.

Endpoints