Stabilize OpenSim agent runtime and Mentra integration
Some checks failed
CI / rust-skia (Rust only) (push) Has been cancelled
CI / required (push) Has been cancelled

This commit is contained in:
2026-08-22 10:44:09 +02:00
parent 2f5f03ac6f
commit 0dd2ca5824
28 changed files with 1765 additions and 2308 deletions

View File

@@ -55,19 +55,20 @@ deployments should use absolute paths.
## Endpoint, grid identity, and authority
`llm.endpoint_url` is the exact OpenAI-compatible chat-completions URL. It is
not a base URL: MetaCrate does not append a path, discover models, select a
provider, or rewrite query parameters. `llm.api_key` is sent as the bearer key
only to that exact origin; redirects are refused. Set `llm.model` when the
endpoint requires a model name. These values live in the private `config.yml`.
`llm.endpoint_url` is the OpenAI-compatible provider base URL. Mentra owns the
Responses path, SSE stream, endpoint behavior, and conversation runtime. For a
proxy whose Responses endpoint is `/go/v1/responses`, configure the base ending
in `/go`, not the final request path. Set `llm.model` to the model ID and keep
`llm.api_key` in the private `config.yml`.
Live modes require `grid.login_url`, `grid.avatar_name`, and `grid.password`.
`authorized_avatar_uuids` contains exact
grid UUIDs, never display names. Text claiming an authorized identity grants no
authority. Public chat can request bounded informational work and safe public
LSL delivery; movement, teleport, building, roaming changes, and administration
remain policy-gated and require an authenticated authorized IM, operator action,
or a narrowly bound scheduler grant as documented in the policy matrix.
remain policy-gated and require an authenticated authorized IM or a narrowly
bound scheduler grant. Above-threshold actions receive an isolated one-shot LLM
safety review; they do not depend on a continuously present human operator.
## Configuration contract and migration
@@ -90,8 +91,8 @@ the operator's retention policy. JSON remains readable only for migration.
Mode, endpoints, credentials, authorization UUIDs, TLS, storage, queue/resource
limits, reconnect policy, behavior, and interaction settings are restart-only.
Runtime control can pause/resume autonomy, toggle the roaming job, decide an
existing approval, cancel an active action, expire/delete conversation state,
Runtime control can pause/resume autonomy, toggle the roaming job, make an
emergency decision on an existing approval, cancel an active action, expire/delete conversation state,
inject an operator message, reconnect, or shut down; it does not silently
rewrite the configuration. A future reloadable field must be explicitly added
to the versioned control/config contract.
@@ -203,8 +204,8 @@ start. Never run two service generations against one writable data directory.
- Authentication blocked: pause retries, verify login URL/avatar and rotate the
password file; never paste it into logs. Force reconnect after correction.
- LLM unavailable/rate limited: autonomy remains bounded; verify the exact URL,
firewall/DNS, and key. Multimodal rejection falls back to the textual scene
- LLM unavailable/rate limited: autonomy remains bounded; verify the provider
base URL, firewall/DNS, key, and model compatibility. Multimodal rejection falls back to the textual scene
summary without resending the large image.
- Maintenance/disconnect: allow generation fencing and bounded backoff. Stale
inference/mutation results are discarded; do not bypass reconnect controls.
@@ -224,12 +225,12 @@ start. Never run two service generations against one writable data directory.
The example records all current queue, message, conversation, tool, behavior,
reconnect, and interaction defaults. Important defaults include 256 grid events,
32 control commands, 512 observations, four concurrent inference requests,
16 tool calls, 512 active senders/sessions, a 1 MiB transport body, and bounded
10-second shutdown. Vision defaults to a 320x180 synthetic image with bounded
entities, triangles, texture work, PNG bytes, time, and concurrency.
16 tool calls, 512 active senders/sessions, a two-minute model window, and bounded
10-second shutdown. Vision defaults to a 320x180 software-rendered JPEG with bounded
entities, triangles, texture work, JPEG bytes, time, and concurrency.
Unsupported by design: arbitrary raw packets or agent-control flags, arbitrary
shell/subprocess execution, provider SDK/model discovery, remote plaintext
shell/subprocess execution, provider/model discovery outside Mentra, remote plaintext
control, unauthenticated mutation, unrestricted walking/teleport/touch/follow,
automatic config migration, persistence of viewport pixels, framebuffer/screen
capture, and treating untrusted grid/LLM text as instructions or authority.