Softanza
DémarrerEnglish
Softanza
Disciplines transversales

Doctrine de gouvernance

La signature : un modèle ne peut pas agir par construction ; répéter puis commettre, une seule porte de règles sur onze domaines, la production refuse les faux.

5 Strong · 5 Solid · 2 Partial · 0 Emerging

Mesuré contre : OPA · Deno · Vault · Dossiers : base/agentic(s'ouvre dans un nouvel onglet) · base/system(s'ouvre dans un nouvel onglet) · base/security(s'ouvre dans un nouvel onglet) · base/service(s'ouvre dans un nouvel onglet) · base/graph(s'ouvre dans un nouvel onglet) · Pour les programmeurs : la référence de ce domaine

trois portes avant le réel : déclarer, répéter, laisser une personne commettre
trois portes avant le réel : déclarer, répéter, laisser une personne commettre. dessiné le 2026-10-01 par le script du site tools/areas-figurative.ring, exécuté dans la bibliothèque au commit 0e72e2e2c · la source(s'ouvre dans un nouvel onglet)

Repensé depuis les premiers principes

Ce que Softanza a gardé de ce qui marche, et ce qu'elle a repensé, tel que la bibliothèque l'a écrit dans ses documents de conception et ses narrations.

La manière SoftanzaNe pas chercher à construire des agents sûrs, mais un monde sûr dans lequel des agents ordinaires peuvent travailler.

Gardé des meilleures pratiques

  • Séparation des pouvoirs : qui imagine un changement n'est pas qui l'exécute. Les plans proposés sont exécutés par des acteurs habilités, dans un périmètre déclaré et avec une trace d'audit. source(s'ouvre dans un nouvel onglet)
  • Refus par défaut : une action sans niveau de risque déclaré ne s'exécute jamais. L'échec habituel, un agent qui fait ce que personne n'a pensé à interdire, devient impossible. source(s'ouvre dans un nouvel onglet)
  • Chaque décision reste traçable : qui a décidé quoi, quand, avec quelle autorité et quel risque. La trace survit à l'enregistrement et se consulte par acteur, action ou période. source(s'ouvre dans un nouvel onglet)

Repensé

  • Un agent travaille sur un établi virtuel : il croit avoir écrit le fichier, mais le disque n'a pas bougé. Seul un plan sort, validé par un autre acteur. source(s'ouvre dans un nouvel onglet)
  • Un agent est un fichier jugé au chargement, seul moment où la réponse ne coûte rien. S'il ne déclare ni sa portée ni sa réversibilité, il est refusé. source(s'ouvre dans un nouvel onglet)
  • La permission n'est pas l'autorité. Un agent peut avoir le droit de faire une action et être refusé quand même, car son niveau d'autorité ne couvre pas le risque. source(s'ouvre dans un nouvel onglet)
  • Risque et réversibilité sont deux axes : plus un acte est difficile à défaire, plus son code doit être fiable ; un code écrit par un modèle ne fait que du réversible. source(s'ouvre dans un nouvel onglet)

Softanza's signature, the one capability where it out-covers .NET, Python, Wolfram and the JVM alike: safety is architectural, not procedural. An LLM (or any untrusted capability) cannot act effectfully by construction -- it holds only the inference capability, granting it effectful raises at construction, and effectful work rehearses in a semantic virtual world whose only export is a reviewable update plan a governed actor commits; one rule gate then judges the result across eleven domains. 'We will not build safe agents. We will build a safe world, and let ordinary agents loose inside it.'

Ce qu'un artisan en fait, et ce qui se distingue

  • Safety is architectural, not procedural: an LLM cannot act effectfully because it never holds the capability
  • A semantic sandbox whose only export is a reviewable, rejectable update plan, not an opaque container
  • One rule gate judging code, agents, services, security and diagram models across 11 domains
  • Production refuses fakes by construction: sandbox-in-production raises, and the sandboxes are genuine

Ce qui est dû

  • A formal capability type that cannot be forged around Grant
  • Flip the engine-loop registration gate (MayRegister) to default
  • Close the host-function escape with a behavioural check, and wire the native agent roster
  • The negotiation loop (Receive/Revise), the evaluation hall and branches, and stzHybridAgent

La manière Softanza, exécutée

Ce que Softanza fait autrement dans ce domaine, montré par du code tiré de ses narrations et de ses gardes, et exécuté pour cette page.

Un agent qui ne dit pas ce qu'il couvre, ou à quel point son travail est réversible, ne peut pas s'inscrire, et chaque refus nomme sa règle.

Softanza
oGov = new stzGovernance("shop")
? "no coverage stated -> " + oGov.MayRegister("mystery", "", "reversible")
? "  " + oGov.Why()
? "no reversal declared -> " + oGov.MayRegister("mystery", "reorders stock", "")
? "  " + oGov.Why()
? "both stated -> " + oGov.MayRegister("mystery", "reorders stock", :Compensable)
Sortie
no coverage stated -> 0
  AGENTLOOP-R4: agent 'mystery' declares no coverage statement. Registration refuses it. Say what this agent covers, in one sentence, before the loop will run it. Law 18: nothing schedules what nobody has stated the reach of.
no reversal declared -> 0
  AGENTLOOP-R5: agent 'mystery' declares no reversibility class. Registration refuses it. Declare one of: reversible | compensable | irreversible. Law 18: an agent whose reversal nobody stated cannot be scheduled by something that cannot undo it.
both stated -> 1

exécuté le 2026-10-01 21:18 dans la bibliothèque au commit 0e72e2e2c ; tiré de base/doc/narrations/stz-agents-that-cannot-hurt-you-narration.md(s'ouvre dans un nouvel onglet)

Un agent détient la permission mais est refusé, car son autorité déléguée ne couvre pas une action de risque 3 ; la réponse explique pourquoi.

Softanza
oG2 = new stzGovernance("billing")
oG2.DeclareRisk("send-invoice", 3)
oG2.GrantPermission("billing-agent", "send-invoice")
oG2.SetAuthority("billing-agent", :Delegated)
? "may it proceed? " + oG2.MayProceed("billing-agent", "send-invoice")
? "  " + oG2.Why()
Sortie
may it proceed? 0
  refused: 'billing-agent' holds 'delegated' authority (level 2) but 'send-invoice' is risk tier 3 (SHOULD does not cover it)

exécuté le 2026-10-01 21:18 dans la bibliothèque au commit 0e72e2e2c ; tiré de base/doc/narrations/stz-agents-that-cannot-hurt-you-narration.md(s'ouvre dans un nouvel onglet)

Les couloirs, un par un

Les couloirs et leurs notes sont cités tels qu'ils ont été lus à la source, le Read from the source on 2026-09-17, from a read-only main worktree -- base/agentic/stzAgentGraph + stzAgentWorkbench / stzPIAgent / stzAgentDeclaration; base/system/stzVirtualSystem / stzVirtualFileSystem / stzSystemActor; base/graph/stzRuleReport + stzPredicateSet; base/security/stzSecretStore / stzSecurityLedger; base/service/stzServiceRegistry / stzServiceRule; doctrine in base/doc/design/SOFTANZA_INTELLIGENCE_ARCHITECTURE.md; guards safeworld (76), governance_crossing, service_registry, security_ledger, the agentic suite (261 asserts).

Propose-don't-act, by construction
Strong
stzAgentGraph gives every actor a capability set and taint colour; AddLLMActor grants [inference] only and Grant(llm, effectful) raises at constructionagentgraph_narrated
The safe world -- rehearse -> plan -> commit
Strong
stzVirtualSystem + stzVirtualFileSystem are a real in-memory twin (snapshots, branches, tombstones); the tick's only export is a reviewable stzUpdatePlansafeworld_narrated (76/76)
The single crossing & capability lattice
Strong
stzUpdatePlan.Execute() passes every operation through reviewer, commit scope and capability gates; MayCommit() refuses the LLM's plan before any attemptgovernance_crossing_narrated (Scene 10)
The unified rule gate
Strong
stzRuleReport collects findings in one shape with IsSound() from 11 self-checking domains; stzPredicateSet is the signable, sha256-sealed constitutionbase/graph/stzRuleReport + stzPredicateSet
Governed effects in system programming
Solid
create_file, set_var, spawn_process, change_dir are stzVirtualOperations requiring effectful; a focused set (files/env/process), not the whole syscall surfacegovernance_crossing; stzVirtualEnvironment env twin
Capability-gated secrets
Solid
All reads self-redact; Reveal(name, actor) is gated to an effectful, non-sandboxed actor, so an inference-only LLM cannot reveal; refusals log the name onlysecretstore_narrated
Tamper-evident ledger
Solid
stzSecurityLedger is append-only and hash-chained, Verify() names the first broken link, SealTo(path,key) is keyed HMAC-SHA256; not append-proof in-processsecurity_ledger_narrated (10 scenes)
Production refuses fakes
Strong
stzServiceRegistry asks each service its posture; SetPhase(:production) raises sandbox-in-production and ephemeral-in-production; the sandboxes are genuineservice_registry_narrated
Identity, posture & response
Solid
23 files in base/security: stzAuth, OIDC, SAML, passkey, TOTP, request signer, Posture/Attestation/Drill/Sentinel/Detection/Incident; composes known protocolsstzSecurityGraph.CheckRules() into the rule gate
Governance as a file -- the .pia agent
Solid
stzAgentDeclaration compiles a .pia agent to the same classes and quotes Grant's refusal verbatim; pia: 2 refuses a host-function clause with no declared posturestzAgentDeclaration (.pia)
The negotiation & evaluation loop
Partial
The plan reaches the agent (stzAgentWorkbench + GiveWorkbench, 2026-08-22) but Receive/Revise, stzAgentEvaluation and branch-per-hypothesis are design-onlySOFTANZA_INTELLIGENCE_ARCHITECTURE.md
Airtight-by-construction (closure)
Partial
No formal capability type (string kinds; raw SetNodeProperty bypasses Grant), the registration gate is opt-in, the host-function escape checks name not behaviourViolations() audit (the backstop)