mcpField
C
Cruxible Core

Cruxible Core

本地服务
github.com/cruxible-ai记忆与知识1712 周前更新

关于 Cruxible Core

Cruxible Core 是面向 AI Agent 的受治理状态引擎,将领域知识建模为可审查、版本化、可审计并可测试的状态。它通过运行时规则约束写入和有界操作,并为查询、变更与执行生成凭据。

主要功能

  1. 01用 YAML 声明领域模型与规则
  2. 02基于证据的提案和审查流程
  3. 03执行精确查询并记录凭据
  4. 04受限且可审查的 Procedure
  5. 05记录结果、快照和审计历史

适用场景

  1. 01让多个 Agent 共用经过审查的当前状态
  2. 02约束供应链判断及其后续操作
  3. 03跟踪决策的成功条件与实际结果

MCP 相关

Cruxible 提供 MCP 服务,与 CLI 和 Python 客户端共用同一 daemon、凭据和权限级别。Agent 可通过 MCP 配置连接并访问受治理状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cruxible-core": {
"command": "uvx",
"args": [
"cruxible-core"
],
"env": {
"CRUXIBLE_MODE": "<CRUXIBLE_MODE>",
"CRUXIBLE_ALLOWED_ROOTS": "<CRUXIBLE_ALLOWED_ROOTS>"
}
}
}
}
启动命令uvx cruxible-core
需要配置的环境变量
CRUXIBLE_MODEPermission mode: admin (default), graph_write, or read_only
CRUXIBLE_ALLOWED_ROOTSComma-separated absolute paths restricting which directories cruxible_init can access

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypicruxible-core0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Cruxible

Cruxible

PyPI version Python 3.11+ License: Apache 2.0

cruxible.ai · 快速入门 · 文档 · 套件 · 技能

Cruxible 是面向 AI Agent 的受治理状态引擎。 它生成一种 Crux: 一种可执行的领域知识产物,具有类似代码的生命周期—— 具备类型、经过审查、版本化、可审计,并通过实际结果进行测试。

Agent 平台所缺少的内容——状态管理、经过审查的反思、共享知识产物——以及 Crux 如何解决这些问题:具有审查生命周期的类型化声明和流程、结果契约与门控、版本化且带有凭据

问题所在。 代码有类型、经过审查并进行版本控制;它确定性地执行,测试可在几秒内验证代码。Agent 产出的判断、观察、可复用操作和决策却都落在散文中——它们无法执行,没有从提议到可信的受治理路径,也无法限制哪些内容会被重复采用。真实决策往往要数周或数月后才有结果,那时早已无人继续跟踪。而散文无法作为共享依据:运行众多 Agent 的组织需要它们都依据同一套最新声明、规则和经过审查的行动方式行事,而不是各自解读文档。

工作原理。 你在 YAML 中声明领域本体及其规则。可复现的流水线将可信源数据转化为类型化状态。当 Agent 或人员作出判断时,Cruxible 可以要求提供证据并经过审查,声明才能生效。当 Agent 学会一种有效的行动方式时,也可以将其提议出来:Procedure 与声明一样要经过相同的审查周期,并且只能在其声明的输入、前置条件和限制范围内运行。决策在获接受之前,可以被要求声明何种结果算作成功;结果契约会按自身计划到期,并记录现实给出的答案。查询和操作针对同一实时状态运行,无效变更会被拒绝。引擎内部不运行 LLM。

为何使用它。 每个 Agent 都基于相同的实时声明工作,并可调用相同的、经过审查且有明确边界的 Procedure。无效写入和操作会被拒绝,矛盾会持续显现,直到得到解决;决策可以根据实际发生的情况进行核验,计算结果、变更和操作运行都会附带说明缘由的凭据。快照会在某个修订版本中捕获确切的配置、锁文件、图状态和流程定义,以供比较、分支和传输;备份则保留完整的审计存储,以便恢复。整个产物的生命周期不受任何单次会话或模型的限制。

来看一个简单示例:供应商库存和事件源会根据固定来源构建实体。Agent 得出结论,认为某起事件会影响某个供应商,但这种关联被声明为需要判断的事项:

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

现在,策略已成为运行时的一部分。直接写入会被拒绝,审查通过后该判断才会生效,查询则会计算其影响:

  $ 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" }

来源事实通过确定性摄取进入系统;推断出的边则通过审核加入。现在,查询可以沿着它追溯影响,守卫和门控可以对其执行操作,之后的观察也可以与之矛盾,而不会悄然改写历史。

继续了解学习到的操作、测量结果和修正

完整生命周期,简述如下:

INGEST       pinned feeds -> Incident, Supplier, Product, and Shipment state
CLAIM        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 released
RUN          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 boundary
ATTESTATION  contradict incident_impacts_supplier (claim remains live)
REVIEW       attestation upheld; separate adjudication rejects the claim
QUERY        incident_impacted_suppliers -> []

SNAPSHOT     exact config + lock + graph state + Procedure definitions captured

Procedure 一经接受便不可变,且只能调用操作员导出的能力,并受已审核的前置条件和预算约束。在决策生效之前,结果契约就已声明,并明确规定如何衡量成功。证明是一条只追加的观察记录:对其进行解析不会悄然更改主张,因此后续的驳回是一个独立且附有收据的决策。即使实时查询结果发生变化,旧主张、观察记录和推理过程仍然可供查阅。

Cruxible 自身也遵循同样的边界:在状态固定经批准的审核结果之前,此仓库会拒绝推送到 main(了解规则如何运行)。

pip install cruxible — 快速入门 将带你从安装开始完成首次查询;下方的开始使用会运行已植入数据的演示世界,约需 3 分钟,无需调用模型或使用 API 密钥。

Crux 内部

建模 — 声明世界及其治理规则
  • 实体类型、关系、枚举、契约、查询、守卫和门控都定义在一个 类似 Terraform 的配置文件 中
  • Kit 将可复用模型与其策略、工作流和提供程序打包在一起; 叠加 Kit 可以组合领域模型和运营模型,而无需复制它们
  • 编写技能 可帮助根据源系统和构件起草本体;操作员负责审核运行时将强制执行的契约 (建模状态)
定案 — 将证据和判断转化为实时运营状态
  • 来源保留为内容哈希构件;主张引用确切的来源位置,而不是将整个语料库复制到图中
  • 确定性事实可通过预览过且锁定固定的工作流构建;判断则以有证据支持的提案形式加入
  • 每种类型的 write_policy 可选择直接写入、仅提案或仅创建准入方式;守卫在同一关口强制执行证据、状态转换和协同写入要求 (概念)
  • 判断类调用会进入审核组,并附带相应证据;审核会创建带有归属信息的状态,并记录其理由
  • 每个凭证有四个逐级累积的权限层级;守卫可以要求审核者与创建者不是同一人,并以收据为依据 (身份验证与 Agent 角色)
计算 — 根据同一份实时状态得出准确答案
  • 命名遍历可在模型之外计算影响范围、依赖关系、资格条件及其他常见答案
  • 查询收据会标明使用的状态修订版本和图路径;截断和分页都会明确说明,不会悄然返回不完整结果
  • 精简的输出配置、范围受限的邻域、图结构结果和本地读取工作集,让 Agent 上下文的大小与问题相称
执行 — 执行学到的流程,而不授予任意代码执行权限 - Procedures 是由操作者明确导出的能力组合,可由 Agent 提议,并声明前置条件和执行预算 ([概念](https://github.com/cruxible-ai/cruxible/blob/main/docs/concepts.md#procedures)) - 独立验收会将不可变的 Procedure 固定到经审核的配置和锁定文件;过期的固定项会默认拒绝,后续修订会取代它,而非修改它 - 每次运行都有明确的边界并生成回执。防护措施保护状态写入;关卡会阻止合并或部署等外部操作,直到实时状态允许执行
观察 — 将操作与证据关联起来,避免静默自我修改
  • 证明会为精确声明追加带日期的支持、矛盾或不确定性信息,但不会更改其当前状态;审核者负责解决差异
  • 结果契约会在接受决策前声明成功标准和固定的测量方式,并在检查到期时记录现实情况
  • 更正、驳回和取代始终是明确的治理事件。结果会为下一次修订提供参考,但不会自动重写状态 (概念)
运行 — 一个守护进程,多种接口,状态由你掌控

开始使用

pip install cruxible

通过创作技能 和建模状态 构建自己的 Crux,或运行演示 — 一个预先填充数据的供应链世界,约需 3 分钟,无需调用模型或 API 密钥。沙盒写入会归属于内置的 operator 身份:

# shell 1 — local sandbox daemon
CRUXIBLE_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-radius
cruxible context connect --server-url http://127.0.0.1:8100 --instance-id <instance-id>

# deterministic ingest: preview, then commit
cruxible run --workflow build_seed_state && cruxible apply --workflow build_seed_state --from-last-preview
cruxible 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 record
cruxible propose --workflow propose_incident_impacts_supplier
cruxible group list --status pending_review
cruxible group resolve --group <GRP-id> --action approve \
  --rationale "Confirmed against supplier geography" --expected-pending-version 1

# receipted answers through the edges you just admitted
cruxible query run open_incident_impacts --json
cruxible query run incident_impacted_suppliers --param incident_id=INC-TW-RAIL-2026-07 --json

Agent 加入后,身份验证便会启用:使用 CRUXIBLE_SERVER_AUTH=true 重启、认领引导凭据,并为每个 Agent 创建专属令牌 — 每次写入都会记录归属。详情、权限层级和安全加固,请参阅: 快速入门 · 运行时身份验证与 Agent 角色。

规则在运行

Cruxible 从不要求模型遵循规则,因为规则是以代码形式运行的。在配置中声明的规则会在每次变更时于写入关口执行,并且没有任何代码路径可以绕过该关口。

仅靠提示词强制执行
“Agent 知道,尚未补救的暴露项不能关闭”在关联补救声明及其证据之前,写入关口会拒绝该状态转换
“模型表示这些来源支持该声明”除非每条引用都能解析到经过内容哈希验证的来源片段,否则写入会被拒绝
“已告知 Agent 不要接受自己提出的声明”守卫会将执行操作的参与者与创建回执中记录的参与者进行比对,并拒绝操作,包括创建时直接设为已接受的情况
“Agent 学会了一套可复用的操作序列”Procedure 只能调用已导出的提供方,并且必须遵守声明的前置条件和预算;独立验收会将其固定到经过审查的配置和锁定文件,且每次运行都会留下回执

守卫朝内(实时状态的写入边界);关卡朝外(在状态一致前,外部操作会被暂缓)。

已声明并接入 git pre-push 的关卡
gates:
  merge-review:
    kind: git-pre-push
    entity_type: ReviewRequest
    match_property: change_head
    condition: {status: approved}
    adapter: {branch_pattern: refs/heads/main}

本仓库由该关卡保护:在状态中的审查记录得到更正之前,它拒绝了我们自己的 0.2.2 版本推送。我们修正了状态,而不是钩子。

完整演练

深入解析将端到端构建一个受治理的事实:单个经过审查的判断,就能让查询遍历递归物料清单,并沿着下游 5 个类型化节点,列出所有暴露的货物,还附带一份可用 explain 进行说明的回执。

Cruxible 审查组页面:信号矩阵、每条均附带匹配证据的待议边,以及显示工作流、回执和提供方追踪信息的溯源栏

截图展示了检视 UI中的审查界面:每条待议边都附带与之匹配的证据,并通过溯源栏追溯到工作流、回执和追踪信息。

Cruxible 的定位

Cruxible 不会取代源系统、文档或检索。这些层有助于 Agent 查找和解读证据。Cruxible 保存的是一组规模更小的承诺,系统的其余部分必须以一致的方式查询、强制执行或据此采取行动。

层作用
源系统、制品和检索保留并查找证据
Agent 和人工人员解读证据、提出声明和 Procedure、审查判断
Cruxible维护声明生命周期、执行精确读取和有界操作、强制执行策略,并附加回执和结果

如果信息仅供阅读,就将其留在制品层或检索层。当跨会话的 Agent 必须依赖它作为当前信息、遍历其影响、强制执行它或据此采取行动时,就将这些知识编译为 Crux。

套件

套件是 Crux 的可复用模板:它将本体与其治理、查询、工作流和提供方打包为一个带版本、可组合的单元。每个套件的指南都会带你从头到尾完成操作。

套件类型建模内容
agent-operationAgent 运行状态工作项、评审请求、决策、风险、待解决问题、状态备注、参与者、生命周期和依赖上下文。
project-domain领域叠加状态路线图条目、里程碑、发布线和产品领域;这些内容叠加在 agent-operation 基础之上,构成 Cruxible 自身运行所依托的项目状态。
agent-release领域叠加状态Agent 系统、版本、评估套件和运行记录,以及受治理的认证和晋级关卡。
kev-reference领域参考状态公开的已知遭利用漏洞参考数据。以已发布的状态版本形式使用(state create-overlay);仅在构建离线版本或发布自有版本时才初始化套件本身。
kev-triage领域叠加状态本地资产暴露情况、服务影响、控制措施、事件、发现项、修复和受治理的漏洞分类。
supply-chain-blast-radius领域状态供应商、组件、装配件、产品、货运和事件影响范围。
case-law-monitoring领域状态以案件为中心的判例法监控和判例影响。

文档

技术

Cruxible 使用 Pydantic 进行验证,使用 NetworkX 进行内存图操作,使用 Polars 进行数据操作,使用 SQLite 存储本地持久状态,使用 FastAPI 构建守护进程, 并使用 FastMCP 提供 MCP 工具。

贡献

欢迎贡献 — 请参阅 CONTRIBUTING.md。 如果你正在解决 Agent 受治理状态方面的问题,欢迎为仓库点星或 提交 issue,介绍你的使用场景。

许可证

Apache 2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。