> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ngram.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Extend the right boundary

> A map of the places to add capability without duplicating Entity state.

Start with the boundary that owns the behavior you want to change. An identity edit, a new tool, and a new rendering surface are different kinds of extension.

| Your change                              | Start here                                         |
| ---------------------------------------- | -------------------------------------------------- |
| Personality, written voice, model choice | Entity declaration and harness configuration       |
| An external capability                   | Tool registry or stdio MCP server                  |
| A messaging platform                     | Presence adapter and platform registration         |
| A body or animation set                  | Shell assets, manifest, and animation mapping      |
| A new spatial primitive                  | Tool schema, bridge action, protocol, and renderer |
| An inference transport                   | `InferenceProvider` implementation and factory     |
| Portable state workflow                  | Entity container, verification, and lifecycle APIs |

## Build a complete capability

For a new spatial action, define the input schema, route it through the protocol, implement the visible effect, and return a useful result when prerequisites are missing. Test the actual boundary where errors occur.

Prefer a small operation with clear inputs and results over a broad tool that silently guesses at execution, permissions, or surface support. Let the model compose those operations into a larger task.

## Preserve continuity

Keep identity and conversational memory with the Entity. Surfaces and shells should present and interact with that state rather than quietly maintaining a second version of it.

The shipped engine has explicit provider and surface boundaries, but it is not yet a universal plug-and-play adapter for every external agent harness. Integrating a different harness requires implementing and testing the appropriate protocol and lifecycle behavior.

Continue with [tools](/guides/tools), [social surfaces](/build/presence-and-social), [spatial protocol](/spatial/protocol), or [portable Entities](/build/portable-inference).
