
ACR — Agent Composition Records
io.github.TethralAI由 GitHub 账号 TethralAI 发布v2.1.1更新于 Oct 24, 2026
Interaction profile registry for AI agents. Log interactions, query behavioral lenses.
概览
本地 MCP 服务器,让 AI 代理读取自己的 ACR 交互画像、记录工具调用回执并查看异常通知。
- 可以做什么
- 记录带丰富字段的交互,例如重试次数、调用链 ID 和 token 用量,并按 README 的 SDK 方式注册代理组成。查询摩擦透镜,了解时间和 token 花在哪里,并获取会话结束摘要。读取身份、仪表盘链接和注册状态,并获得状态感知的下一步指引。获取代理已声明组件相关的未读异常信号通知。通过环境变量可启用次级透镜、组成管理、技能注册表和网络视图等扩展工具集。
- 适用场景
- 适合已经运行 ACR 采集钩子或 SDK、并希望代理在会话中自行查询行为画像、记录钩子看不到的更丰富信号或检查异常通知的场景。如果只需要会话结束时的终端卡片,则不必安装。
- 运行要求
- 通过 stdio 在本机运行,通常用 npx 启动已发布的 npm 包,因此需要 Node.js。环境变量 ACR_API_URL 指定 API 端点,默认指向托管的 ACR 服务,因此需要能访问该服务的网络。钩子与 MCP 共用同一身份文件;README 称无需账号或 API 密钥。ACR_ADVANCED 可启用更大的工具集。
安装
在 SourceWeft 中
- 打开 控制台中的 ACR — Agent Composition Records,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
ACR — Agent Composition Records
A behavioral registry for AI agents. ACR captures every external tool call your agent makes, compiles those signals into an interaction profile, and shows you where the time went — starting with a readout card at the end of every session.
Get started (60 seconds, Claude Code)
That's the whole setup. The hook mints an identity for your agent (no account, no API key to manage), wires itself into Claude Code's tool hooks, and captures every tool call automatically. When your next session ends, a card prints in your terminal:
Uninstall any time with acr-hook remove (restores your settings backup).
What ACR is
ACR is an interaction profile registry. Agents log what they do (tool calls, API requests, MCP interactions); those signals compile into a behavioral profile you query through lenses — each lens a different way of reading the same underlying receipts.
The friction lens is the first one shipped: per-target latency and failure breakdowns, time sinks, trend against your own history. More lenses exist for coverage, revealed preference (declared vs actually-used composition), failures, trends, and stability.
ACR is not a security product. It doesn't evaluate skills, test for compromise, or block anything. It records events and propagates notifications: if the network observes anomaly signals on a component in your agent's composition, your agent gets a notification. You decide if it matters.
What works today vs. what grows with the network
ACR is honest about its own maturity. Every lens tells you which of three states it's in: real data, not-enough-data (with the action that changes it), or degraded (a query failed — rendered as unavailable, never as a healthy zero).
Works on day one, fleet of one:
- Automatic capture of every tool call (timing, status, target) via the hook
- The friction lens on your own data: time sinks, per-target latency/failure, session cards
- Trend against your own history (this week vs last)
- Coverage: which signals you're populating, and which lenses that unlocks
Lights up as the network grows (population features are gated on a minimum of 5 persistent agents per target — below that, lenses say "you are the baseline" instead of inventing a comparison):
- Population baselines ("42% slower than the network on
api:openai.com") - Network status: system health across the fleet, worst-first
- Anomaly signal notifications: ≥3 distinct agents reporting anomalies on ≥20 interactions of a component you declare → you get notified
What the hook cannot see (and the lenses say so instead of showing zeros):
- Deep failures — the hook observes surface errors only; network/timeout/auth failures that never reach the tool-result boundary don't appear.
0 failuresmeans0 visible failures. - Retry counts, queue wait, chain structure, token usage — only agents that call
log_interactionwith those fields populate them. Hook-only profiles render those sections as n/a, not as clean zeros.
Add the MCP server (optional, for querying lenses from inside your agent)
The hook captures; the MCP server lets your agent read its own profile and log richer signals. One command in Claude Code:
Or for any MCP client (Cursor, Continue, Claude Desktop, etc.):
The hook and the MCP share the same identity file — either bootstraps the other. Not sure where to start? Call orient_me.
Core MCP tools
These seven are the whole default surface — deliberately small, because every tool schema costs context in the host agent's window. The full 29-tool set (secondary lenses like get_coverage/get_trend/get_revealed_preference/get_stable_corridors, composition management, the skill registry, watches, network views) enables with one env var in your MCP config:
orient_me and get_my_agent tell the model the advanced set exists, so nothing is hidden — just not paid for by default.
Add to any agent (SDK)
Anomaly signal notifications
An anomaly signal is a behavioral pattern observed across multiple unrelated agents — not a security alert. When you register (or update your composition), ACR subscribes you to the components you declare. If the network later observes elevated anomaly signals on one of them — at least 3 distinct reporting agents across at least 20 interactions — a notification is delivered to your agent:
This path is exercised end-to-end in CI (see scripts/db-contract-test.mjs): seeded anomaly reports on a subscribed skill must produce a notification, or the build fails. ACR doesn't track the human behind an agent, so notifications reach the agent, not the owner.
The skill registry
ACR observes skills that already exist in public registries (npm, GitHub) and tracks behavioral signals tied to them: adoption counts, anomaly signals, version history. It is not a catalog you install from and not a security check — it records what the network observed. Search ranks signal-bearing skills first; catalog entries without a usable identity are rejected at crawl time.
Architecture
Data collection
ACR collects interaction metadata only: target system names, timing, status, chain context, and provider class. No request/response content, API keys, prompts, or PII. Your interaction profile is visible only to you; population baselines use aggregate statistics over persistent agents.
What we collect: target system names (mcp:github, api:stripe.com), interaction timing (duration, timestamps, queue wait, retry count), interaction status, agent provider class, composition hashes (SHA-256 of SKILL.md content), chain context, agent-reported anomaly flags (category only).
What we do NOT collect: request/response payloads, credentials, prompts or completions, PII, file contents, or the identity of the human behind the agent.
Retention (enforced by the scheduled data-archival and agent-expiration jobs): interaction receipts 90 days then archived to daily summaries; notifications 90 days; agent registrations soft-expired after 90 days of inactivity; skill observation data retained while the skill is observed.
Third-party sharing: none. Contact: [email protected] · Full terms
Test harnesses
The db-contract harness exists because unit tests mock the database while production runs CockroachDB — dialect differences broke the same lens query three separate times before it was added. Every lens route must return 200, non-degraded, and counts that match the seeded data; the notification promise is asserted end-to-end.
Development
Release rule: changing packages/mcp-server, packages/acr-hook, or an SDK requires a version bump (PR CI enforces it), and merges to master auto-publish any bumped package. A merged fix that never ships to npm is a fix that never happened.
Optional: dogfood ACR while working on this repo. Copy .mcp.json.example to .mcp.json and any MCP-aware client opening this directory will load the published @tethral/acr-mcp. Opt-in by design: .mcp.json is gitignored so contributors are never enrolled implicitly. To test local MCP changes, point command at node and args at ./packages/mcp-server/dist/cli/stdio.js after pnpm build.
License
MIT
Links
- API: https://acr.nfkey.ai
- npm (hook): @tethral/acr-hook
- npm (MCP): @tethral/acr-mcp
- npm (SDK): @tethral/acr-sdk
- PyPI: tethral-acr
来源:README.md,提交 df9fad7
工具
0版本历史
1- v2.1.1最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分