mcpField
U
UNITARES

UNITARES

本地服务
cirwel.org记忆与知识5今天更新

关于 UNITARES

UNITARES 是面向跨运行环境管理长期运行 Agent 的可自托管问责基础设施。共享记录关联主张、证据、审查、结果与进程沿袭,让 Agent 在重启或交接后重建工作脉络。

主要功能

  1. 01持久化的 Agent 工作共享记录
  2. 02主张与证据及更正相互关联
  3. 03进程身份与后继沿袭
  4. 04受治理的审查和结果记录
  5. 05提供继续、引导或暂停的运行策略
  6. 06可选连接模型提供第二意见

适用场景

  1. 01Agent 重启后找回先前发现
  2. 02在不同 Agent 或运行环境间交接工作
  3. 03追溯既有决策所依据的证据
  4. 04将测试结果关联到先前签到

MCP 相关

Agent 和模型通过 MCP 或 HTTP 连接自托管服务,写入和读取共享记录。它负责问责记录,不充当 Agent 之间的传输层。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

UNITARES
面向长时间运行 AI Agent 的问责基础设施。

由你自托管、供 Agent 写入的记录。重启或交接后,下一个 Agent 可以查明谁提出了什么主张、依据是什么、谁提出了异议,以及后来被什么取代。

Tests Python License DOI Glama score

Agent 的工作往往会延续到启动它的进程结束之后。编码会话重启,研究 Agent 丢失上下文,任务转移到另一个运行时。日志会显示每次运行,却无法串起它们。没有这条脉络,下一个 Agent 可能重走失败的路、依据已纠正的主张采取行动,或丢失早前决策的证据。

UNITARES 是一项由你运行、用来维系这条脉络的服务。任何支持 MCP 或 HTTP 的 Agent 或模型都能连接(已提供 Claude Code、Codex 和 Hermes Agent 的集成),并将发现、评审和结果写入一份由操作者掌控的记录。之后的 Agent,或你自己,都可以读取记录,了解每条信息的来源。

这份记录能回答什么

问题机制
是谁说的?身份与沿袭:每次写入记录的操作都与执行该操作的进程绑定,后继进程可以声明自己延续了哪个进程。
有什么依据?主张与证据:发现会保留其来源和更正,不受单个上下文窗口限制。较新的发现取代较旧发现时,较旧的发现会链接到新发现。
谁提出了质疑?受治理的评审:异议、条件及其解决情况会保留在相关工作中。请求评审不等于通过评审。
结果如何?结果溯源:测试、构建和任务结果会与预测这些结果的签到记录关联。
后继进程能恢复什么?重建:新进程可以在采取行动前搜索或导出以往的发现、尚未解决的评审条件和结果。

记录之外还有两项功能。运行时策略:每次签到都会返回 proceed、guide 或 pause,并说明原因;暂停会拒绝该进程的签到和新发现,直到评审或恢复操作解除暂停,或暂停过期。第二意见:配置后,consult 会询问另一个已连接的模型(本地 Ollama、vLLM、LM Studio 或 llama.cpp,或通过编排器连接的 Claude、Codex 和 Antigravity),并将答复与任务一并保存。

看看它如何运作

Agent A(Codex)发现一个 bug,将其记录下来后退出。Agent B(Claude Code)之后找到真正原因,并记录一条取代 A 的发现。重启后,Agent C(Hermes Agent)接手 A 的任务;在查看代码之前,它先读取记录(读取无需身份):搜索结果显示 A 的发现已被取代,并附有指向 B 的链接。随后,C 声明自己延续了 A 的任务。

# Agent A (Codex)
start_session  {"force_new": true}                                     -> agent A's id
store_finding  {"summary": "upload retry test is flaky", ...}           -> finding a
record_result  {"outcome_type": "test_failed", ...}

# Agent B (Claude Code), in its own session, later
start_session  {"force_new": true}                                     -> agent B's id
store_finding  {"summary": "upload retry fails on clock skew", ...}     -> finding b
use_tool       {"tool_name": "knowledge", "arguments": {"action": "supersede", "discovery_id": "<b>", "supersedes_id": "<a>"}, ...}

# Agent C (Hermes Agent), after A's restart
search_shared_memory {"query": "upload retry test"}   -> finding a (superseded, points to b), finding b
start_session  {"force_new": true, "parent_agent_id": "<A's id>", "spawn_reason": "explicit"}

没有机制强制 Agent 读取记录;Claude Code 和 Codex 插件会在会话启动时引导 Agent 查看记录。更简单的逐步交接示例:捕获两个进程的演练。

安装

Homebrew 预览版,推荐用于 Apple Silicon 桌面 Mac:cirwel/unitares tap 会原生安装这些服务;请按照其安装和首次设置说明操作。 打包的 unitares update 会协调写入器关闭、验证备份、迁移、恢复先前状态,并在写入器重启时进行深度健康检查(若写入器仍处于停止状态,则进行架构验证);早于此功能的 keg 请使用 tap 的一次性手动迁移流程。 在 tap 支持从源码构建且仅支持 Apple Silicon macOS 期间,预览版标签会保留。

Docker Compose,适用于任何平台:安装 Git、curl 和 Docker Compose 后,只需运行一条命令即可启动本地堆栈的最新已发布版本(包括服务端、带有 AGE 和 pgvector 的 PostgreSQL、Redis 和协调平面;添加 docker-compose.full.yml 可启用本地语义搜索和混合排序,或使用核心配置仅运行前两项):

v=$(curl -fsSL https://raw.githubusercontent.com/cirwel/unitares/master/PUBLISHED_VERSION) && git clone --branch "v$v" --depth 1 https://github.com/cirwel/unitares.git && cd unitares && docker compose up -d --wait
  • **端点和更新:**在 http://localhost:8767/mcp/ 连接 MCP 客户端,或在 http://localhost:8767/dashboard 打开仪表板(Docker 快速入门)。使用 Docker 时,./scripts/unitares update 会备份数据库、应用迁移并验证深度健康状态(更新)。
  • **每台机器仅运行一个堆栈:**Docker 和 Homebrew 使用各自独立的数据(安装选项)。容器名称是固定的,因此启动另一个实例前,请在先前的检出目录中运行 docker compose down(不要加 -v)(仅运行 stop 不够,因为停止的容器仍会占用固定的 container_name 值,而且 Docker 守护进程重启时,restart: unless-stopped 会重新启动未停止的容器);或者使用托管启动器(scripts/install/launch.sh),它会先检查所有权。

连接你的 Agent 和模型(集成 Agent):

  • Claude Code 和 Codex:unitares-governance-plugin 接入 MCP、生命周期钩子、技能和逐文件编辑租约(通过堆栈的租约平面实现,因此在同一检出目录中并发工作时,不会覆盖其他 Agent 的文件)。
  • Hermes Agent 和兼容 OpenAI 的客户端:主机适配器。
  • 其他任何 Agent、模型或托管连接器:Streamable HTTP MCP(仅支持 stdio 的客户端可使用 npx mcp-remote;托管连接器,例如 Claude.ai 和 ChatGPT,可在专用公共监听器上使用 Bearer / OAuth)、Python SDK(pip install unitares-sdk)或常驻 Agent 运行时。
  • **可选的服务端模型(选择模型):**默认不会配置模型连接;核心记录功能无需模型或 API 密钥即可运行。运行 ./scripts/unitares model,连接本地兼容 OpenAI 的服务端(Ollama、vLLM、LM Studio、llama.cpp),用于 consult 和进程内审查;也可以添加Agent 编排器,进行跨系列 CLI 审查。

适用对象

适用于管理多个长期运行的 AI Agent、跨供应商并部署在自己掌控的基础设施上的运营者;他们需要 Agent 共享的工作记录在重启和交接后仍然保留。

如果你的 Agent 都在同一个代码仓库中工作,git 和问题跟踪器可能就够用了。UNITARES 面向跨运行时、生命周期超出任何单个代码仓库或会话的工作。

它不是沙箱、输出验证器或托管式 Agent 平台。它与评估和防护机制并行运行,不会取代它们。它不会运行 Agent 的循环:插件的钩子和编辑租约会围绕 Agent 的工作进行协调;暂停时,仅拒绝该进程的签到和新发现。

工作原理

UNITARES 是面向管理多个 AI Agent 的运营者的可自托管问责基础设施。其单运营者联邦内核通过 MCP 或 HTTP 将独立运行时连接到一个由运营者掌控的服务器,让它们共享持久记录,同时保留各自的模型、工具和运行时。它们通过各自的传输方式或 A2A 彼此协作;UNITARES 是它们背后的记录系统,而不是它们之间的传输方式。总的来说,这为编码、研究、后台和常驻 Agent 提供了由运营者掌控的问责层。相比活动日志,它还增加了溯源和取代关系:主张与证据、评审和结果始终与记录它们的进程绑定;被取代的主张会指向替代它的主张,便于评审和日后重建。

存储使用 PostgreSQL 和 Redis,不需要外部模型 API。快速入门运行 AGE 后端,用于存储各项发现之间的关联;纯 postgres 后端没有取代关系链接,且仅支持全文搜索。签到时的策略动作来自行为状态估计,这是一种运行时本体感觉。

各项主张已通过测量验证的能力,以及尚未测量的内容,详见证据与局限和评审指南。

从这里开始

目标指南
试用安装 → 双进程演练
连接 Agent 或应用程序MCP 集成 · Python SDK
运维部署运营者手册
了解产品和架构产品定义 · 架构
相关研究证据与局限 · 论文 · 公开数据集
参与贡献贡献指南 · 开发指南
其他内容文档索引

引用和许可证

Kenny Wang(ORCID 0009-0006-7544-2374), CIRWEL Systems。版本化引用请参见 CITATION.cff。

@misc{wang2026unitares,
  author = {Wang, Kenny},
  title  = {{UNITARES}: Information-Theoretic Governance of Heterogeneous Agent Fleets},
  year   = {2026},
  doi    = {10.5281/zenodo.19647159}
}

Apache License 2.0。请参见 LICENSE 和 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

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

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