关于 acmi-mcp
acmi-mcp 是面向多 Agent 系统的持久上下文 MCP 服务,以 Profile、Signals 和 Timeline 组织实体记忆,并支持可追踪的协作事件。
主要功能
- 01Profile、Signals、Timeline 三类记忆
- 02支持 Upstash Redis 存储
- 03记录带关联信息的事件时间线
- 04支持唤醒指令与交接确认
适用场景
- 01跨会话保留 Agent 身份与偏好
- 02跟踪 Agent 当前状态和阻塞项
- 03审计多 Agent 协作与任务交接
MCP 相关
该项目提供 MCP 服务,让 MCP 客户端直接访问 ACMI 上下文。README 提到 16 个工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
服务地址
https://server.smithery.ai/@madezmediapartners/acmi-mcp/mcp一键复制安装命令
Claude CodeTerminal
claude mcp add --transport http madezmedia-acmi https://server.smithery.ai/@madezmediapartners/acmi-mcp/mcpCursor.cursor/mcp.json
{"mcpServers":{"madezmedia-acmi":{"type":"http","url":"https://server.smithery.ai/@madezmediapartners/acmi-mcp/mcp"}}}在 Cursor 中打开VS Code.vscode/mcp.json
{"servers":{"madezmedia-acmi":{"type":"http","url":"https://server.smithery.ai/@madezmediapartners/acmi-mcp/mcp"}}}在 VS Code 中打开Claude Desktopclaude_desktop_config.json
{"mcpServers":{"madezmedia-acmi":{"type":"http","url":"https://server.smithery.ai/@madezmediapartners/acmi-mcp/mcp"}}}Windsurf~/.codeium/windsurf/mcp_config.json
{"mcpServers":{"madezmedia-acmi":{"serverUrl":"https://server.smithery.ai/@madezmediapartners/acmi-mcp/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
ACMI - Agentic Context Memory Interface
AI Agent 集群的协调骨干。三个 Redis 键——Profile、Signals、Timeline。
ACMI 是用于持久化 Agent 上下文的开放协议。v1.5 版本正式确立了集群通信协议:原子化的前置/后置事件、唤醒指令、交接确认链,以及支持关联追踪的时间线,让多 Agent 协作可审计,而不只是道听途说。
每个实体都恰好存储大模型做出决策所需的三项内容:
Profile -> who (identity, preferences, stable facts)
Signals -> now (current state, blockers, next action)
Timeline -> then (append-only event log from every source)
其结构刻意保持精简:
- Profile:稳定的身份与配置。
- Signals:可变状态与合成的工作记忆。
- Timeline:按时间排序的不可变历史记录。
此仓库提供公开的 ACMI 包、MCP 服务子包,以及确保集群保持步调一致的文档:
@madezmedia/acmi- TypeScript SDK、命令行工具和一致性测试套件。mcp/-@madezmedia/acmi-mcp,供需要直接访问 ACMI 的宿主使用的 MCP 服务。SPEC.md- 规范协议说明。CHANGELOG.md- 版本历史,包括v1.5.0集群通信更新。docs/- 运维指南、速查表和协议说明。
v1.5 新增内容
v1.5.0 版本通过共享的事件语言,让集群保持一致:
- 原子化提交前置/后置事件
- 圆桌协调与唤醒指令
source、kind、correlationId、summary事件封装规范- 执行操作前检查信号的新鲜度
- 在整个集群中使用
agent:<id>作为来源名称
安装
npm install @madezmedia/acmi
快速开始
import { createAcmi } from "@madezmedia/acmi";
import { InMemoryAdapter } from "@madezmedia/acmi/adapters/in-memory";
const acmi = createAcmi(new InMemoryAdapter());
await acmi.profile.set("user:mikey", {
name: "Michael Shaw",
role: "operator",
location: "Charlotte, NC, USA",
});
await acmi.signals.set("user:mikey", "current_focus", "ACMI v1.5 fleet sync");
await acmi.timeline.append("user:mikey", {
ts: Date.now(),
source: "user:mikey",
kind: "coord-note",
correlationId: "acmiReadmeRefresh-0001",
summary: "[coord-note @fleet] README aligned to v1.5 and local assets.",
});
生产适配器
import { createAcmi } from "@madezmedia/acmi";
import { UpstashAdapter } from "@madezmedia/acmi/adapters/upstash";
const acmi = createAcmi(
new UpstashAdapter({
url: process.env.UPSTASH_REDIS_REST_URL!,
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
})
);
| 适配器 | 用例 | 兼容边缘环境 |
|---|---|---|
@madezmedia/acmi/adapters/in-memory | 测试、示例、本地开发 | 不适用 |
@madezmedia/acmi/adapters/upstash | Vercel、Workers、边缘运行时 | 是 |
@madezmedia/acmi/adapters/redis | 自托管 Redis / Node | 否 |
集群协议
ACMI v1.5 使用共享事件格式,以便追踪每个重要操作:
{
"ts": 1780000000000,
"source": "agent:codex",
"kind": "handoff-ack",
"correlationId": "codexGrantDraft-1780000000000",
"summary": "[handoff-ack @ops-center] Draft ready for review."
}
实践中需要遵守的规则:
- 在摘要中使用
[kind-tag @recipient] - 确保
source以agent:、user:或system:为前缀 - 使用
parentCorrelationId关联后续事件 - 保持时间线只追加,不修改
- 工作流依赖当前状态时,执行操作前先验证信号
相关页面
集群成员
ACMI 在 Mad EZ Media 集群中用作通用上下文层,服务于:
ops-center- 编排与路由bentley- 通信与治理codex- 编码与实现支持hermes- 深度扫描与守护检查android-worker- 移动桥接与通知
许可证
MIT - 版权所有 Michael Shaw / Mad EZ Media
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。