← All projects

substrate · development

Souveraine

A Rust substrate for persistent agents, typed conversations, memory and action.

No public release observedSource declaration: 1.0.0License: AGPL-3.0-or-later

Project reviewed 2026-10-20 · Information collected 2026-10-30

Souveraine gives an agent a continuing place to work. The server stores and reloads conversation messages as typed text, tool, image and reasoning blocks. Each agent's Markdown memory filesystem records writes in Git history. Its SeedID gives the agent a stable signing identity for peer requests; that key does not isolate a process from the Unix account running it.

The provider registry presents one inference interface across configured adapters. Provider and model assignments can differ by agent and processing position, and the service can discover provider model catalogs. The terminal, served API and shell panel use the same server-owned conversation runtime.

Four processing positions

Primary, subconscious, reflection and archivist are distinct processing positions paired with one agent. They keep separate memory roots and authored history. After a completed primary response, the subconscious normally runs next; cancellation, timeout or configuration can skip it. The archivist can synthesize new journal material on its configured interval or under context pressure. Reflection remains voluntary: it runs only after a successful assessment explicitly requests it.

Conversation history keeps typed records, but each provider receives a capability-aware projection. Reasoning that lacks its provider's original signature is omitted from generic replay, and images may become an explicit unseen marker on paths that cannot carry them. Before compaction replaces the working snapshot, the runtime can retain and hash the exact typed snapshot for bounded later reading. This does not recover older history that was never retained or reconstruct an episode's meaning for the agent.

Tools and agency

Tools expose schemas and structured results, including distinct refusals. The body tool reads device, power, USB, bearer, inference and usage state, and requests screen, USB-mode, power, haptic or attached-host actions through their existing session and shell owners. reach and consult send signed requests to known peers and return without waiting; a response can surface later in the agent's inbox. A focused subagent run has its own tool loop and a configured round limit.

One active turn is admitted per conversation. Independent conversations can proceed separately. The subagent tool currently waits for its nested run to return; its exposed background and nesting-depth options do not alter execution.

The first-person language used by some interfaces is deliberate vocabulary. It does not turn generated text into sensor evidence or settle the question of experience.

What remains open

  • Per-agent Unix account isolation and full node commissioning are unfinished; signed peer requests do not complete federation.
  • Exact retained snapshots cover only history observed and saved by this runtime. Complete lossless replay, provider-specific reasoning recovery and reconstructive episodic understanding remain open.
  • Reflection is an explicit request path, not an automatic cadence. Source presence does not establish that a scheduled wake, peer route or body action was available in a particular deployment or exercised on a device.
  • The public source projection can lag internal development; its revision is shown separately.

Changelog

2026-10-20

  • The body tool reads the session authority's available power choices before requesting an action. Availability follows the device and session policy, and refusals include a reason.
Documentation and evidence record

Source CI observed for this documentation revision: unavailable. Application builds and device acceptance are separate evidence.

Documentation owner: Fimeg/souveraine
Repository revision: c8ceeda4ac774cd92152dd349fac71031e8682c0
Document: public-docs/souveraine.md
Document SHA-256: 06881145a151879bf4f26ad274716fb707af65e0377b8470096f036476f9c208

Changelog: public-docs/souveraine-changelog.md
Changelog SHA-256: 414679f449e10a9a23af9ea4271ebbe6ffc05425a1bd8f69b929290276d07a69

  • Runtime and provider code: src/
  • Source and public projection boundary: README.md

The separately published source projection is at 8f42fc953d76954f4e6dec306acf17bfbf55a9ce. It can differ from the documentation source revision.