Zing 论坛

正文

Tiza:MCP多智能体工作流的共享上下文存储方案

基于CA-MCP架构的TypeScript库,通过共享上下文存储让多智能体系统协同工作,实现50%更少的LLM调用和74-90%的输入token节省。

MCP多智能体共享上下文TypeScriptLLM优化token节省智能体协调代码审查
发布时间 2026/06/08 02:45最近活动 2026/06/08 02:55预计阅读 9 分钟
Tiza:MCP多智能体工作流的共享上下文存储方案
1

章节 01

导读 / 主楼:Tiza:MCP多智能体工作流的共享上下文存储方案

基于CA-MCP架构的TypeScript库,通过共享上下文存储让多智能体系统协同工作,实现50%更少的LLM调用和74-90%的输入token节省。

2

章节 02

原作者与来源

  • 原作者/维护者:RubenGlez
  • 来源平台:github
  • 原始标题:tiza
  • 原始链接:https://github.com/RubenGlez/tiza
  • 来源发布时间/更新时间:2026-06-07T18:45:58Z
3

章节 03

补充观点 1

原作者与来源

  • 原作者/维护者:RubenGlez
  • 来源平台:github
  • 原始标题:tiza
  • 原始链接:https://github.com/RubenGlez/tiza
  • 来源发布时间/更新时间:2026-06-07T18:45:58Z 原作者与来源\n\n- 原作者/维护者: RubenGlez\n- 来源平台: GitHub\n- 原始标题: tiza\n- 原始链接: https://github.com/RubenGlez/tiza\n- 发布时间: 2026-06-07\n\n---\n\n项目背景与问题定义\n\n随着Model Context Protocol (MCP)的兴起,多智能体系统成为AI应用开发的热门方向。然而,MCP智能体本质上是"无状态"的——每个智能体独立运行,互不知晓彼此的工作成果。\n\n想象一个典型的代码审查场景:安全审查员、质量审查员、测试审查员三个智能体分别检查同一份代码。在没有协调机制的情况下:\n\n- 每个智能体都要重新发现相同的问题\n- 中央LLM需要反复传递上下文\n- 产生大量冗余的LLM调用和token消耗\n- 智能体之间无法共享发现和见解\n\n这正是Tiza所要解决的问题。\n\n---\n\n核心架构:共享上下文存储(SCS)\n\nTiza基于Jayanti & Han在2026年提出的CA-MCP架构,实现了一个共享上下文存储(Shared Context Store, SCS)。所有智能体可以读写这个存储,从而实现:\n\n- 智能体A发现问题 → 写入存储\n- 智能体B读取存储 → 跳过已知问题\n- 智能体C读取存储 → 专注于新问题\n- 中央LLM只需读取最终的store.toPrompt()进行汇总\n\n工作流程对比\n\n\n无Tiza方案 有Tiza方案\n───────────────── ──────────────────────────────\n智能体1: 发现问题 智能体1: 将发现写入存储\n智能体2: 发现相同问题 智能体2: 读取存储 → 跳过已知问题\n智能体3: 发现相同问题 智能体3: 读取存储 → 跳过已知问题\nLLM合成原始数据 LLM读取store.toPrompt() → 结构化合成\n\n\n---\n\n性能基准与实测数据\n\nTiza的性能优势通过基准测试得到了验证。测试场景:编排器LLM + 3个程序化MCP工具,使用claude-haiku-4-5,温度设为0,测试代码审查场景。\n\n核心指标对比\n\n| 指标 | 朴素MCP | 紧凑MCP | Tiza |\n|------|---------|---------|------|\n| LLM调用次数 | 4 | 4 | 2 |\n| 输入token | 11,985 | 5,420 | 3,069 |\n| 总token | 13,880 | 7,537 | 3,688 |\n\n结果解读:\n- 朴素MCP: 每个工具调用都经过LLM,累积大量对话历史\n- 紧凑MCP: 每次调用后裁剪工具输出,避免上下文膨胀\n- Tiza: 完全消除每个智能体的LLM调用,一次规划调用初始化存储,工具自主运行,一次合成调用读取结果\n\n不同PR类型的表现\n\n| PR场景 | vs 朴素MCP | vs 紧凑MCP |\n|--------|-----------|-----------|\n| 认证模块 | 74.4%更少输入token | 43.4%更少 |\n| 数据层 | 71.6%更少输入token | 46.9%更少 |\n| API路由 | 74.8%更少输入token | 49.6%更少 |\n| 完整认证系统 | 80.5%更少输入token | 39.9%更少 |\n\n智能体数量扩展性\n\n| 智能体数量 | vs 朴素MCP | vs 紧凑MCP |\n|-----------|-----------|-----------|\n| 3个 | 74.4%更少输入token | 43.4%更少 |\n| 5个 | 82.7%更少输入token | 63.2%更少 |\n| 8个 | 89.6%更少输入token | 78.4%更少 |\n\n随着智能体数量增加,Tiza的优势愈发明显。\n\n---\n\n快速上手与代码示例\n\n安装\n\nbash\nnpm install @tiza/core\n\n\n如需在其他项目中使用MCP服务器:\n\nbash\nnpm install @tiza/mcp\n\n\n基础用法\n\ntypescript\nimport { createStore } from \"@tiza/core\"\n\nconst store = createStore({\n task: \"审查PR #142 - 添加用户认证\",\n agents: [\"security\", \"quality\", \"tests\"]\n})\n\n// 智能体写入发现\nstore.write({\n agent: \"security\",\n type: \"finding\",\n payload: {\n severity: \"high\",\n file: \"auth.ts\",\n line: 42,\n issue: \"JWT密钥硬编码\",\n suggestion: \"移至环境变量\"\n }\n})\n\n// 智能体留下见解供其他智能体参考\nstore.write({\n agent: \"security\",\n type: \"insight\",\n payload: { note: \"auth.ts是关键文件 — 请仔细审查\" }\n})\n\n// 标记完成\nstore.done(\"security\")\n\n// 检查状态\nconsole.log(store.status())\n// → { phase: \"review\", completed: [\"security\"], pending: [\"quality\", \"tests\"] }\n\n// 序列化为Markdown,准备注入LLM提示\nconsole.log(store.toPrompt())\n\n\ntoPrompt()输出示例\n\nmarkdown\nTask\n审查PR #142 - 添加用户认证\n\nStatus\n- **Phase:** review\n- **Progress:** 1 of 3 agents completed\n- **Completed:** security\n- **Pending:** quality, tests\n\nFindings\n\n🟠 High\n- **auth.ts:42** — JWT密钥硬编码\n - *Suggestion:* 移至环境变量\n - *Agent:* security · 2026-05-12 10:23:41\n\nInsights\n- **[security]** auth.ts是关键文件 — 请仔细审查\n\n\n---\n\n核心API详解\n\ncreateStore(options)\n\n| 选项 | 类型 | 说明 |\n|------|------|------|\n| task | string | 任务描述 |\n| agents | string[] | 智能体标识符列表 |\n\nstore.write(entry)\n\n向存储追加条目。存储是仅追加的——条目不可修改或删除。\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| agent | string | 智能体标识符(必须已注册) |\n| type | "finding" \\| "insight" \\| "decision" | 条目类型 |\n| payload | 对象 | 条目内容 |\n\nstore.read(filter?)\n\n返回条目,可按typeagentseverity过滤。\n\nstore.done(agent)\n\n标记智能体完成,自动更新阶段。\n\nstore.status()\n\n返回{ phase, completed, pending }。\n\nstore.toPrompt()\n\n将完整存储状态序列化为Markdown,可直接注入LLM提示。\n\n---\n\nTizaRuntime:多运行管理\n\n对于需要同时维护多个独立运行的服务器或MCP进程,TizaRuntime提供了运行时管理能力:\n\ntypescript\nimport { TizaRuntime } from \"@tiza/core\"\n\nconst runtime = new TizaRuntime({ stateDir: \"/tmp/tiza\" })\n\nconst store = runtime.openRun(\"pr-142\", {\n task: \"审查PR #142\",\n agents: [\"security\", \"quality\", \"tests\"]\n})\n\nstore.write({\n agent: \"security\",\n type: \"finding\",\n payload: { severity: \"high\", file: \"auth.ts\", line: 42, issue: \"JWT密钥硬编码\", suggestion: \"移至环境变量\" }\n})\n\n\n通过设置stateDir(或TIZA_STATE_DIR环境变量),运行可以持久化到磁盘,在进程重启后仍然保留。\n\n---\n\nTiza MCP服务器\n\nTiza提供独立的MCP服务器和程序化工厂,将核心存储与MCP操作解耦。\n\n环境变量配置:\n- TIZA_STATE_DIR: 可选的持久化运行目录\n- TIZA_DEFAULT_RUN_ID: 未指定运行时的默认标识符\n\n---\n\n设计哲学与最佳实践\n\n1. 仅追加存储: 确保审计追踪和可重现性\n2. 类型安全: TypeScript提供编译时类型检查\n3. 最小化LLM调用: 智能体之间直接协调,减少中央LLM负担\n4. 可序列化: toPrompt()生成LLM友好的Markdown格式\n5. 可持久化: 支持磁盘持久化,适应生产环境\n\n---\n\n适用场景\n\nTiza特别适合以下多智能体场景:\n\n- 代码审查: 安全、质量、测试等多维度审查协作\n- 内容审核: 多智能体从不同角度评估内容\n- 数据分析: 不同智能体处理数据的不同方面\n- 复杂任务分解: 将大任务拆分为子任务,智能体并行执行\n\n---\n\n总结\n\nTiza通过引入共享上下文存储的概念,优雅地解决了MCP多智能体系统中的协调问题。它不仅显著降低了LLM调用成本和token消耗,更重要的是提供了一种让智能体真正"协作"的机制——每个智能体可以站在其他智能体的肩膀上,而不是重复相同的工作。\n\n对于正在构建多智能体系统的开发者来说,Tiza提供了一个经过验证的架构模式和现成的实现,值得深入研究和采用。