Cruxible Core

io.github.cruxible-ai由 GitHub 帳號 cruxible-ai 發布v0.1.2更新於 Oct 27, 2026

Deterministic decision engine with receipts. Define rules in YAML, query a graph, get proof.

發布方自己的服務:core.blue

概覽

AI 產生的概覽

Cruxible Core 將受治理的狀態引擎接上助理:以 YAML 宣告規則、查詢即時圖,並取得附憑據、經審核的答案。

可以做什麼
  • 透過具名圖遍歷查詢即時狀態,回傳憑據並明確標示分頁與截斷
  • 提出附證據的主張與 Procedure,經審核群組進入正式狀態
  • 執行僅由營運方匯出能力組成、有界且留憑據的 Procedure
  • 記錄佐證、結果契約與更正,而不默默改寫歷史
  • 為設定、鎖定與圖狀態建立快照與備份
適用情境
當多個代理或工作階段必須依據同一份目前的主張、規則與已審核動作行事,而非各自解讀文件時;當決策需要證據、審核與可稽核憑據時,適合加入。
執行需求
以本機程序執行(pip install cruxible),需要本機守護程序,通常使用 SQLite 狀態檔;快速上手會用到 CRUXIBLE_SERVER_STATE_DIR 等狀態目錄與服務位址。選用驗證模式可為每個代理簽發權杖。CRUXIBLE_ALLOWED_ROOTS 限制 cruxible_init 可存取的目錄;CRUXIBLE_MODE 設為 admin、graph_write 或 read_only。
安裝前請注意
CRUXIBLE_MODE 預設為 admin,供代理使用時宜改為 read_only 或 graph_write。寫入、提案、核准與 Procedure 執行都會改變受治理狀態並留下憑據;建議開啟驗證並為每個代理簽發權杖,讓每次寫入都有歸屬。套件自發行版本取得並做摘要驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Cruxible Core,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Cruxible]

Cruxible

[PyPI version] [Python 3.11+] [License: Apache 2.0]

cruxible.ai · quickstart · docs · kits · skills

Cruxible is a governed state engine for AI agents. It produces a Crux: an executable artifact of your domain knowledge with a code-like lifecycle — typed, reviewed, versioned, auditable, and tested against outcomes.

[What agent platforms are missing — state management, reviewed reflection, shared knowledge artifacts — and the Crux that answers them: typed claims and procedures with a review lifecycle, outcome contracts and gates, versioned and receipted]

The problem. Code is typed, reviewed, and versioned; it executes deterministically, and tests verify it in seconds. The judgments, observations, reusable actions, and decisions agents produce land in prose — which doesn't execute, has no governed path from proposed to trusted, and puts no bounds on what gets repeated. Real decisions resolve over weeks or months, long after anything is still tracking them. And prose can't serve as shared ground: an organization running many agents needs them all acting on the same current claims, rules, and reviewed ways of acting, not on each agent's own reading of the documents.

How it works. You declare the domain ontology and its rules in YAML. Reproducible pipelines turn trusted source data into typed state. When an agent or human makes a judgment, Cruxible can require evidence and review before the claim becomes live. When an agent learns a way of acting that works, it can propose that too: a Procedure passes through the same review cycle as a claim and runs only within its declared inputs, preconditions, and limits. A decision can be required to declare, before it is accepted, what result will count as success; the outcome contract comes due on its own schedule and records what reality said. Queries and actions run against the same live state, and invalid changes are refused. No LLM runs inside the engine.

Why use it. Every agent works against the same live claims and can invoke the same reviewed, bounded Procedures. Invalid writes and actions are refused, contradictions remain visible until resolved, decisions can be checked against what happened, and computed answers, mutations, and action runs carry receipts that explain them. Snapshots capture exact config, lock, graph state, and procedure definitions at a revision for comparison, branching, and transfer; backups preserve the complete audit stores for recovery. The whole artifact outlives any single session or model.

One small example: a supplier inventory and incident feed build entities from pinned sources. An agent concludes that an incident impacts a supplier, but the relationship is declared a judgment call:

yaml
entity_types:  Incident:    id: incident_id    properties:      title: string indexed  Supplier:    id: supplier_id    properties:      name: string indexed
relationships:  - incident_impacts_supplier: Incident -> Supplier    write_policy: proposal_only        # judgment call: enters only through review
named_queries:  incident_impacted_suppliers:    mode: traversal    entry_point: Incident    returns: Supplier    traverse:      - relationship: incident_impacts_supplier        direction: outgoing

Now the policy is part of the runtime. The direct write is refused, review admits the judgment, and a query computes its consequence:

diff
  $ cruxible relationship add incident_impacts_supplier \      Incident INC-TW-RAIL-2026-07 Supplier S-CN-DG-HARNESS- Error: DirectWriteRefusedError: Direct write to relationship- 'incident_impacts_supplier' is refused (write_policy=proposal_only).- Use 'group propose' to stage a governed proposal. (receipt: RCP-…)
  $ cruxible propose --workflow propose_incident_impacts_supplier  $ cruxible group resolve --group <GRP-id> --action approve \      --rationale "Confirmed against supplier geography"
  $ cruxible query run incident_impacted_suppliers \      --param incident_id=INC-TW-RAIL-2026-07 --json+ { "items": [ { "entity_type": "Supplier", "entity_id": "S-CN-DG-HARNESS" } ],+   "receipt_id": "RCP-2f61a90c84d3" }

The source facts came through deterministic ingest; the inferred edge entered through review. Queries can now traverse its consequences, guards and gates can act on it, and later observations can contradict it without silently rewriting history.

Continue through a learned action, measured outcome, and correction

The complete lifecycle, abbreviated:

text
INGEST       pinned feeds -> Incident, Supplier, Product, and Shipment stateCLAIM        incident_impacts_supplier: pending -> live (evidence + reviewer)QUERY        incident_impacted_suppliers -> [S-CN-DG-HARNESS]
PROCEDURE    hold_exposed_shipments v1: pending -> live (config + lock pinned)DECISION     hold exposed shipments; success = zero exposed shipments releasedRUN          bounded provider calls complete -> receipt RCP-run-...OUTCOME      pinned query at check time -> satisfied -> receipt RCP-outcome-...
OBSERVATION  new evidence says the supplier was outside the incident boundaryATTESTATION  contradict incident_impacts_supplier (claim remains live)REVIEW       attestation upheld; separate adjudication rejects the claimQUERY        incident_impacted_suppliers -> []
SNAPSHOT     exact config + lock + graph state + Procedure definitions captured

The Procedure is immutable once accepted and can call only capabilities the operator exported, within its reviewed preconditions and budgets. The outcome contract is declared before the decision becomes live and pins how success will be measured. The attestation is an append-only observation: resolving it does not silently change the claim, so the subsequent rejection is a separate, receipted decision. The old claim, observation, and reasoning remain available after live query results change.

Cruxible uses the same boundary itself: this repository refuses a push to main until state pins an approved review (how).

pip install cruxible — the Quickstart goes install to first query; Get Started below runs the seeded demo world in ~3 minutes, with no model calls or API keys.

Inside a Crux

Model — declare the world and the rules that govern it
  • Entity types, relationships, enums, contracts, queries, guards, and gates live in one Terraform-like config
  • Kits package a reusable model with its policies, workflows, and providers; overlay kits compose domain and operating models without copying them
  • Authoring skills help draft the ontology from source systems and artifacts; the operator reviews the contract the runtime will enforce (Modeling State)
Settle — turn evidence and judgment into live operational state
  • Sources remain content-hashed artifacts; claims cite exact source locations instead of copying the corpus into the graph
  • Deterministic facts can be built through previewed, lock-pinned workflows; judgment enters as an evidence-backed proposal
  • Per-type write_policy chooses direct, proposal-only, or mint-only admission; guards enforce evidence, transitions, and co-writes at one chokepoint (Concepts)
  • Judgment calls land in review groups carrying their matching evidence; review mints attributed state with the rationale on record
  • Four cumulative permission tiers per credential; a guard can require the reviewing actor differs from the creating actor, anchored on receipts (Auth And Agent Roles)
Compute — derive exact answers from the same live state
  • Named traversals compute blast radius, dependencies, eligibility, and other recurring answers outside the model
  • Query receipts identify the state revision and graph paths used; truncation and pagination are explicit rather than silently incomplete
  • Compact output profiles, bounded neighborhoods, graph-shaped results, and a local read working set keep agent context proportional to the question
Act — execute learned procedures without granting arbitrary code
  • Procedures are agent-proposable compositions of capabilities explicitly exported by the operator, with declared preconditions and execution budgets (Concepts)
  • Independent acceptance pins an immutable Procedure to the reviewed config and lock; stale pins fail closed and revisions supersede rather than mutate it
  • Every run is bounded and receipted. Guards protect state writes; gates hold external actions such as merges or deploys until live state permits them
Observe — connect action back to evidence without silent self-modification
  • Attestations append dated support, contradiction, or uncertainty to an exact claim without changing its live status; reviewers resolve the discrepancy
  • Outcome contracts declare the success criterion and pinned measurement before a decision is accepted, then record what reality said when the check comes due
  • Corrections, rejections, and supersession remain explicit governed events. Outcomes inform the next revision; they do not rewrite state automatically (Concepts)
Operate — one daemon, many interfaces, state you own

Get Started

bash
pip install cruxible

Build your own Crux with the authoring skills and Modeling State, or run the demo — a seeded supply-chain world, ~3 minutes, with no model calls or API keys. Sandbox writes attribute to a built-in operator identity:

bash
# shell 1 — local sandbox daemonCRUXIBLE_SERVER_STATE_DIR="$HOME/.cruxible/sandbox" cruxible server start
# shell 2 — kit bundles are fetched from the release and digest-verified# (agent-operation is the optional agent-ops layer; domain-only works too)cruxible --server-url http://127.0.0.1:8100 init --kit agent-operation --kit supply-chain-blast-radiuscruxible context connect --server-url http://127.0.0.1:8100 --instance-id <instance-id>
# deterministic ingest: preview, then commitcruxible run --workflow build_seed_state && cruxible apply --workflow build_seed_state --from-last-previewcruxible run --workflow ingest_incidents && cruxible apply --workflow ingest_incidents --from-last-preview
# the incident feed can only PROPOSE impact edges; the judgment is yours, on the recordcruxible propose --workflow propose_incident_impacts_suppliercruxible group list --status pending_reviewcruxible group resolve --group <GRP-id> --action approve \  --rationale "Confirmed against supplier geography" --expected-pending-version 1
# receipted answers through the edges you just admittedcruxible query run open_incident_impacts --jsoncruxible query run incident_impacted_suppliers --param incident_id=INC-TW-RAIL-2026-07 --json

When agents join, identity turns on: restart with CRUXIBLE_SERVER_AUTH=true, claim the bootstrap credential, and mint each agent its own token — every write is attributed. Details, permission tiers, and hardening: Quickstart · Runtime Auth And Agent Roles.

The Rules Run

Cruxible never asks a model to follow the rules, because the rules run as code. A rule declared in config runs at the write chokepoint on every mutation, and there is no code path around the chokepoint.

PromptedEnforced
"The agent knows an exposure can't be closed while unremediated"The write chokepoint refuses the transition until the remediation claim, with its evidence, is linked
"The model says these sources support the claim"The write is refused unless every reference dereferences to a content-hash-verified source chunk
"The agent was told not to accept claims it proposed itself"The guard compares the acting actor against the creation receipt's recorded actor and refuses, including create-as-accepted
"The agent learned a reusable action sequence"A Procedure may call only exported providers, within declared preconditions and budgets; independent acceptance pins it to the reviewed config and lock, and every run leaves a receipt

Guards face inward (the write boundary of live state); gates face outward (an external action holds until state agrees).

A declared gate, wired into git pre-push
yaml
gates:  merge-review:    kind: git-pre-push    entity_type: ReviewRequest    match_property: change_head    condition: {status: approved}    adapter: {branch_pattern: refs/heads/main}

This repository runs on that gate: it refused our own 0.2.2 release push until the review record was corrected in state. We fixed the state, not the hook.

The Full Walkthrough

The deep dive builds one governed truth end to end: a single reviewed judgment lets a query walk a recursive bill of materials and name every exposed shipment five typed hops downstream, with a receipt you can explain.

[Cruxible review group page: signal matrix, proposed edges each carrying matching evidence, and a provenance rail with workflow, receipts, and provider traces]

The screenshot is the review seat in the inspection UI: each proposed edge carries the evidence that matched it, with a provenance rail back to workflows, receipts, and traces.

Where Cruxible Fits

Cruxible does not replace source systems, documents, or retrieval. Those layers help agents find and interpret evidence. Cruxible holds the smaller set of commitments that the rest of the system must query consistently, enforce, or act through.

LayerJob
Source systems, artifacts, and retrievalPreserve and find the evidence
Agents and humansInterpret evidence, propose claims and Procedures, review judgment
CruxibleMaintain claim lifecycle, execute exact reads and bounded actions, enforce policy, and attach receipts and outcomes

If information is only useful to read, leave it in the artifact or retrieval layer. When agents across sessions must rely on it as current, traverse its consequences, enforce it, or act through it, compile that knowledge into a Crux.

Kits

A kit is a reusable template for a Crux: it packages an ontology with its governance, queries, workflows, and providers as one versioned, composable unit. Per-kit guides run each end to end.

KitKindWhat it models
agent-operationAgent operating stateWork items, review requests, decisions, risks, open questions, state notes, actors, lifecycle, and dependency context.
project-domainDomain overlay stateRoadmap items, milestones, release lines, and product areas composed over the agent-operation base — the project state Cruxible itself runs on.
agent-releaseDomain overlay stateAgent systems, versions, eval suites and runs, with governed certification and promotion gates.
kev-referenceDomain reference statePublic known-exploited vulnerability reference data. Consumed as a published state release (state create-overlay); init the kit itself only to build offline or publish your own.
kev-triageDomain overlay stateLocal asset exposure, service impact, controls, incidents, findings, remediation, and governed vulnerability triage.
supply-chain-blast-radiusDomain stateSuppliers, components, assemblies, products, shipments, and incident blast radius.
case-law-monitoringDomain stateMatter-centered case-law monitoring and authority impact.

Documentation

Technology

Cruxible uses Pydantic for validation, NetworkX for in-memory graph operations, Polars for data operations, SQLite for local durable state, FastAPI for the daemon, and FastMCP for MCP tools.

Contributing

Contributions welcome — see CONTRIBUTING.md. If governed agent state is a problem you're working on, star the repo or open an issue with your use case.

License

Apache 2.0

來源:README.md,提交 e848cbb

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Core 整合