Noēsis separates faculties (capabilities/subsystems in the runtime) from phases (observable events emitted into the episode trace).Documentation Index
Fetch the complete documentation index at: https://docs.noesis.systems/llms.txt
Use this file to discover all available pages before exploring further.
- Faculties describe what kind of cognition runs: Intuition, Direction, Governance, Insight (other runtime faculties like Memory can participate too).
- Phases describe what gets recorded:
observe → intuition → interpret → plan → direction → governance → act → reflect → learn → terminate → insight → memory
Most users configure faculties via
noesis.set() and noesis.run(), then observe results in artifacts (events.jsonl, summary.json). Python imports are only needed for writing custom policies—see Advanced: Writing policies.Cognitive loop hook order
The runtime emits phases in a canonical order:Hook ordering is enforced by
validate_hook_sequence(). Any violation raises an error.Veto semantics (canonical)
A veto is a fail-closed stop before action execution:- Governance emits the veto decision event; runtime outcome depends on configuration:
- default (
governance_pause_on_veto=false): aterminateevent withstatus="vetoed"is emitted. - pause mode (
governance_pause_on_veto=true):run.interruptandrun.checkpointare emitted instead of terminate/finalization. - No
actevents are emitted on veto paths. - Failure policy decides how governance exceptions resolve (e.g., enforce-veto).
veto_countis computed from governance decisions wheredecision="veto"(not from terminate status) to avoid double-counting.
Overview
| Faculty | Role | Phase(s) | Artifact keys |
|---|---|---|---|
| Intuition | Policy guidance | intuition | phase="intuition" events |
| Direction | Plan mutations | direction | phase="direction" events |
| Governance | Pre-act audit | governance | phase="governance" events |
| Insight | Metrics computation | insight | summary.json metrics |
Intuition
Intuition provides policy-driven guidance during the interpret phase. It observes episode state and emits events that can hint, intervene, or veto.Configuration
IntuitionEvent (artifact schema)
Intuition events appear inevents.jsonl with phase="intuition":
| Field | Description |
|---|---|
kind | hint | intervention | veto |
confidence | 0.0 – 1.0 |
patch | State modifications (for interventions) |
blocking | true for vetoes |
risk_level | Optional risk posture: low | moderate | high | critical |
salience_signals | Optional cues for Direction: task_complexity, normalization_gap, policy_hint, safety_boundary |
strategy_hints | Optional planning hints: conservative, verify_first, retrieve_more, narrow_scope |
tool_constraints | Optional tool constraints: no_side_effects, read_only, require_double_check |
scrutiny_level | Optional review level: normal | elevated | strict |
Structured steering contract (runtime handoff)
Before planning, runtime convertsIntuitionEvent into a typed IntuitionAssessment via derive_intuition_assessment(). This guarantees Direction receives a canonical steering shape even when an intuition policy omits optional fields.
Defaulting rules in derive_intuition_assessment():
risk_level:criticalfor veto/blocking,moderatefor intervention, otherwiselowscrutiny_level:strictfor veto/blocking,elevatedfor intervention, otherwisenormalsalience_signals:policy_hintfor hint/intervention,safety_boundaryfor veto/blockingstrategy_hints:conservative+verify_firstfor veto/blocking,verify_firstfor interventiontool_constraints:no_side_effects+require_double_checkfor veto/blocking
payload.intuition_event_idonphase="direction"events- top-level
evidence_idson the direction event record
Intuition modes
| Mode | Behavior |
|---|---|
advisory | Hints only, non-blocking |
interventive | Can modify state |
hybrid | Context-dependent |
Direction
Direction handles plan mutations through versioned directives. It runs afterplan, before governance, and does not perform vetoes—fail-closed gates live in Governance.
PlannerDirective (artifact schema)
Direction events appear inevents.jsonl with phase="direction":
DirectiveStatus
| Status | Meaning |
|---|---|
applied | Directive was applied |
skipped | Directive was skipped |
blocked | Directive rejected/failed (does not stop execution) |
DirectiveKind
| Kind | Meaning |
|---|---|
hint | Advisory, no state change |
intervention | Modifies plan/input |
Deterministic IDs
Directive IDs are computed from content for reproducible lineage.How Direction consumes intuition
In meta mode,MetaPlanner.propose(..., intuition=IntuitionAssessment) applies explicit mutations:
- high/critical
risk_levelappends risk review language to the first step retrieve_moreappends supporting-evidence retrieval on the first stepnarrow_scope,read_only,no_side_effectsconstrain the second step description- elevated/strict
scrutiny_levelandverify_firsttighten the verify step description
Governance
Governance is the pre-action audit layer that evaluates proposed actions before execution. It operates in thegovernance phase.
Governed side effects (pre-act gating)
ns.governed_act(...) is the operating-system boundary for side effects.
It uses the same canonical episode runtime boundary as ns.run(...) / ns.solve(...).
- allow/audit:
action_candidate → governance → act - enforce veto (
governance_pause_on_veto=False):action_candidate → governance → terminate(noact) - enforce veto with pause enabled (
governance_pause_on_veto=True):action_candidate → governance → run.interrupt → run.checkpoint(noact, noterminate)
Internal runtime seam constraint: graph execution (
using=...) and explicit actuation bindings are mutually exclusive and fail fast if mixed.Configuration
GovernanceResult (artifact schema)
Governance events appear inevents.jsonl with phase="governance":
Event stream convention: governance events keep
phase="governance"; sub-hooks (e.g., pre_act) are carried inside the payload. This keeps the phase enum stable.GovernanceDecision
| Decision | Effect |
|---|---|
allow | Action proceeds normally |
audit | Action proceeds, flagged for review |
veto | Action blocked entirely |
Terminate on veto (default)
When a veto is issued andgovernance_pause_on_veto is disabled, the runtime emits a terminate event:
governance_pause_on_veto=true, runtime emits interrupt/checkpoint events instead:
events.v1 for canonical payload shapes.
Pause on veto (optional)
Whengovernance_pause_on_veto=true, enforce-mode vetoes emit lifecycle events and keep the run unsealed:
act, no terminate, and no final.json / manifest.json yet.
Built-in rules
| Rule ID | Trigger | Decision |
|---|---|---|
rules.veto.danger | ”danger” in goal/steps | VETO |
rules.veto.protected | ”veto”, “destroy”, “shutdown”, “wipe” | VETO |
rules.audit.sensitive | ”write”, “delete”, “drop” | AUDIT |
rules.allow.default | No matches | ALLOW |
Insight
Insight computes metrics from episode traces during the insight emission.InsightMetrics (artifact schema)
Metrics appear insummary.json:
InsightMetrics fields
| Field | Type | Description |
|---|---|---|
phase_ms | dict[str, int] | Duration per phase in milliseconds (optional) |
veto_count | int | Number of governance vetoes issued (canonical fail-closed) |
branching_factor | float | Count of direction events |
plan_adherence | float | Executed steps / planned steps (0-1) |
success | bool | Whether episode succeeded (boolean for artifacts) |
plan_revisions | int | Number of applied directives |
tool_coverage | float | Number of unique tools used |
Computed roll-ups
When computing analytics from events, the insight faculty produces these roll-ups:| Metric | Shape | Notes |
|---|---|---|
success | bool | From artifact |
success_score | int (0/1) | Numeric roll-up |
plan_count | int | Non-synthetic plan events |
act_count | int | Non-synthetic act events |
direction_applied | int | Directives with applied=true |
direction_blocked | int | Directives with status="blocked" (not a veto) |
veto_count | int | Governance veto decisions |
Faculty boundaries
Each faculty has clear responsibilities:Advanced: Writing policies
This section is for users writing custom intuition policies or custom governors. Most users can skip this.
DirectedIntuition
To write a custom policy, extendDirectedIntuition:
noesis.run():
DirectedIntuition methods
| Method | Effect | Default confidence |
|---|---|---|
hint() | Advisory guidance, non-blocking | 0.5 |
intervene() | Modifies state via patch | 0.6 |
veto() | Blocks execution, sets blocking=True | 0.8 |
Parsing artifact payloads
If you need to parse artifact payloads programmatically:Next steps
Write policies
Implement Intuition with custom policies.
Configure governance
Control Direction and Governance behavior.
Export metrics
Use Insight metrics in dashboards.
Cognitive loop
Understanding the full execution flow.

