mcpField
C
Causari

Causari

本地服务
causari.dev版本控制92 天前更新

关于 Causari

Causari 根据匹配到的 AI 相关提交元数据,统计仍由 git blame 归属这些提交的代码行;也可在本地记录 Agent 声明的提示词、模型和文件,并明确说明记录的证明边界。

主要功能

  1. 01审计 AI 标记提交的代码行存续情况
  2. 02比较审计快照和方法
  3. 03记录 Agent 提示词、模型和文件
  4. 04追溯代码行对应的已记录事件
  5. 05通过钩子或代理捕获交互
  6. 06生成并验证签名凭据

适用场景

  1. 01衡量元数据匹配提交留下的代码行
  2. 02在拉取请求中添加审计摘要
  3. 03查找代码行背后的记录事件
  4. 04在本地保存 Agent 活动记录

MCP 相关

`re mcp` 命令通过 MCP 暴露本地记录账本,使 Agent 能报告提示词、模型和文件等声明活动。这些声明不能证明代码由谁输入。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargocausari0.5.0

工具

还没有获取到工具列表

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

详细介绍

∵ causari

AI 编写的代码没有作者,只有成因。Causari 将它们记录下来。

仓库中有多少行来自带有 AI 标签的提交,至今仍然存在?一条命令,适用于任何 git 仓库,无需设置。统计数量,不打分。

re audit 会统计由 git 元数据匹配 AI 检测规则的提交所引入的代码行数,以及在 HEAD 上 git blame 仍归因于这些提交的代码行数。这个数量就是存续量:统计数量,不打分。**带有 AI 标签意味着元数据匹配。**这并不能证明该代码行由模型编写。UNKNOWN(没有此类元数据)不代表由人编写。

Causari 还会在本地记录 Agent 运行时声明的内容(提示词、模型、文件),并通过 MCP(re mcp)提供这些信息。Seal 用于验证某个密钥是否为此提交和方法签署了这些字节。它不能验证这些数字或归因是否属实。

方法和局限:causari.dev/method。面向 Agent 的相同局限,详见单个文件:causari.dev/llms.txt(完整规范和架构:causari.dev/llms-full.txt;Agent 发现卡片:causari.dev/.well-known/agent.json)。

curl -fsSL https://causari.dev/install.sh | sh
re audit

causari.dev  ·  每周存续报告  ·  方法  ·  宣言  ·  路线图  ·  发行版

CI License Platform AI 代码存续量,由此工具在其自身仓库中测得

Causari 由 Crovia Trust 提供:包括 causari / re 二进制文件、npm、PyPI 和 crates.io 上的 causari 包,以及 MCP 服务 io.github.croviatrust/causari。它与 causari.ai、GitHub 组织 causari 或 npm 作用域 @causari(另一团队开发的因果知识图谱)无关。


re audit vercel/next.js     # any public repo, cloned to a temp dir and removed after
$ re audit
∵ causari · AI code survival
───────────────────────────────────────────────────
  216 commits analyzed (git metadata only, no setup required)

AI-tagged (metadata matched): 14 commits, 6267 introduced, 5185 survived
  survival 82.7% line-weighted · 82.7% capped · median 92.8%
  Of the lines introduced by metadata-matched commits, this percentage is the share `git blame -w -M -C` still attributes to those commits. It is not the share of the repository and it is not a quality score. Metadata matched does not prove who wrote each line. UNKNOWN and untagged are commits with no such signal; they are not a finding that a human wrote them.
  Age-matched gap: +2.9 percentage points (AI-tagged 85.6% minus untagged 82.7% in the matched age windows). Positive means the metadata-matched lines have the higher line-weighted survival in those windows, over 1 matched age window holding 75% of the AI-tagged lines. Lines outside those windows are not in this gap.
Probable AI-assisted: none detected
By agent (metadata matched only)
  agent                commits introduced  survived  line-wt   capped   median
  cursor                    14       6267      5185    82.7%    82.7%    92.8%

Baseline: untagged lines of the same repository
  untagged: 202 commits, 95759 introduced, 76085 survived · 79.5% line-weighted · 92.1% median
    line age                AI-tagged                 untagged
      0-30 d       85.6% (13 commits)      82.7% (142 commits)
     30-90 d                        —       75.8% (23 commits)   (below floor on one side)
    90-180 d         73.9% (1 commit)       62.6% (37 commits)   (below floor on one side)
  Age-matched gap: +2.9 percentage points (AI-tagged 85.6% minus untagged 82.7% in the matched age windows). Positive means the metadata-matched lines have the higher line-weighted survival in those windows, over 1 matched age window holding 75% of the AI-tagged lines. Lines outside those windows are not in this gap.

Confidence notes
  · JSON field `verified` = metadata matched (trailers, bot author, …), not authorship proved
  · PROBABLE = weak heuristic; may include human-assisted commits
  · UNKNOWN commits are excluded from headline numbers; they form
    the untagged baseline (human, inline-completed and untagged-agent code alike)
  · Only lines from AI-tagged commits are measured; inline completions
    (Copilot, Cursor Tab, …) leave no git trace and are invisible here
  · A measurement, not a grade: method v4 at https://causari.dev/method

Reading and export
  · The age-matched gap above is the comparison. An agent row marked below floor is not comparable.
    Meeting the floor is not a reliability guarantee.
  · Export: `re audit <target> --json`, `--summary`, `--seal`, `--badge`, `--card`
    `re report` reads the local ledger. It does not export this audit.

百分比表示 git blame 仍归因于此方法标记的提交的代码行所占比例。它不代表代码质量、开发者生产力、AI 使用总量,不能证明代码行由模型编写,也不代表安全性、正确性或 AI 的因果影响。提交数少于 5 的 Agent 行会标记为低于门槛;5 次提交是可比性门槛,并非可靠性保证。

只有注明非空工具名称的 git-ai 注释才会计入(方法 v4)。只有架构的注释、仅供人类阅读的注释以及工具名称为空的注释均不计入。方法 v3 会统计任何 git-ai 注释。存续报告 #1 和 #2 仍使用方法 v2。报告 #3 和 #4,以及 0.3.0 发行版的所有审计,仍使用方法 v3。报告 #4 的 DOI 为 10.5281/zenodo.23196011。报告 #5 和 #6 仍使用方法 v4,使用 causari 0.4.1(提交 d4c4949,2026-10-08)测量。已发布的二进制版本 0.5.0(2026-10-21)使用方法 v6,也就是本源代码计算的方法:surviving 读取与 introduced 相同的路径,因此二进制文件(PDF、图像)不会为任一计数增加代码行,符号链接则会为两个计数各增加一行;coverage.binary_files 表示排除的二进制文件数。没有发布过使用方法 v5 的二进制版本。已发布的报告不会重新计算。

十五分钟

curl -fsSL https://causari.dev/install.sh | sh
cd /path/to/a/git/repo
re audit

阅读输出中的三行。**AI 标记(元数据匹配)**指提交元数据与某条规则匹配的群组。基线是所有其他提交:未标记,并不代表“由人类编写”。存续百分比是按行加权计算的已标记群组持久性。它不能证明代码是谁敲出来的。规则和限制见 causari.dev/method。

账本是第二条路径,存储在本地并由 gitignore 忽略,仅在你记录以下内容时使用:

git history → re audit → survival counts
hooks or proxy → .causari/ → re why / trace / lens

密封文件会对审计数据进行签名,但不会连接两条路径。

大家都在争论 AI 编写了多少代码,却没人能核实这些数字。 re audit 会读取纯 git 历史记录——Co-Authored-By 尾注、机器人作者、Agent 标记——找出元数据匹配的提交,并通过 git blame 检查这些提交的行有多少仍存在于 HEAD。元数据匹配并不能证明这一行是由模型编写的。不使用模型、不做估算、不做调查问卷。--json 会保存计数、repository.head、repository.root_commits、方法、blame 和 numstat 标志(coverage.blame_flags、coverage.numstat_flags)、coverage.ignore_revs_sha256 和 coverage.notes_oid(存在时 refs/notes/ai 的目标 OID)。它不会保存 refs/notes/ai 的注释负载:该引用不属于提交对象,更改它会更改 coverage.notes_oid,也可能在提交 SHA 不变的情况下改变计数。发生过变动的仓库,其提交也会不同。

  • --json 提供任何已发布数据行背后的原始字节(已发布的数据行本身见:causari.dev/reports/survival,也可作为数据集访问:CroviaResearch/causari-survival)
  • --summary 生成供 CI 使用的 Markdown;--badge / --card 生成单色 SVG
  • --diff <before> <after> 沿一个维度比较两个审计 JSON 或 .seal.json bundle(repository_diff、method_diff、indeterminate_method_diff、metadata_diff 或 identical_inputs),拒绝多维度差异比较以及无关仓库之间的比较
  • --save 追加快照,以跟踪你自己的趋势

与什么比较:从方法 v3 起,每次审计都会按行龄列出仓库自身未标记的代码行,并与 AI 标记的代码行并列展示,同时给出按行龄匹配后的差值:在同一仓库的匹配行龄窗口内,AI 标记代码行的存续率减去未标记代码行的存续率,而非比较时间戳完全相同的内容。审计还会指出 HEAD 中仍存在的最早代码行,以及早于该行的提交数:如果仓库被清空或重写,会在此处显现,其比率也应据此解读。

无法检测的内容:行内补全(Copilot、Cursor Tab、Windsurf 等)产生的代码不会留下 git 记录,因此会归入未标记基线。未标记并不意味着认定代码由人类编写。没有尾注的提交属于 UNKNOWN。需要在一个文件中了解相同限制的 Agent,应阅读 causari.dev/llms.txt。根据方法 v1,格式化操作或函数移动都会被视为代码消失。一次大规模提交可能主导按行加权的比率;AI 标记提交少于 5 次时会标记提示。上述内容及对数字提出异议的方法均见 causari.dev/method。人们常问的问题、对应命令及其限制见:causari.dev/faq;此方法与 git blame、供应商仪表板和代码变更报告的区别见:causari.dev/compare。

每周发布的存续报告会对最多 100 个开源仓库运行 re audit:包括一份人工挑选的列表,以及获星数最多的公开仓库(至少 100 颗星)。GitHub 提交搜索必须能在这些仓库中找到至少 5 个带有相同 AI 作者身份元数据的提交。仓库由 scripts/survival_discover.py 按照方法页面所述规则,于每周报告发布前一天选出;数据行按字母顺序排列,在 .github/survival-optout.txt 中添加一行即可移除某个仓库。

在 CI 中:每个拉取请求都生成一份计数报告

# .github/workflows/causari.yml
on: pull_request
permissions: { contents: read, pull-requests: write }
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }      # the audit reads every commit; shallow clones are wrong
      - uses: croviatrust/causari@v1

Action 会下载预构建的 Linux 二进制文件(只需几秒),运行 re audit --summary, 将结果写入作业摘要,并为每个 PR 发布一条置顶评论。无需云服务, 也无需账户。实时示例。

账本:从“哪个提交”到“哪个提示词”

审计适用于任何历史记录。如果你还想知道某一行代码存在的原因 ——提示词、模型、Agent 读取的文件——Causari 会在 Agent 执行操作时, 将其记录到本地的仅追加账本(.causari/, 已加入 gitignore),并为每次操作保存操作前后的树快照。

re init                       # create .causari/ (added to .gitignore)
re hook claude-code           # record every Claude Code prompt and edit, exactly
re hook cursor                # same for Cursor, via its hooks.json (prompt, edit, model)
re proxy                      # local LLM proxy: prompts, models, tokens, cost
re watch                      # attribute file changes to captured completions

re why    src/auth.ts:42      # which recorded event introduced this line
re trace  src/auth.ts:42      # upstream: events that fed into it through reads/writes
re impact <event-id>          # downstream: what later events depended on it
re lens   src/auth.ts         # the file annotated line by line with its event
re find   "the JWT refactor"  # search prompts, messages, reasoning
re bisect --test "npm test"   # first recorded event that breaks a test
re revert <id>                # restore the pre-state, with a preview of what else you undo
re fork / re sessions / re switch / re log --all / re diff a..b
各个 Agent 目前实际提供的信息

声称“支持任何 Agent”很容易。这张表根据代码整理而成, 并会保持更新;如果某个单元格有误,请提交 issue。

Agent提示词 + 文件,精确记录模型、令牌、费用方式
Claude Code是,通过生命周期钩子暂不支持(编辑会以 tool_use 传递,代理目前尚未将其与文件关联)re hook claude-code
Aider通过启发式关联,经过测量是OPENAI_API_BASE / ANTHROPIC_API_BASE → re proxy + re watch
Codex CLI、OpenAI Agents SDK暂不支持(尚未解析 Responses API 输出)是OPENAI_BASE_URL → re proxy
Cursor是,通过原生钩子模型:是(钩子会标明模型);令牌和费用:否(Cursor 的模型调用不会经过 re proxy)re hook cursor
Windsurf、Copilot仅限 Agent 通过 MCP 自行报告的内容否re mcp
Cline / Roo、自定义脚本、curl如果补全内容包含代码文本,则通过启发式方式关联是基础 URL → re proxy + re watch

证据分为两类,每项输出都会标明所属类别:

  • 声明类(钩子、MCP、re record):Agent 声明了自己执行的操作。提示词和路径均精确记录。 如果有人在两个钩子事件之间编辑文件,钩子快照会将该编辑纳入下一个 Agent 事件——这是一个已知限制, 正在通过第 1 阶段修复。
  • 关联类(代理 + watch):系统会在稍早捕获的补全内容中搜索你插入的代码行。 这是一个分数,而非事实。examples/real-session/ 中的对抗性测试框架给出了测量结果:干净写入时为 100 %,经过格式化工具处理后为 50 %, 同一时间窗口内两个提示词修改同一文件时,逐行归属会出错。

所有内容都保留在你的机器上。re proxy 和钩子会将提示词、 补全内容和命令以明文形式存储在 .causari/ 下(已加入 gitignore);对于 可识别格式的凭据——sk-… 密钥、GitHub/GitLab/Slack/npm/PyPI/Hugging Face 令牌、AWS 和 Google 密钥、Bearer 值、JWT、PEM 私钥——写入前会将其 替换为 [redacted:<kind>],并在记录中注明替换数量。你粘贴的其他任何内容都会按原样保留。 快照会存储每个未被忽略的文件(默认排除 .env*、node_modules、target、dist、build、.git 和其他一些内容)。 请将 .causari/ 视为敏感数据。关于存储和不存储的内容,以及工具防护和不防护的内容: SECURITY.md 和 docs/threat-model.md。

可供验证的收据,无需依赖我们

Crovia Seals。 re proxy --seal 会为每次完成生成一份 crovia.seal.v1 收据:由 Ed25519 签名、采用哈希链,并承诺请求和响应原始字节的 SHA-256 哈希(内容不会离开本机)。每条记录的交互都带有其 seal_id 和相同的哈希,因此可以将收据与其涵盖的完成记录对应起来。该实现通过了参考一致性测试向量;可使用 Python 参考实现验证 seals,反之亦然。

re proxy --seal          # issue a receipt per completion
re seal verify           # every signature, whole chain, offline
re seal issuer           # your issuer id and public key (read-only)

PNX — 防数据外泄证明。 re proxy --pnx 会让代理成为 TACET 配置文件 crovia.pnx.v1 的出站流量见证:每个请求正文都会经过指纹处理(加盐 winnowing,k-gram 为 32,窗口为 16),并在转发前写入稀疏 Merkle 映射;按下 Ctrl-C 时会签署一份包含根哈希的运行记录。随后,re pnx prove 会针对一组受保护资产,证明它们与该流量没有任何长度达到或超过 47 字节的子串相同;若有,则会记录哪些资产相同。运行记录和证明都不包含流量字节或资产字节,并可使用 re pnx verify 离线验证,也可使用 Python 参考实现 tacet-pnx 验证,两者支持双向验证,判定结果和退出代码相同。运行记录还会说明此次运行连接到了哪里——代理转发到的每个上游及其在按哈希绑定的出站策略下的结果(可达性记录,PNX §4a);策略之外的目标会在正文离开前遭到拒绝。证明能说明和不能说明的内容:docs/pnx.md。

re proxy --pnx --pnx-policy egress-policy.json    # witness a session; upstreams outside the policy are refused; Ctrl-C signs the sheet
re pnx prove --asset api_key=.env --assets-dir src/secret/
re pnx verify .causari/pnx/<run>/proof.json --asset api_key=.env --assets-dir src/secret/ --policy egress-policy.json

审计 seals。 re audit --seal 会将审计结果写成同类收据:针对 re audit --json 的原始字节生成 crovia.seal.v1,并绑定到被审计的提交和方法版本;与代理的完成 seals 一样,同一存储库使用同一个签发密钥,并采用哈希链。re seal verify FILE 可离线验证;静态页面 causari.dev/verify 也可以验证,且不会发出网络请求。有效 seal 能证明此密钥为此提交的这些数字签了名,且这些数字此后未被篡改。但它不能证明这些数字属实:请在该提交上重新运行 re audit 并进行比较。(re proof 已弃用,改用此功能;该命令会以 2 退出并指出替代方案。)

re audit --seal --output audit.seal.json
re seal verify audit.seal.json
re audit --diff before.seal.json after.seal.json --summary

实验性

这些命令已实现,可在演示中运行,但尚未达到上述标准。在达到标准之前,它们不会纳入证明体系,也不会出现在首页上。

  • re skill distill / verify / export / import / pull / trust:带签名的过往工作单元。Ed25519 可检测后续编辑;签名并不为内容背书。verified 是在 distill 时冻结的声明信号(由调用方提供的退出代码 0,或声明的写入路径仍位于当前 tip),并非观察到的成功。2× 排名权重代表的是该声明信号,而非测得的可靠性。不会授予 proven。旧版 recall 计数不代表执行过。
  • re brief:为模型上下文生成过往工作的 Markdown 简报。
  • re guard:针对近期变更的子串规则;仅在要求时才会阻止构建(--fail-on alert|warning);面向机器的输出可用 --json。
  • re churn、re report:根据账本而非 git 衡量存续情况,并依据静态价格表推算成本;支持 re churn --json,以及团队可按需指定下限的 --fail-below <percent>。
  • re mcp:基于 stdio 的 MCP 服务,提供 causari_record、causari_recall、causari_why;re mcp --install 会输出客户端配置。

安装

# Linux / macOS
curl -fsSL https://causari.dev/install.sh | sh

# Windows (PowerShell)
irm https://causari.dev/install.ps1 | iex

# Homebrew (macOS, Linux)
brew install croviatrust/tap/causari

# Scoop (Windows)
scoop bucket add causari https://github.com/croviatrust/scoop-bucket && scoop install causari

# crates.io (Rust 1.85+)
cargo install causari --locked

# no install: launchers that fetch the verified binary on first run
npx causari audit
pipx run causari audit

# from source
cargo install --git https://github.com/croviatrust/causari --locked

一个程序有两个名称:causari 是二进制文件,re 是所有示例中使用的简称。每个压缩包都包含这两个名称,安装时也会安装两者。一个静态二进制文件,大小约为 5 MB,适用于 Linux(x86_64、aarch64)、macOS(x86_64、Apple silicon)和 Windows(x86_64),安装到 ~/.local/bin(或 %LOCALAPPDATA%\Programs\causari)。安装程序会将压缩包的 SHA-256 与每次发布时一同发布的 SHA256SUMS.txt 进行校验,若不匹配则拒绝安装。从 v0.2.0 起,每个压缩包和校验和文件都带有发布工作流签署的 SLSA 构建来源证明:

gh attestation verify causari-v0.5.0-x86_64-unknown-linux-gnu.tar.gz --repo croviatrust/causari

手动安装:

VERSION=$(curl -fsSL https://api.github.com/repos/croviatrust/causari/releases/latest | sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p')
TARGET=x86_64-unknown-linux-gnu
base="https://github.com/croviatrust/causari/releases/download/$VERSION"
curl -fsSLO "$base/causari-$VERSION-$TARGET.tar.gz" && curl -fsSLO "$base/SHA256SUMS.txt"
sha256sum --ignore-missing -c SHA256SUMS.txt && tar -xzf "causari-$VERSION-$TARGET.tar.gz" && install -m755 causari re ~/.local/bin/

Homebrew tap 和 Scoop bucket 会根据每次发布的 SHA256SUMS.txt 生成清单,并每六小时重新生成一次。该 crate 通过 crates.io Trusted Publishing 从发布标签发布(.github/workflows/publish-crate.yml):不存在长期有效的令牌。

作为 MCP 服务

re mcp 通过 stdio 使用 MCP,并提供 causari_record、causari_recall 和 causari_why;re mcp --install 会打印适用于 Claude Desktop、Cursor、Windsurf 和 Cline 的配置块。该服务根据 server.json 列入 MCP Registry:

  • MCP Registry 名称:mcp-name: io.github.croviatrust/causari
  • Cursor 一键安装:将 causari 添加到 Cursor (注册 re mcp;二进制文件必须位于 PATH 中)
在 Cursor 中

re hook cursor 会将七个命令钩子合并到项目的 .cursor/hooks.json 中(请提交该文件:队友和 Cursor 云端 Agent 会从仓库根目录运行它);--user 则改为合并到 ~/.cursor/hooks.json,仅用于当前机器;--dry-run 会打印结果。该文件中其他人编写的钩子会保留。每个钩子都会运行 re hook-event cursor:<event>,因此 Cursor 进程的 PATH 中必须包含 re(与 Claude Code 钩子的注意事项相同);如果没有 re,或项目未运行 re init,每个钩子都会返回一个中性的 JSON 对象,不记录任何内容。写入日志的内容包括:带附件和模型信息的提示词(beforeSubmitPrompt)、每次 shell 或写入工具调用前的快照(preToolUse)、每个写入文件的一个事件(afterFileEdit)以及每条更改了工作树的命令的一个事件(afterShellExecution)、与提示词相邻的 Agent 回复(afterAgentResponse),以及作为上下文的经验简报(sessionStart)。

作为 Claude Code 插件

该仓库同时也是一个插件市场。在 Claude Code 中:

/plugin marketplace add croviatrust/causari
/plugin install causari@croviatrust

该插件会安装 re hook claude-code 手动写入的四个钩子(提示词、前置状态、后置状态、会话简报)、MCP 服务,以及一个告知模型何时应使用 why、trace、recall 和 record 工具的技能。它需要 PATH 中包含 re 二进制文件;如果没有 re,或项目未运行 re init,每个钩子都会静默地不执行任何操作。

演示:scripts/demo*.sh|ps1(包含模拟 LLM)、examples/real-session/(对抗性测试框架)、scripts/recovery_lab.py(revert/bisect 压力测试实验室)。

工作原理,一段话说明

每个记录的事件都是一个内容寻址对象(BLAKE3),包含前后工作树、Agent、模型和工具、提示词、声明的读取和写入、令牌数与成本,以及一个父对象。会话是引用;分支是隐式的。re why 会在当前链上找到第一个通过前后差异插入该行的事件;re trace 会从该处开始,沿读取和写入关系向后追溯;re impact 则向前追踪。未更改的文件会在快照之间共享 blob。完整设计及其当前限制见 docs/review-2026-09-20/。

未来方向

Causari 不与来源追踪工具(Agent Trace、git-ai、Assisted-by: trailers、Entire 检查点)竞争。它会读取这些工具留下的元数据,使用公开方法进行测量,并为结果签名,以便第三方离线验证。

已在发布的二进制文件 0.5.0、方法 v6(2026-10-21)和本源代码中完成:git blame -w -M -C、每个提交的上限、v4 git-ai 规则、审计封印、v5 的 HEAD 树读取和 git log --numstat -M -z、coverage.copy_capped_lines、签名的 coverage.notes_oid 和 coverage.ignore_revs_sha256、单轴上的 re audit --diff,以及 v6 规则:只对 numstat 统计过的路径运行 blame,因此二进制 blob 不计入任一统计。代理也已完成:PNX 见证模式。对于它看到的请求正文,证明可以表明指定资产与这些流量没有共享任何 47 字节子串。但这并不能证明会话没有建立其他连接。

接下来:Agent Trace 读取器,以及一个软件包版本与方法版本配对一致的发布版本。

阶段和退出标准:ROADMAP.md。

家族

Causari 是 Crovia 的一部分,用三种时态表达同一套语法:TACET 证明模型的公开卡片在被观察的数小时内没有披露训练数据;PNX 显示指定资产与见证者看到的请求正文没有共享任何长子串(并不意味着任务没有建立其他连接);Causari 记录运行时声明了什么,并测量来自 AI 标记提交的代码行是否仍在 HEAD 中。处处遵循同一套规则:结果可复现、不作判断、无需我们的服务器即可验证、先说明限制。

在 Crovia 正典中的角色——同系列产品:git 元数据审计和本地账本。封印用于验证某个提交和某种方法对应的字节;它不验证事实本身,也不验证是谁输入了某一行。它是 Agent 完成结果和审计结果的封印签发方。

许可证

Apache-2.0(见 LICENSE)。“Causari”是 Crovia Trust 的商标;许可证不授予商标权(见 NOTICE)。有关贡献,请参阅 CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

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

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