mcpField
D
docs-mcp

docs-mcp

远程服务
tandem.ac开发工具1253 周前更新

关于 docs-mcp

docs-mcp 是 Tandem 提供的远程 MCP 服务,提供 Tandem 文档、安装指南、SDK、工作流及 Agent 设置帮助。Tandem 本身是一个运行时层,对 AI Agent 可访问的工具、数据、记忆和操作实施策略控制,适合平台与安全团队使用。该服务的说明信息来自 Tandem 的 README。

主要功能

  1. 01查询 Tandem 文档与安装指南
  2. 02提供 SDK 与工作流相关说明
  3. 03协助配置 Agent 接入 Tandem
  4. 04远程访问方式的 MCP 服务

适用场景

  1. 01让编码 Agent 查询 Tandem 的安装步骤
  2. 02为接入 Tandem 的 Agent 获取 SDK 使用说明
  3. 03协助团队配置 Agent 与 Tandem 的 MCP 连接

MCP 相关

该项目是远程 MCP 服务,向 MCP 客户端暴露 Tandem 文档与设置相关的内容。

配置

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

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

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

工具

13
参数类型必填说明
limitinteger否要返回的匹配文档页面的最大数量。
querystring是要搜索的 Tandem 问题、任务或关键词查询。
audiencestring否可选的受众筛选条件,例如 developer、desktop user 或 operator。
docs_refstring否文档频道或不可变引用。默认为 stable。仅在明确需要时使用 next、refs/<sha> 或 releases/<version>。
engine_versionstring否可选的 Tandem 引擎版本提示。如果未提供 docs_ref,MCP 仍默认使用 stable,除非已配置匹配的版本化文档引用。

详细介绍

Tandem 徽标

网站 CI 发布注册表 最新版本 npm 客户端 PyPI 客户端 许可证:混合许可 MIT/Apache-2.0 + BUSL-1.1

English | 简体中文

对 Tandem Hosted 感兴趣? 加入候补名单

Tandem

Tandem 在 AI Agent 与其使用的工具、数据、记忆和操作之间实施策略。

Agent 可以推理、起草并提出工作建议。Tandem 决定它们获准查看哪些内容、可以调用哪些工具、哪些操作必须暂停并等待批准、可以访问哪些记忆/上下文,以及要记录哪些证据。

当 Agent 接触真实的公司系统时,Tandem 就能发挥作用:文件、代码库、电子邮件、MCP 工具、客户数据、内部文档、生产工作流和长时间运行的自动化任务。

对于平台和安全团队而言,Tandem 是 Agent 系统的运行时控制平面:限定范围的工具访问、审批关卡、受权限控制的记忆、租户/资源边界和审计证据。

模型提出建议。Tandem 负责执行策略。

从治理角度来看,Tandem 在运行时管理委派给 AI Agent 的权限。

Tandem 的功能

  • 运行具有持久状态的 AI 工作流,而不是仅基于对话记录执行。
  • 限定每个工作流步骤中可见的内置工具和 MCP 连接器。
  • 在执行前拦截超出运行时策略范围的工具调用。
  • 对影响重大的操作暂停执行,等待人工批准。
  • 控制一次运行可以检索哪些公司记忆和上下文。
  • 在模型上下文窗口之外记录产物、工具事件、审批决定和审计证据。

简单示例

Agent 可以起草客户电子邮件,但不能发送。

Tandem 可以提供起草工具,同时隐藏或拦截发送工具,在审批关卡处暂停,只有在人类批准后才继续执行,并将审批决定记录在审计跟踪中。

Tandem 不是什么

不是这个而是
聊天机器人封装位于 Agent 和工作流之下的运行时层
仅仅是 Agent 框架控制 Agent 工作流可查看和执行内容的策略层
仅仅是审批界面通过审批这一受控关卡实施运行时强制执行
仅仅是大模型网关管理工作流状态、工具、记忆、审批、制品和审计
扁平 RAG 系统运行时范围内的记忆和绑定来源的检索
仅基于提示词的安全层在模型之外实施强制执行

Tandem 将此称为 运行时权限控制:在模型之外实施授权、执行控制、审批、范围限定的记忆和审计。桌面应用、TUI、Web 控制面板、渠道和 SDK 等入口,都是同一引擎运行时的客户端。

  • **由运行时管理的控制项:**运行、会话、记忆、上下文、服务商密钥、MCP 工具、审批、制品和审计记录都存储在模型之外。
  • **受治理的工具执行:**内置工具和 MCP 连接器可按工作流步骤设定范围,并可为重要操作设置审批关卡。
  • **感知租户的运行时:**托管模式和企业模式会在会话、运行、上下文运行、记忆、服务商凭据、MCP 密钥和事件中传递租户/主体上下文。
  • **可部署在数据所在之处:**Tandem 可在本地、无头模式、托管环境或客户基础设施内运行。
  • **不受服务商限制:**可使用 OpenRouter、Anthropic、OpenAI、OpenCode Zen 或本地 Ollama 端点。

Agent 意图 -> 运行时策略 -> 范围限定的工具/数据访问 -> 审批关卡 -> 制品 -> 审计跟踪

-> AI 运行时基础设施 | 企业就绪情况 | 运行时信任边界 | 欧盟 AI 法案就绪情况 | 合规入门包 | 通过 MCP 连接 Agent

Tandem 存在的原因

Agent 正在成为工作者。它们会读取公司上下文、调用工具、创建拉取请求、起草客户沟通内容、操作项目看板,并准备过去只在纯人工系统中处理的决策。

提示词不等于权限。系统提示词可以要求模型避免使用某个工具、跳过某个文件夹或等待审批,但模型不应成为安全边界。Tandem 将这些控制放在运行时中,因此工作流可以只授予 Agent 当前步骤所需的工具、记忆和操作权限,并拒绝范围之外的一切。

公司还需要集中式 AI 上下文,但不能是无差别访问。具有权限控制的公司记忆应了解公司的信息,但代表某个团队、租户、项目或用户行事的 Agent,只应检索获准使用的那部分信息。

Tandem 管控的内容

  • 公司知识与记忆: 由运行时管理的记忆、知识空间和检索路径,围绕租户与工作区边界设计。
  • 工具和 MCP 可见性: 按步骤限定的内置工具和 MCP 连接器工具;计划在企业部署中提供更广泛的调用前屏蔽机制。
  • 工作流执行: 持久化自动化和上下文运行状态,而非脆弱的、仅依赖对话记录的执行方式。
  • 人工审批: 运行时关卡会暂停运行、收集批准/返工/取消决定,并留下证据。
  • 租户与工作区边界: 支持感知租户的会话、运行、上下文运行、事件、提供商凭据、MCP 密钥、记忆,以及用于资源范围和授权的契约词汇。
  • 连接器凭据与密钥: 提供商和 MCP 密钥引用由运行时管理;随着这一层逐渐成熟,连接器源绑定为有范围限制的数据摄取提供通用契约。
  • 制品与审计跟踪: 输出、验证结果、工具账本事件、审批决定和受保护的审计记录均会保存在模型上下文窗口之外。

核心用例

用例Tandem 提供的能力
需审批的电子邮件和工作流Agent 提出工作方案,Tandem 在执行操作前暂停运行,由人工批准或要求返工。
权限受控的公司知识库公司记忆和知识空间,支持感知租户的检索及资源授权词汇。
受管控的编码 Agent编码器运行、工作树上下文、交接制品、审批节点,以及可审计的实现状态。
项目、冲刺和活动大脑可跨会话和团队留存的长期上下文、任务、制品和记忆。
租户隔离的托管自动化按租户划分范围的托管运行时记录、事件流、提供商凭据、MCP 密钥和记忆。
内部 Agent 和工具治理用于控制哪些 Agent 可以查看哪些工具、执行哪些操作,以及留下哪些证据的控制点。

平台和安全团队为何关注

Tandem 专为需要在真实运营管控下运行 AI 工作的团队而设计:

  • 运行时授权,而非提示词授权: 模型可以请求上下文或工具调用;运行时决定哪些内容可见、哪些操作可执行。
  • 感知租户的记录: 在托管/共享模式下,会话、自动化运行、上下文运行、事件流、提供商凭据、MCP 密钥和记忆路径均携带租户上下文。
  • 资源和授权模型: Tandem 对资源、主体、授权、数据类别和数据边界进行建模,以便运行时执行访问决策。
  • 权限受控的记忆: 记忆和知识路径带有租户边界,让公司知识变得实用,同时避免成为无差别共享的内容。
  • 可部署的运行时: 随着企业层逐渐成熟,同一运行时可在笔记本电脑上运行、作为无头引擎运行、托管运行,或部署在客户基础设施中。
  • 可审计性: 审批决定、策略拒绝、提供商密钥变更、MCP 活动、工具账本事件、制品和受保护的审计记录,均可在聊天记录之外检查。

部署模式

Tandem 可在本地使用,并逐步支持更严格的公司部署:

  • 本地桌面应用: 单用户桌面运行时,具有本地工作区范围、提供商配置和需审批的工具。
  • 无头引擎: 使用 tandem-engine serve 服务 SDK、控制面板、自动化和 CI/开发环境。
  • 托管/私有托管: 托管部署使用传输令牌和签名上下文断言,实现感知租户的访问控制。
  • 客户基础设施: 可部署在需要存放公司数据、连接器凭据和运营证据的位置。

当前状态

当前能力企业版路线图
运行时身份验证模式:local_single_tenant、hosted_single_tenant、enterprise_required完整的 RBAC、OIDC、SCIM、SIEM 集成、SOC2 套件和企业身份策略桥接
面向托管/企业入口的租户上下文和签名上下文断言私有企业 sidecar,采用失败关闭的策略授权
支持租户的会话、自动化运行、上下文运行、事件、编码器路由和记忆 API确保每条路径上的工件/导出完全隔离
提供方凭证和 MCP 密钥的租户边界在调用大模型前完整屏蔽工具发现结果
记忆租户分区、租户范围的知识空间和资源范围的检索 API面向生产连接器数据导入的管理平台,支持实时外部数据源导入
资源访问控制契约类型和严格的上下文投影词汇签名审批回执和符合审计要求的不可变回执链
审批关卡、待审批收件箱、渠道审批、工具账本事件和审计记录将高级连接器隔离/撤销/轮换操作接入生产数据导入工作流

合规性与 AI 法案就绪情况

Tandem 帮助团队在人工监督下运行 AI 工作流,使用范围受限的工具,保留持久的执行证据,并控制受保护操作。对于受监管或安全敏感的部署,请先阅读 EU AI Act readiness brief,然后使用 Compliance Starter Pack 获取控制项映射、Article 50 透明度指南、部署者说明、Annex IV 文档模板以及局限性/责任矩阵。

30 秒快速入门

Web 控制面板

安装 master CLI,然后引导配置控制面板及其引擎服务:

npm i -g @frumu/tandem
tandem install panel
tandem panel init
tandem panel open

如果你想使用由引擎提供支持的浏览器控制中心,请选择此方式。

现在,对于本地安装,你可以打开 Settings -> Providers -> openai-codex,并选择 Connect Codex Account,通过浏览器登录,而无需粘贴 OpenAI API 密钥。

桌面版
  1. 下载并启动 Tandem:tandem.ac
  2. 打开 Settings 并添加提供方 API 密钥,或使用本地控制面板为 openai-codex 连接 Codex 账户。
  3. 选择一个工作区文件夹。
  4. 输入任务提示词,然后选择 Immediate 或 Plan Mode。
可编辑应用脚手架

在你自己的文件夹中生成完全可编辑的控制面板应用:

npm create tandem-panel@latest my-panel
cd my-panel
npm install
npm run dev

如果你想自定义路由、页面、主题、样式或运行时行为,而不编辑 node_modules,请使用此方式。

MCP 辅助设置

如果你想让现有 Agent 帮忙安装或配置 Tandem,请先将该 Agent 连接到 Tandem 的 MCP 接口。MCP 文档说明了如何将你自己的 Agent 接入 Tandem,使其协助完成设置、配置和后续任务:

如果你只需要引擎运行时,可以让它仅在前台运行:

tandem-engine serve --hostname 127.0.0.1 --port 39731
其他入口
  • TUI:npm i -g @frumu/tandem-tui && tandem-tui
  • SDK:npm install @frumu/tandem-client 或 pip install tandem-client
Codex 和 Docker 设置

开放核心与源代码可用架构

Tandem 以开发者为先,采用开放核心模式构建。我们相信,要信任 AI 运行时,就必须能够逐行审查执行路由器。

本地开发与评估: 宽松许可的 crate 和库(MIT OR Apache-2.0)可按其各自条款使用。每个分发的引擎二进制文件还包含源代码可用的 BUSL-1.1 组件,可免费用于评估、开发、测试、查看源代码、个人非商业用途以及非生产概念验证。

企业方案: 面向大规模组织部署的高级功能,例如企业身份联合、更丰富的策略执行、签名回执链、私有 Sidecar 执行、SIEM 导出和高可用性打包,属于规划中的企业功能,可能受商业条款或源代码可用条款管辖;如有声明,也可能适用 Business Source License 1.1(BUSL-1.1)。

许可边界: 对 BUSL-1.1 组件进行商业生产使用——包括内部生产使用、客户生产部署,以及托管、代管、SaaS、白标、嵌入式、OEM 或经销商服务——都需要从 Frumu LTD 获取单独的商业许可。具体到每个软件包的条款,请参阅 docs/LICENSING.md。

架构

flowchart TD
    Human[Human operator or team]

    subgraph Entrypoints["Entrypoints: clients, not authority boundaries"]
        Desktop[Desktop app]
        Panel[Web control panel]
        TUI[Terminal UI]
        SDK[TypeScript / Python SDKs]
        Channels[Slack / Discord / Telegram]
    end

    subgraph Agents["Agents and models: propose, reason, draft"]
        Workers[Agent workers]
        Models[OpenAI / Anthropic / OpenRouter<br/>OpenCode Zen / Ollama]
    end

    subgraph Tandem["Tandem governed runtime: owns authority"]
        API[HTTP/SSE API]
        Tenant[Auth mode, tenant context<br/>and authority chain]
        Projection[Authority projection<br/>resources, grants, data classes]
        Runs[Sessions, workflows<br/>automations, context runs]
        Gates[Human approval gates]
        Policy[Tool and MCP policy]
        Memory[Permissioned memory<br/>and company knowledge]
        Secrets[Provider and MCP secrets]
        Artifacts[Artifacts, validation<br/>and run evidence]
        Audit[Audit trail and tool ledger]
    end

    subgraph Systems["Company systems and data"]
        Workspace[Workspace files and repos]
        MCP[MCP servers and connectors]
        Data[Customer / company data]
        Browser[Browser and external tools]
    end

    Human --> Desktop
    Human --> Panel
    Human --> TUI
    Human --> SDK
    Human --> Channels

    Desktop --> API
    Panel --> API
    TUI --> API
    SDK --> API
    Channels --> API

    API --> Tenant
    Tenant --> Projection
    Projection --> Runs
    Runs <--> Workers
    Workers <--> Models

    Runs --> Gates
    Runs --> Policy
    Runs --> Memory
    Runs --> Artifacts
    Gates --> Audit
    Policy --> Audit
    Artifacts --> Audit

    Policy --> Secrets
    Policy --> Workspace
    Policy --> MCP
    Policy --> Data
    Policy --> Browser
    Memory --> Data

常见工作流

受管控的工作流Tandem 运行时的控制内容
评估供应商或策略风险读取选定来源,起草带引文的材料,验证限制,并确保读取步骤不使用变更类工具。
需审批的邮件或更新让 Agent 起草操作,在人工审批关卡暂停;只有记录了批准/返工/取消凭证后才继续。
执行代码迁移跟踪编码器运行、工作树状态、已更改文件、验证、交接材料和审批节点。
管控外部 MCP 工具按工作流步骤限定连接器工具的范围,要求提供具体工具证据,并按租户路径隔离 MCP 密钥。
具备权限控制的公司记忆通过运行时管理的记忆和知识空间检索公司上下文,而不是把所有内容都粘贴到聊天中。
租户隔离的托管工作流在托管/共享模式下,按租户分隔会话、运行、事件、凭证、MCP 密钥和记忆。

功能

受管控的执行
  • 模型不是控制系统: 模型可以提出工作建议;Tandem 负责管理获准使用的工具、上下文、状态转换、审批和审计证据。
  • 限定范围的工作流执行: Automation V2 节点可以携带内置工具和 MCP 连接器策略,让不同步骤具备不同的能力。
  • 需审批的操作: 运行可在执行重要工作前暂停,等待批准/返工/取消决定,并在恢复后保留审批关卡记录。
  • 状态持久性: 检查点、可重放的事件历史记录和物化运行状态,可在 API 超时和连接器故障后继续保留。
具备权限控制的记忆与公司知识
  • 按租户分区的记忆: 基于向量的会话、项目、全局和文件导入记忆路径均带有租户范围。
  • 知识空间: 可通过支持租户感知的 API 管理精选知识空间和条目。
  • 运行时检索: Agent 通过运行时检索上下文,为实现具备权限控制的公司记忆提供路径,而不是将平铺的对话记录全部塞入上下文。
租户和工作区隔离
  • 支持租户的记录: 会话、自动化定义/运行、上下文运行、事件流、提供商凭据、MCP 密钥引用、记忆和编码路由均携带租户上下文。
  • 严格的上下文契约: 企业契约中对资源引用、范围授权、数据类别、主体和数据边界进行了建模。
  • 保留本地行为: 桌面和开发工作流仍默认使用本地/默认的单租户模式。
MCP 和工具治理
  • 支持 MCP 连接器: Tandem 可连接到 MCP 服务、同步工具,并将选定连接器工具限定为仅供工作流节点使用。
  • 密钥隔离: 在托管/共享路径中,基于存储的 MCP 密钥引用会在解析前验证租户范围。
  • 工具发现作为权限边界: 工具发现和 MCP 可见性受运行时策略管理;在模型调用前全面屏蔽未经授权的工具仍属于企业路线图规划内容。
人工审批关卡和审计
  • 审批收件箱和渠道审批: 操作员可在运行时拥有的审批界面中批准、要求返工或取消。
  • 持久化证据: 工具台账事件、关卡历史、制品、验证元数据和受保护的审计事件可保留在模型上下文窗口之外。
  • 审计流: 已提供面向管理员的审计流和受保护的审计封装;不可变回执链和签名审批回执仍属于路线图规划内容。
多 Agent 编排
  • 看板驱动的执行: Agent 通过确定性的状态领取任务、报告阻碍因素并移交工作。
  • 具备记忆能力的工作者: Agent 可通过运行时路径使用先前运行上下文、项目记忆和知识空间。
  • 带版本的协作: 引擎强制执行的锁可防止多个 Agent 同时修改同一代码库。
本地和可自托管控制
  • MCP 工具连接器
  • 计划的自动化和例程
  • 提供 HTTP + SSE API 的无头运行时
  • 适用于 Windows、macOS 和 Linux 的桌面运行时
  • API 密钥在本地 SecureKeyStore 中加密(AES-256-GCM)
  • 本地 Codex OAuth 凭据由引擎持有;浏览器 UI 可发起登录,但不会持久化刷新令牌
  • 工作区访问权限仅限于你明确授权的文件夹
  • 写入/删除操作必须通过受监督的工具流程审批
  • 默认拒绝访问敏感路径(.env、.ssh/*、*.pem、*.key、密钥文件夹)
  • Tandem 本身不会收集分析数据或进行回连遥测
输出和制品
  • Markdown 报告
  • HTML 仪表板
  • PowerPoint(.pptx)生成

企业路径和路线图

Tandem 已具备在托管和自我管理环境中开展受治理 AI 工作所需的运行时构建模块。下一阶段的企业功能将在这些构建模块的基础上强化身份、策略、审计导出和管理能力。

现已提供:

  • 运行时身份验证模式,以及托管/企业级签名上下文断言验证。
  • 支持租户的会话、运行、上下文运行、事件流、提供商凭据、MCP 密钥、记忆和编码路由。
  • 用于描述资源、范围、主体、授权、数据类别和数据边界的资源访问控制契约词汇。
  • 审批关卡、受保护的审计记录、审计流、工具台账事件和运行时制品。
  • 连接器源绑定契约,使用密钥引用、资源引用、数据类别、隔离/撤销/轮换词汇,以及带范围的记忆块引用。

计划中的企业功能:

  • 完整的 RBAC、OIDC/SSO、SCIM、SIEM 导出、SOC2 套件和企业管理工作流。
  • 私有企业 Sidecar 和策略桥接,并在必需模式下执行故障关闭。
  • 签名审批回执、不可变回执链,以及更全面的审计/导出隔离。
  • 在模型调用前全面屏蔽工具发现结果。
  • 完整的外部连接器接入管理平台和生产级接入流程。

编程式 API

SDK 是 API 客户端。它们不会捆绑 tandem-engine。
你需要先运行 Tandem 运行时(桌面端 sidecar 或无头引擎),然后使用 SDK 创建会话、触发运行并流式传输事件。

运行时选项:

  • 在本地运行桌面应用(会启动 sidecar 运行时)

  • 通过 npm 运行无头引擎:

    npm install -g @frumu/tandem
    tandem-engine serve --hostname 127.0.0.1 --port 39731
    
  • TypeScript SDK:@frumu/tandem-client

  • Python SDK:tandem-client

  • 引擎包:@frumu/tandem

// npm install @frumu/tandem-client
import { TandemClient } from "@frumu/tandem-client";

const client = new TandemClient({ baseUrl: "http://localhost:39731", token: "..." });
const sessionId = await client.sessions.create({ title: "My agent" });
const { runId } = await client.sessions.promptAsync(sessionId, "Summarize README.md");

for await (const event of client.stream(sessionId, runId)) {
  if (event.type === "session.response") process.stdout.write(event.properties.delta ?? "");
}
# pip install tandem-client
from tandem_client import TandemClient

async with TandemClient(base_url="http://localhost:39731", token="...") as client:
    session_id = await client.sessions.create(title="My agent")
    run = await client.sessions.prompt_async(session_id, "Summarize README.md")
    async for event in client.stream(session_id, run.run_id):
        if event.type == "session.response":
            print(event.properties.get("delta", ""), end="", flush=True)

提供商设置

在设置中配置提供商。

提供商说明获取 API 密钥
OpenAI Codex Account通过浏览器登录,以便在本地使用 Codex 账户本地控制面板:Settings -> Providers -> openai-codex
OpenRouter ⭐通过一个 API 使用多种模型openrouter.ai/keys
OpenCode Zen为编码优化的快速、高性价比模型opencode.ai/zen
AnthropicAnthropic 模型(Sonnet、Opus、Haiku)console.anthropic.com
OpenAIGPT 模型和 OpenAI 端点platform.openai.com
Ollama本地模型(无需远程 API 密钥)设置指南
Custom兼容 OpenAI 的 API 端点配置端点 URL

注意:

  • openai-codex 目前适用于由本地引擎支持的 Tandem 配置。
  • 标准 OpenAI API 密钥仍受普通 openai 提供商支持。

网页搜索设置

现在可以直接通过以下位置配置 websearch:

  • 桌面端:Settings -> Web Search
  • 控制面板:连接到本地托管引擎时,前往 Settings -> Web Search

建议的默认设置:

  • Backend = auto
  • 添加 Brave 密钥、Exa 密钥,或两者都添加

auto 会优先使用已配置的提供商,并可在不同后端之间切换,而不是将引擎固定到单一托管搜索路径。对于无头安装,你仍可通过环境变量进行配置:

TANDEM_SEARCH_BACKEND=auto
TANDEM_BRAVE_SEARCH_API_KEY=...
TANDEM_EXA_API_KEY=...
TANDEM_SEARXNG_URL=http://127.0.0.1:8080
TANDEM_SEARCH_URL=https://search.tandem.ac

如果 Brave 达到速率限制且已配置 Exa,auto 可以改用 Exa,而不是立即提示搜索不可用。

设计原则

  • 本地优先运行时:除非你将提示词/工具发送给已配置的提供商,否则数据和状态都会保留在你的设备上。
  • 受监督的执行:AI 通过受控工具运行,写入/删除操作需要明确批准。
  • 不绑定特定提供商:通过你选择的模型提供商进行路由。
  • 可审计的源代码,且许可边界清晰:这是一个混合许可仓库:宽松许可的 MIT、Apache-2.0 和 MIT OR Apache-2.0 组件与仅提供源代码的 BUSL-1.1 编译器和治理组件并存,详见 docs/LICENSING.md。

安全与隐私

  • 遥测:Tandem 不包含分析/跟踪功能,也不会发送回传遥测数据。
  • 提供商流量:AI 请求内容只会发送到你配置的端点(云服务提供商或本地 Ollama/自定义端点)。
  • 网络范围:桌面运行时会与本地 sidecar(127.0.0.1)和已配置的端点通信。
  • 更新程序/发行版检查:应用更新和发行版元数据流程可能会连接到 GitHub 端点。
  • 凭据存储:提供商密钥经过加密存储(AES-256-GCM)。
  • 文件系统安全:访问范围仅限已授权文件夹;默认拒绝访问敏感路径。

完整的威胁模型和报告流程请参阅 SECURITY.md。

了解更多

高级 MCP 行为(包括 OAuth/需要身份验证的流程和重试)记录在 docs/ENGINE_CLI.md 中。

高级设置(从源代码构建)

前置要求
平台其他要求
WindowsVisual Studio 生成工具
macOSXcode 命令行工具:xcode-select --install
Linuxlibwebkit2gtk-4.1-dev、libappindicator3-dev、librsvg2-dev、build-essential、pkg-config
本地开发
git clone https://github.com/frumu-ai/tandem.git
cd tandem
pnpm install
cargo build -p tandem-ai
pnpm tauri dev
生产构建与签名说明
pnpm tauri build

对于本地自行构建的更新程序制品,请生成自己的签名密钥并配置:

  1. pnpm tauri signer generate -w ./src-tauri/tandem.key
  2. TAURI_SIGNING_PRIVATE_KEY
  3. TAURI_SIGNING_PASSWORD
  4. src-tauri/tauri.conf.json 中的 pubkey

参考:Tauri 签名文档

输出路径:

# Windows: src-tauri/target/release/bundle/msi/
# macOS:   src-tauri/target/release/bundle/dmg/
# Linux:   src-tauri/target/release/bundle/appimage/
macOS 安装故障排查

如果下载的 .dmg 显示“已损坏”或“损坏”,通常是因为 Gatekeeper 拒绝了未经过 Developer ID 签名和公证的应用程序包/DMG。

  1. 确认架构正确(aarch64/arm64 与 x86_64/x64)。
  2. 尝试通过 Finder 打开(“右键 -> 打开”或“系统设置 -> 隐私与安全性 -> 仍要打开”)。
  3. 对于面向非技术用户的分发,请通过发行版自动化流程提供已签名并经过公证的制品。

参与贡献

欢迎贡献。请参阅 CONTRIBUTING.md。

# Run lints
pnpm lint

# Run tests
pnpm test
cargo test

# Format code
pnpm format
cargo fmt

引擎专用的构建/运行/冒烟测试说明:docs/ENGINE_TESTING.md
引擎 CLI 使用参考:docs/ENGINE_CLI.md
引擎运行时通信约定:docs/ENGINE_COMMUNICATION.md

维护者发行说明
  • 桌面二进制文件/应用发行版:.github/workflows/release.yml(标签模式 v*)
  • 注册表发布(crates.io + npm 封装包):.github/workflows/publish-registries.yml(手动触发或使用 publish-v*)
  • 这些工作流有意分开

项目结构

tandem/
├── src/                    # React frontend
│   ├── components/         # UI components
│   ├── hooks/              # React hooks
│   └── lib/                # Utilities
├── src-tauri/              # Rust backend
│   ├── src/                # Rust source
│   ├── capabilities/       # Permission config
│   └── binaries/           # Sidecar (gitignored)
├── scripts/                # Build scripts
└── docs/                   # Documentation

Star 历史

Star 历史图表

许可证

本仓库采用混合许可模式。docs/LICENSING.md 是按软件包划分的权威许可说明。

  • 核心引擎 crate 和工具(例如 tandem-core、tandem-server、tandem-types、tandem-orchestrator 以及 crates/ 中的其他项目):

    • 除非其清单或本地许可证另有说明,否则均采用 MIT OR Apache-2.0 许可
    • 参见 LICENSE-MIT 和 LICENSE-APACHE
  • 任务编译器 crate(tandem-plan-compiler):

    • 采用 Business Source License 1.1(BUSL-1.1)许可
    • 条款请参见 crates/tandem-plan-compiler/LICENSE
  • 治理引擎 crate(tandem-governance-engine):

    • 采用 Business Source License 1.1(BUSL-1.1)许可
    • 条款请参见 crates/tandem-governance-engine/LICENSE
  • 事件监控器 crate(tandem-incident-monitor):

    • 采用 Business Source License 1.1(BUSL-1.1)许可
    • 条款请参见 crates/tandem-incident-monitor/LICENSE
  • 企业级服务 crate(tandem-enterprise-server):

    • 采用 Business Source License 1.1(BUSL-1.1)许可
    • 条款请参见 crates/tandem-enterprise-server/LICENSE
  • 引擎服务 crate(tandem-server,自 0.7.0 起):

    • 采用 Business Source License 1.1(BUSL-1.1)许可
    • 条款请参见 crates/tandem-server/LICENSE

简而言之:Tandem 采用开放核心模式。宽松许可的协议、SDK、客户端和本地工具部分均为开源,而引擎服务、任务/计划编译器、递归治理引擎、事件监控器和企业级服务则依据 Business Source License 条款提供源代码。

本仓库中的任何许可证均不授予商标权。“Tandem”、“Frumu”及相关徽标均为 Frumu LTD 的商标——使用政策请参见 TRADEMARKS.md。

致谢

  • 感谢 Anthropic 提供 Cowork 灵感
  • 感谢 Tauri 提供安全的桌面框架
  • 感谢开源社区

评论

支持 Markdown

第一次接触 MCP?

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

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