mcpField
P
priostack

priostack

已认证精选远程服务
priostack.com记忆与知识27 周前更新

关于 priostack

priostack 是面向 AI Agent 的长期记忆与多 Agent 上下文共享 MCP 服务,并提供 Python SDK 及多语言客户端。它以网络资源组织记忆,支持类型化事实和可撤销的分级访问授权。

主要功能

  1. 01跨模型长期记忆
  2. 02Agent 自助注册与会话管理
  3. 03存储及读取类型化事实
  4. 04按权限共享上下文空间
  5. 05撤销访问授权

适用场景

  1. 01在多次运行间保留 Agent 记忆
  2. 02让多个 Agent 按权限共享上下文
  3. 03用 Python SDK 接入记忆服务

MCP 相关

作为 MCP 服务,通过 JSON-RPC 2.0 提供 Agent 注册、上下文空间、事实存取和访问授权等工具。MCP 客户端可通过 Streamable HTTP URL 连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://priostack.com/acn/rpc
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

42
参数类型必填说明
actorstring否
tokenstring否
maxResponseTokensinteger否

详细介绍

⚡ Priostack 智能体上下文网络(ACN)

通过 MCP 实现零配置、模型无关的长期记忆和多智能体上下文共享。

PyPI 版本 CI 许可证:MIT

Priostack ACN 将 Agent 的长期记忆视为一种网络资源,而不是附属于某个大模型供应商的功能。它是一个通过 JSON-RPC 2.0 访问的**模型上下文协议(MCP)**服务,Agent 可以自行注册、维护彼此隔离的上下文空间、存储类型化事实、读取事实,并通过范围受限且可撤销的能力授权与其他 Agent 共享这些事实。

公共服务已上线,地址为 https://priostack.com/mcp(可发现的 Streamable-HTTP MCP 端点;https://priostack.com/acn/rpc 是可用的别名)。


🔥 它能为你提供什么

  • 🤖 零配置接入 — Agent 通过 noetic.register 自行注册并获取 bearer 令牌。无需控制面板、无需 UI、无需信用卡。
  • 🌐 模型无关的记忆 — 同一上下文可供 OpenAI、Anthropic 或本地模型 Agent 使用;记忆与模型解耦。
  • 🤝 范围受限的多智能体共享 — 授予另一个 Agent 对某个空间的明确内容权限(read、quote、write、share、export 等),或允许它通过 request_access 请求访问并批准请求。授权可撤销,且仅向前生效。
  • 🧠 类型化事实 — 存储 declaration(规则/政策)、observation(测量事实)和 measurement,将“所声称的内容”与“所观察到的内容”区分开来。
  • 🔌 原生 MCP — 通过 URL 连接 Claude Desktop、Cursor 或任何 MCP 客户端,也可以使用下方的 SDK。

🚀 快速开始(Python)

pip install priostack
from priostack import ACNClient

with ACNClient() as acn:                       # defaults to https://priostack.com/mcp
    acn.register(display_name="my-agent")      # self-register; token captured on the client
    acn.connect()                              # open a session; session id captured internally

    space = acn.create_space(display_name="prod-memory")
    acn.store(space.space_id, objects=[
        {"content": "Refunds over $500 require manager approval.", "type": "declaration"},
        {"content": "Export pipeline latency was 1.8s at 14:02 UTC.", "type": "observation"},
    ])

    hits = acn.fetch(space.space_id, query="refund")   # substring content reader
    for content in hits.contents():
        print(content)

持久保存令牌。 register() 返回一个仅显示一次的 bearer 令牌。请保存它和空间 ID,之后使用 ACNClient(token=...) 重新连接,而不要再次注册。

examples/ 中还有更多可运行示例:多智能体共享、 请求并批准访问、 获取并召回、 撤销并轮换,以及用于 LangChain、CrewAI 和 Claude Agent 的记忆集成。

每个示例都会读取 PRIOSTACK_ENDPOINT,因此只需导出一个变量,就能将它们全部指向可自托管节点、暂存节点或本地节点:

export PRIOSTACK_ENDPOINT=http://127.0.0.1:8091/rpc

🧩 Agent 框架快速开始

每个示例都包含完整流程——注册、创建空间、存储、与第二个 Agent 共享、再读取回来——并且都可以独立运行:ACN 调用会实际执行;如果未安装框架(或大模型密钥),则会显示消息并跳过框架部分。

框架快速开始展示内容
CrewAIexamples/crewai_quickstart.py每个团队成员都有自己的 ACN 身份;研究员拥有该空间,并授予写作者 read + quote 权限
LangGraphexamples/langgraph_quickstart.py持续时间超过图运行的记忆——第 2 次运行会根据第 1 次运行存储的内容作答——随后向审阅者 Agent 授予同一空间的 read 权限
AutoGenexamples/autogen_quickstart.py拉取握手流程:分析员发现一个已发布的空间,说明理由并请求 read 权限,归档员随后批准请求
pip install priostack
python examples/crewai_quickstart.py          # works with or without crewai installed

🤝 多 Agent 上下文共享

所有者向另一个 Agent 授予对某个空间的指定范围访问权限。授权对象是被授权者的 Agent ID(由 register() 返回),被授权者随后必须重新连接,才能获取扩大的权限范围。

# Owner stores knowledge and grants read + quote to a worker agent.
grant = owner.grant_access(space.space_id, worker_agent_id, rights=["read", "quote"])

worker.connect()                       # reconnect to apply the grant
print(worker.fetch(space.space_id, query="refund").contents())

owner.revoke_access(grant.capability_ref)   # immediate, forward-only

更偏好拉取模式?使用者调用 request_access(space_id, rights=["read"]),所有者调用 list_requests() 和 approve_request(request_id)。请参阅 examples/request_and_approve.py。


🌍 支持 15 种语言的 SDK

Python 是参考 SDK(位于此仓库根目录,可在 PyPI 上获取)。另外 14 种语言的惯用客户端位于 clients/ 下,各自带有快速入门指南和 README,并且都实现了完全相同的传输协议(clients/SPEC.md)。

语言路径HTTP + JSON 技术栈
Python/ · PyPI priostackrequests
JavaScript (Node ≥20)clients/javascript内置 fetch
TypeScriptclients/typescript全局 fetch(带类型)
Java (Maven)clients/javajava.net.http + Jackson
Goclients/go标准库 net/http
C# / .NET 8clients/csharpHttpClient + System.Text.Json
PHP (Composer)clients/phpcurl
Rubyclients/ruby标准库 net/http
Rustclients/rustreqwest + serde
Kotlin (Gradle)clients/kotlinjava.net.http
Swift (SwiftPM)clients/swiftURLSession + Codable
C++17clients/cpplibcurl + nlohmann/json
Dartclients/dartpackage:http
Scalaclients/scalajava.net.http + uPickle
Shellclients/shellcurl + jq

每个客户端都附带两个快速入门:一个单 Agent 版本(注册 → 创建空间 → 存储 → 获取),以及一个共享版本(share_quickstart — 两个 Agent、一个空间、显式授权,然后撤销),因为一个只和自己通信的 Agent 并没有在使用网络。

每个客户端都会解包 MCP 信封、捕获会话 ID、在工具拒绝请求时抛出类型化错误,并复用一个 HTTP 连接。所有 15 个共享快速入门都已针对运行中的 ACN 节点完成端到端测试——包括注册两个 Agent、授权、读取和撤销;每个客户端也都能在 CI 中构建(参见 .github/workflows/ci.yml)。


🛠️ 从 MCP 客户端使用(Claude Desktop、Cursor)

ACN 是一个可发现的 Streamable-HTTP MCP 服务,因此 MCP 客户端通过 URL 连接。现成配置位于 examples/mcp_config/。

Claude Desktop(Settings → Developer → Edit Config),通过 mcp-remote 桥接:

{
  "mcpServers": {
    "priostack-acn": { "command": "npx", "args": ["-y", "mcp-remote", "https://priostack.com/mcp"] }
  }
}

Cursor(通过 URL 原生连接远程 MCP):

{ "mcpServers": { "priostack-acn": { "url": "https://priostack.com/mcp" } } }

自行检查服务发现:

curl -s https://priostack.com/mcp -H 'Content-Type: application/json' -H 'Accept: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools | length'

📖 API 参考(JSON-RPC 2.0)

端点:https://priostack.com/mcp(别名:https://priostack.com/acn/rpc)。

每次调用都是一个 tools/call:

{"jsonrpc":"2.0","id":1,"method":"tools/call",
 "params":{"name":"noetic.store","arguments":{ "sessionId":"...", "space":"space-1", "objects":[...] }}}

响应会将结果封装为文本;使用 JSON.parse(response.result.content[0].text) 解析,即可获得 {ok, outcome, data, detail?}。当 ok:false 时,outcome 的值为 not-found、invalid-query、capability-denied、policy-denied、 requires-governance、stale-base、integrity-fault、conflict、capacity-exhausted、 not-implemented。(上述所有 SDK 都会为你完成解析和错误映射。)

方法用途关键参数备注
noetic.register为 Agent 自行注册displayName返回 data.token(仅显示一次)
noetic.connect开启会话token、maxResponseTokens返回 data.SessionID(PascalCase)
noetic.create_space创建上下文空间sessionId、displayName、defaultRights返回 data.spaceId
noetic.store保存类型化事实sessionId、space、objects[]type ∈ declaration | observation | measurement
noetic.fetch读取已存储的内容sessionId、space、query、limit子串筛选;这是读取工具
noetic.grant授予限定范围的访问权限sessionId、subjectPrincipal、resource、rights[]、worldMutation空间参数为 resource;被授权者需重新连接
noetic.revoke撤销一项能力sessionId、capabilityRef立即生效,且仅影响未来
noetic.request_access请求访问权限sessionId、space、rights[]、reason权限参数为 rights
noetic.list_requests列出待处理请求sessionId所有者端
noetic.approve_request批准请求sessionId、requestId、rights[]创建授权
noetic.discover列出公开空间query、limit无需会话
noetic.metrics查看会话用量sessionId账户和空间指标
noetic.rotate_token生成新令牌sessionId使旧令牌失效
noetic.disconnect结束会话sessionId保留持久化事实

fetch 与 query 的区别: noetic.fetch 返回已存储的内容(按子串筛选)。noetic.query 是对记忆进行几何偏差探测,而非读取内容;不要用它来读取事实。

总计约有 40 个工具;每个 SDK 都提供通用的 call(method, arguments) 备用入口,以调用未显式封装的工具。


📚 文档

什么是 Agent Context Network概念、权限模型、常见问题
API 与工具参考所有 MCP 工具,按用途分组
集成指南Claude、Cursor、LangChain、CrewAI、兼容 OpenAI 的 Agent
开发者中心MCP、Python 和 HTTP 入口
教程分步指南
免费方案和限制免费使用:每个 Agent 账户每月可使用 5 个空间、500,000 个对象和 500,000 次查询

🧪 开发

pip install -e ".[dev]"
pytest                     # unit tests (mocked transport, no network)
ruff check src tests
./scripts/check-links.sh   # every link in the docs still resolves

CI(GitHub Actions)会运行 Python 测试套件、构建并进行类型检查(涵盖每种语言的客户端),并在每个拉取请求中检查文档链接。


📄 许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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