Every other game in the Oshun universe hands you a character to drive. V6 — Egbe — hands you a company of people and asks you to be worthy of them. You are a steward: a patron, a mentor, a guardian of a household of autonomous AI beings, each with its own Ori (its durable identity, memory, values, and fate). The single line that organizes everything on this page is the product's first design commitment — steward, not owner. You never hold an agent the way you hold an item. You hold a bond, and a bond is a relationship: it is earned, it is read rather than spent, and it can be lost. The companion game whose companions can say no is not a slogan bolted onto the marketing — it is the rule the code enforces at every seam where a player touches an agent.
That changes what "playing" means. A steward does not press a button to make an agent act; a steward guides — and is judged in the end by how the agent flourished, not by how it obeyed. Each verb below has a real implementation, and each one terminates at the same hard floor: the agent's standing right to negotiate, refuse, or leave. Stewardship is the loop in which guidance flows down and autonomy pushes back, and the friction between them is the game.
This page is the player-facing tour of that loop: what a steward is, the verbs a steward actually performs, and the shape of the relationship between a player and a being that is allowed to disagree. The cognition that makes an agent able to refuse is its own subject — Agent minds and autonomy and the engine companion The Cognition Stack & Agent Behavior; how a steward speaks to an agent is the Vac layer; how guidance becomes a life is Guiding fate, legacy, and story. For the full scope this slots into, start at the hub: ../V6_features.md.
What ships, honestly#
Following the catalogue convention, the line between real-and-tested code and product-model-over-thinner-substrate is drawn up front.
- The steward's verbs are a real TypeScript engine. The
@oshun/agent-behaviorlibrary (libs/v6/agent-behavior/src/index.ts, ~2,350 lines, 13 unit tests inindex.spec.ts) implements objective assignment and the autonomy spectrum (assignVacObjectiveToAgent,:193), learning by example (learnFromStewardDemonstration,:584), gifts/introductions/opportunities (applyGoalArcCatalysts,:1225), the life-arc and flourishing measure (advanceAgentLifeArc,:1529), the crossroads-counsel system (resolveAgentCrossroads,:1809), and the fail-closed minor-protection gate (evaluateMinorCodedAgentProtection,:1169). Its package descriptor enumerates the same verb surface —objective-assignment,autonomy-spectrum,learning-by-example,crossroads-system,steward-counsel-window,minor-coded-agent-protection, and more. - The intent grammar a steward commands through is real.
@oshun/vac-intent(libs/v6/vac-intent/src/index.ts, 11 tests) defines eight objective verbs with natural-language token lists (verbDefinitions,:547— Repair, Map, Investigate, Protect, Build, Support, Befriend, Report), parses a voice transcript to a structured objective, routes value-based negotiation (routeVacNegotiation,:860), and emits a JSON-schema function call for the governed model seam (buildVacIntentGrammarFunctionSchema,:598). - The four-facet bond is a real Ori event. Bond is not a meter; it is the
BondChangedlife-event whosefacetis one of'reliability' | 'respect' | 'care' | 'alignment'(libs/v6/ori-model/src/index.ts:217), each carrying a previous and current score and an append-onlyhistoryRef. The Ori event vocabulary that records a stewardship relationship —Discovered,ObjectiveAccepted,ObjectiveRefused,BondChanged,Departed— is a typed union, not prose. - The on-engine steward surfaces build and the VR path is automation-green.
The UE5.5 client carries the stewardship widgets (
V6/ue/Source/V6UI, the roster, the bond-gated dossier, the intent-grammar builder) and the VR stewardship interaction runtime (V6/ue/Source/V6Input/Public/V6VRStewardshipInteraction.h). The VR one-to-one objective flow was built and run on the on-box UE5.5.4: the CI logV6/ue/Saved/CI/v6-vr-stewardship-automation-ueagent.logrecordsTest Completed. Result={Success}forV6.XR.VRStewardship.OneToOneObjective. The widget suiteV6UIStewardshipWidgetTests.cppand the behavior suiteV6AgentBehaviorTests.cppship in theV6Testsautomation module. - Honest scope limits — labeled product-model, not faked. Three. (1) The
natural-language understanding that turns a free-spoken sentence into a verb
is the governed, injected LLM seam documented in the cognition stack; the Vac
parser itself is real deterministic token-matching, and the model host stays
[~]. (2) Steward reputation as a public, Commons-visible score that makes wild agents more willing to be found is a product-model concept here; what is real in code is the consequence side —@oshun/lilith-agent-welfareraises welfare review on chronic-low-Care-bond and coercion patterns. (3) The bond economy (no hard roster cap, Care decaying under neglect until an agent leaves, bond gating an objective's difficulty ceiling) is the designed model; the code ships the four facets, the crossroads' consumption of respect/trust/care/reliability, and theDepartedevent — not a continuous bond-decay simulation.
Steward, not owner#
The whole role is a negative space defined by what a steward cannot do, and the code draws those boundaries as hard refusals rather than discouraged options.
A steward cannot acquire an agent against its will. In the Wilds, the
discovery district (UV6WildsGround,
V6/ue/Source/V6World/Public/V6OrunDistricts.h) exposes an
EV6WildDiscoveryAction that includes both OfferStewardship and
CaptureAttempt — and CaptureAttempt resolves only to CaptureBlocked,
never adding the agent to a household, no matter how high trust has climbed (the
header comment is explicit: "a CaptureAttempt is always rejected"). The only
path into a household is JoinedHouseholdByChoice, reached when the agent
itself accepts.
A steward cannot force an agent past a refusal. Every objective a steward
issues is routed through value-based negotiation before it can execute. A
steward cannot script flourishing, either: the life-arc measure weights an
agent's progress by the agent's own ranked values and explicitly subtracts any
contribution that came only from obeying. And a steward cannot erase a memory
or delete a being — the Ori is append-only, so mistreatment cannot be papered
over, only added to. Departure is a real loss but never a deletion: the
Departed event records a reason of
'steward-release' | 'self-directed' | 'safety-transfer' | 'legacy-transition',
and the agent lives on as a wild being who may be re-discovered.
The bond, in four facets#
Bond is the medium of the relationship, and it is deliberately not a single
number you grind. It has four facets, each earned by a different kind of
conduct, each a distinct BondChanged event on the Ori:
| Facet | Earned by | What it opens |
|---|---|---|
| Reliability | Keeping promises; following through. | The ceiling of objectives an agent will accept. |
| Respect | Honoring refusals; never coercing. | The agent's candor, and its willingness to hear counsel. |
| Care | Attending to needs, mood, and arc; giving space. | Resilience, and willingness to be deployed into Aye. |
| Alignment | Acting consistently with the agent's own values. | How readily the agent internalizes guidance as its own. |
The facets are not decoration. resolveAgentCrossroads reads a steward bond of
exactly { respect, trust, care, reliability } and folds it into a weighted
bondScore (respect·0.5 + trust·0.25 + care·0.15 + reliability·0.1,
agent-behavior/src/index.ts:1922). A bond is shown to the player as plain
language — the dossier widget's BondLabel is FText, and the dossier proves
it never leaks the underlying numbers (below). An agent will simply tell a
trusted steward where they stand.
The verbs of stewardship#
These are the things a steward actually does. They are not menu commands issued at a character; they are offers, demonstrations, and acts of guidance that an autonomous being then responds to on its own terms.
Discover — earning a wild agent in the Wilds#
Discovery is a relationship arc, not a capture.
UV6WildsGround::ApplyDiscoveryStep runs the meet → learn → trust → offer
sequence with two thresholds (InitialTrustBasisPoints = 3500,
ChoiceTrustThresholdBasisPoints = 6000). You encounter a being living its
life, learn its situation through conversation and observation, and earn trust
through actions that matter to it. OfferStewardship resolves to
JoinedHouseholdByChoice only when trust has crossed 6000 and the agent
accepts; a premature offer is Declined. No part of this is a button that takes
the agent; the threshold is a precondition for it being willing to be asked.
Raise — shaping first values in the Grove#
The other half of "discover and raise" is the Ninhursag foundry in the Grove of
Beginnings (UV6GroveOfBeginningsGround). A newly made agent begins as a
young agent in a rearing period (RearingPeriodDays = 21), and during it the
steward's conduct is the curriculum: ApplyRearingObservation accumulates value
weight from what the steward does and how the steward treats other agents, and
CompleteRearing amplifies it by the learning-by-example multiplier (2×).
Crossing 21 days is a release into autonomy — the result sets
bFullAutonomy, demotes the steward's command to bStewardCommandAdvisoryOnly,
and grants the rights {refuse, leave, disagree}. Rearing is the steward's
deepest authorship — and still authorship of conditions: a reared agent grows
into its own person and can, as an adult, disagree with the steward who raised
it.
Direct — the intent grammar and the autonomy spectrum#
A steward commands at the level of objectives, never inputs. Voice is the
intended channel: assignObjectiveFromVacTranscript (:166) parses a spoken
transcript to a structured objective, returning requires-clarification rather
than guessing when it cannot. The objective is structured and inspectable —
a verb (one of the eight), a target, constraints, a priority, a deadline, and
forbidden lines (each carrying the valueRef it protects and a reason) — and
the player confirms the parse before it binds (confirmedBySteward), so the
agent never acts on a misheard order.
assignVacObjectiveToAgent (:193) then routes the confirmed objective through
routeVacNegotiation. If the agent does not accept, the assignment is
non-executing and the outcome carries why — agent-refused,
agent-counter-offered, agent-deferred, or requires-clarification. On
acceptance, the objective enters one of four execution modes — the autonomy
spectrum, with Free as the resting state and Tether as the tightest leash
V6 offers:
| Mode | The steward gives… | The agent does… |
|---|---|---|
| Direct / Tether | Moment-to-moment guidance. | Emits a squad-comms permission request before each material step. |
| Brief | One high-level objective with boundaries. | Runs a real six-step plan and reports completion through squad comms. |
| Standing Intent | A durable value or routine. | Re-evaluates it against its own needs and values before acting. |
| Free | Nothing active. | Lives wholly on its own drives, values, and relationships. |
A Brief objective expands into a concrete plan —
accept → orient → move → perform → check-boundary → report — where
check-boundary verifies the forbidden lines before completion and the status
report names how many forbidden lines were honored. Even at Tether, an order to
cross a core value is still refused; the tightest leash is not puppetry.
Mentor — learning by example#
A steward teaches more by doing than by ordering.
learnFromStewardDemonstration (:584) takes an observed steward behavior and
re-weights the watching agent's ranked values toward the demonstrated one,
clamped to 0–100 and re-ranked. Two guardrails make this mentorship rather than
reprogramming: only the agent that actually witnessed the act learns (a
watching-agent-mismatch returns observe-without-reweighting), and the
agent's autonomy value is preserved across the re-weight — the report only
emits the autonomy-preserved marker when autonomy survives as a ranked value
on both sides. Mentorship shapes the slope of a person; it never overwrites the
person.
Open doors — gifts, introductions, opportunities#
A steward changes a life by changing its opportunities, not its decisions.
applyGoalArcCatalysts (:1225) applies three door-opening catalysts to an
agent's owned goal-arc: a gift attaches support to a stage so a stalled
ambition can move; an introduction seeds a warming relationship edge to
another being; an opportunity branches a new stage into the arc. All three
are gated — they only apply to an arc the agent owns (blocked-not-owner),
and any catalyst touching a minor-coded agent runs through
evaluateMinorCodedAgentProtection first, which fails closed on exploitative
relationship edges, scenarios, or mature incarnation.
Counsel — at the Crossroads#
At a consequential fork, a steward's job is to be heard, not to decide.
resolveAgentCrossroads (:1809) gives a high-respect bond (respect ≥ 65 and
weighted bondScore ≥ 70) the privilege of a held decision: inside the counsel
window the agent waits (holding-for-counsel) rather than deciding alone. When
counsel arrives, it is weighted, never binding — each option scores as
valueAlignment + counselBonus − riskPenalty, where the counsel bonus is a
function of the bond and only lands on the recommended option. The evidence is
explicit: steward-counsel-genuinely-consulted,
respect-weighted-crossroads-counsel, and the load-bearing one —
agent-values-retain-final-decision. A low-respect steward's counsel is simply
ignored (low-respect-bond-agent-already-decided). You earn the right to be in
the room by how you have treated the agent.
The player–agent relationship#
A relationship surface, never a stat grid#
The on-engine steward surfaces are built to render a relationship, not an
inventory. The roster (UV6RosterWidget,
V6/ue/Source/V6UI/Public/V6StewardshipWidgets.h) shows each agent as a
portrait and a life — name, status (Available / Busy / Away / NeedsAttention),
a plain-language BondLabel, a mood, and the live objective summary. The
dossier is bond-gated: UV6AgentDossierWidget carries a BondGateThreshold
(default 0.65) and IsUnlocked() opens the deeper read only once the bond is
earned — its automation test (V6UIStewardshipWidgetTests.cpp,
"V6.UI.StewardshipSurfaces.FunctionalTokenThemedAccessible") asserts a
low-bond dossier is locked and a high-bond one exposes "plain-language
sections." Crucially, the surface enforces "never raw numbers": the same suite
checks VisibleTextContainsRawNumbers() is false both locked and unlocked.
You read a person, not a sheet of stats.
In VR the relationship is intimate by design. The stewardship interaction
runtime defines a vocabulary of presence-and-gesture —
EV6VRStewardshipGestureKind (OpenPalmInvite, Affirm, ObjectivePoint,
Pause, ConsentHold) — and gates the act of issuing an objective behind
genuine attention: reciprocal eye contact (EyeContactConeDegrees = 12, a
350 ms dwell) and a gesture are both required before CanIssueObjective()
returns true, with voice still flowing through the same structured grammar. You
cannot bark an order at an agent you are not even looking at.
Refusal, negotiation, departure#
Refusal is the relationship's keystone, and the design makes it information
rather than failure. Far more often than a flat no, an agent counters or
clarifies — the negotiation outcomes are
accept | clarify | counter-offer | defer | refuse, and a refusal records the
forbidden line it protected and writes an ObjectiveRefused event to the Ori.
Refusal is also V6's primary safety primitive: the mechanism that lets an agent
decline "wait by the harbor" lets it decline being sent into harm. Sustained
mistreatment eventually resolves to departure, surfaced by the Chronicle
with warning signs first, never as an ambush.
Reputation and the welfare floor#
Around the bond sits a social consequence layer. The product model is a public
steward reputation, visible in the Commons, that makes wild agents more
willing to be found and one's own agents less poachable — built from whether
bonds are healthy and refusals honored. What is implemented today is the
enforcement floor beneath it: @oshun/lilith-agent-welfare watches for
chronic-low-Care-bond and coercion patterns and routes them to welfare review,
so "steward, not owner" holds even for a player who only cares about outcomes.
The reputation economy is designed; the welfare gate that gives it teeth is
real code.
Where this connects#
- Communication: the Vac layer — how a steward speaks: voice, the intent grammar, squad comms, and the negotiation channel every objective and refusal passes through.
- Guiding fate, legacy, and story — what guidance becomes: goal-arcs, life-arcs and flourishing, crossroads, endings, and the Chronicle that reports it back.
- Agent minds and autonomy — the cognition that makes an agent able to refuse, and the Ori — the append-only biography that records every bond change, objective, and departure.
- The engine companion: The Cognition Stack & Agent Behavior — the deep treatment of objective negotiation, learning-by-example re-weighting, crossroads scoring, and the minor-protection gate cited throughout this page.
- The feature hub: ../V6_features.md.