
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 分