docs-mcp について
docs-mcp は、Tandem が提供するリモート MCP サーバーで、ドキュメント、インストールガイド、SDK の情報、ワークフローの説明、エージェントのセットアップ支援を提供します。Tandem 自体は、AI エージェントが利用できるツール、データ、メモリ、操作に対してポリシーを適用するランタイムレイヤーであり、プラットフォームおよびセキュリティチーム向けです。この説明は Tandem プロジェクトの README に基づいています。
主な機能
- 01Tandem のドキュメントとインストールガイドの検索
- 02SDK とワークフローに関する参照情報
- 03エージェントの Tandem への接続支援
- 04リモートサーバーとしてのアクセス
活用シーン
- 01コーディングエージェントに Tandem のインストール手順を照会
- 02Tandem と連携するエージェント向けに SDK の使い方を取得
- 03エージェントの MCP 接続設定を支援
MCP 対応
Tandem のドキュメントとセットアップに関する情報を MCP クライアントに提供するリモートサーバーです。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://tandem.ac/mcpclaude mcp add --transport http ac-tandem-docs https://tandem.ac/mcp{"mcpServers":{"ac-tandem-docs":{"type":"http","url":"https://tandem.ac/mcp"}}}Cursor で開く{"servers":{"ac-tandem-docs":{"type":"http","url":"https://tandem.ac/mcp"}}}VS Code で開く{"mcpServers":{"ac-tandem-docs":{"type":"http","url":"https://tandem.ac/mcp"}}}{"mcpServers":{"ac-tandem-docs":{"serverUrl":"https://tandem.ac/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
13| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返す一致したドキュメントページの最大数。 |
| query | string | はい | 検索する Tandem に関する質問、タスク、またはキーワードクエリ。 |
| audience | string | いいえ | 任意の対象ユーザーのフィルター。developer、desktop user、operator など。 |
| docs_ref | string | いいえ | ドキュメントのチャンネルまたは不変の参照。デフォルトは stable です。明示的に必要な場合に限り、next、refs/<sha>、または releases/<version> を使用してください。 |
| engine_version | string | いいえ | 任意の Tandem エンジンバージョンのヒント。docs_ref を指定しない場合、MCP は引き続きデフォルトで stable を使用します。ただし、設定済みのバージョン付きドキュメント参照が一致する場合を除きます。 |
詳細
Tandem Hosted にご関心がありますか? ウェイトリストに登録
Tandem
Tandem は、AI エージェントと、エージェントが使用するツール、データ、メモリ、アクションの間にポリシーを適用します。
エージェントは推論し、下書きを作成し、作業を提案できます。Tandem は、エージェントにどの情報の閲覧が許可されるか、どのツールを呼び出せるか、どのアクションを承認のために保留する必要があるか、どのメモリやコンテキストにアクセスできるか、どの証跡を記録するかを判断します。
そのため、ファイル、リポジトリ、メール、MCP ツール、顧客データ、社内ドキュメント、本番ワークフロー、長時間実行される自動化など、エージェントが実際の企業システムに接続する場面で Tandem が役立ちます。
プラットフォームチームやセキュリティチームにとって、Tandem はエージェント型システムのランタイム制御プレーンとして機能します。対象を限定したツールアクセス、承認ゲート、アクセス権限を設定したメモリ、テナント/リソースの境界、監査証跡を提供します。
モデルは提案し、Tandem は強制します。
ガバナンスの観点では、Tandem は AI エージェントに委任された権限をランタイムで管理します。
Tandem の機能
- 文字起こしだけに依存した実行ではなく、永続的な状態を使って AI ワークフローを実行します。
- ワークフローの各ステップで、利用可能な組み込みツールと MCP コネクターの範囲を限定します。
- 実行前に、ランタイムポリシーの範囲外となるツール呼び出しをブロックします。
- 重大な結果を伴うアクションを、一時停止して人間の承認を待つようにします。
- 実行時に取得できる社内メモリとコンテキストを制御します。
- 成果物、ツールイベント、承認判断、監査証跡をモデルのコンテキストウィンドウの外部に記録します。
簡単な例
エージェントには顧客向けメールの下書き作成が許可されていても、送信は許可されていない場合があります。
Tandem は、下書き作成ツールを利用可能にし、送信ツールを非表示またはブロックできます。また、承認ゲートで処理を一時停止し、人間の承認後にのみ再開して、判断を監査証跡に記録できます。
Tandem ではないもの
| これは違います | 代わりに |
|---|---|
| チャットボットのラッパー | エージェントやワークフローの基盤となるランタイムレイヤー |
| エージェントフレームワークのみ | エージェントのワークフローに表示される情報と実行できる操作を制御するポリシーレイヤー |
| 承認 UI のみ | 制御されたゲートの 1 つとして承認を備えたランタイムによる強制 |
| LLM ゲートウェイのみ | ワークフローの状態、ツール、メモリ、承認、成果物、監査を管理 |
| フラットな RAG システム | ランタイムのスコープに限定されたメモリと、ソースに紐づいた検索 |
| プロンプトのみの安全レイヤー | モデルの外部で強制を実施 |
Tandem はこれをランタイム権限と呼びます。認可、実行制御、承認、スコープ付きメモリ、監査をモデルの外部で強制します。デスクトップアプリ、TUI、ウェブコントロールパネル、チャネル、SDK などのエントリーポイントは、同じエンジンランタイムのクライアントです。
- ランタイムが所有する制御: 実行、セッション、メモリ、コンテキスト、プロバイダーのシークレット、MCP ツール、承認、成果物、監査記録はモデルの外部に保存されます。
- 管理されたツール実行: 組み込みツールと MCP コネクターはワークフローの各ステップに応じてスコープを設定でき、重大な操作には承認ゲートを設けられます。
- テナント対応ランタイム: ホストモードとエンタープライズモードでは、セッション、実行、コンテキスト実行、メモリ、プロバイダーの認証情報、MCP のシークレット、イベントを通じてテナント/プリンシパルのコンテキストが引き継がれます。
- データのある場所にデプロイ可能: Tandem はローカル、ヘッドレス、ホスト型、または顧客のインフラストラクチャ内で実行できます。
- プロバイダーに依存しない: OpenRouter、Anthropic、OpenAI、OpenCode Zen、またはローカルの Ollama エンドポイントを使用できます。
エージェントの意図 -> ランタイムポリシー -> スコープ付きのツール/データアクセス -> 承認ゲート -> 成果物 -> 監査証跡
-> AI ランタイムインフラストラクチャ | エンタープライズ対応 | ランタイムの信頼境界 | EU AI Act への対応 | コンプライアンススターターパック | MCP 経由でエージェントを接続
Tandem が存在する理由
エージェントは労働者になりつつあります。企業のコンテキストを読み取り、ツールを呼び出し、プルリクエストを開き、顧客向けの連絡文を作成し、プロジェクトボードを操作し、以前は人間だけが使うシステム内にとどまっていた意思決定の準備をします。
プロンプトは権限ではありません。システムプロンプトで、モデルにツールの使用を避ける、フォルダーをスキップする、承認を待つよう指示することはできますが、モデルをセキュリティ境界にしてはなりません。Tandem はこうした制御をランタイムに配置するため、ワークフローでは現在のステップに必要なツール、メモリ、操作だけをエージェントに許可し、スコープ外のものはすべて拒否できます。
企業には、アクセスを一律に許可することなく、AI のコンテキストを一元化することも必要です。権限管理された企業メモリは、企業が持つ情報を把握する必要がありますが、特定のチーム、テナント、プロジェクト、またはユーザーのために動作するエージェントは、利用を許可された情報だけを検索する必要があります。
Tandem が統制するもの
- 会社のナレッジとメモリ: テナントとワークスペースの境界を考慮して設計された、ランタイムが管理するメモリ、ナレッジスペース、検索経路です。
- ツールと MCP の可視性: ステップ単位で有効化される組み込みツールと MCP コネクタツールを提供し、エンタープライズ環境への展開に向けて、呼び出し前により広範なマスキングを行う機能を計画しています。
- ワークフローの実行: 壊れやすいトランスクリプトのみの実行ではなく、永続性のある自動化とコンテキスト実行状態を実現します。
- 人による承認: ランタイムゲートによって実行を一時停止し、承認・手直し・キャンセルの判断を収集して、証跡を残します。
- テナントとワークスペースの境界: テナント対応のセッション、実行、コンテキスト実行、イベント、プロバイダー認証情報、MCP シークレット、メモリに加え、リソースのスコープと権限付与に関する契約語彙を提供します。
- コネクタの認証情報とシークレット: プロバイダーと MCP のシークレット参照はランタイムが管理します。コネクターソースのバインディングにより、このレイヤーの成熟に合わせて、スコープを限定した取り込みに共通の契約を提供します。
- 成果物と監査証跡: 出力、検証結果、ツール台帳イベント、承認判断、保護された監査記録は、モデルのコンテキストウィンドウの外部にも保持されます。
主なユースケース
| ユースケース | Tandem が追加する機能 |
|---|---|
| 承認ゲート付きのメールとワークフロー | エージェントが作業を提案し、Tandem がアクションの前に一時停止して、人が承認または手直しを要求します。 |
| 権限管理された社内ナレッジベース | テナント対応の検索機能と、リソース権限付与の語彙を備えた社内メモリとナレッジスペースです。 |
| 統制されたコーディングエージェント | コーダーの実行、ワークツリーのコンテキスト、引き継ぎ用成果物、承認ポイント、監査可能な実装状態を提供します。 |
| プロジェクト、スプリント、イベントのブレイン | セッションやチームをまたいで保持される、長期的なコンテキスト、タスク、成果物、メモリです。 |
| テナント分離型のホスト自動化 | テナントをスコープとするホストランタイムの記録、イベントストリーム、プロバイダー認証情報、MCP シークレット、メモリです。 |
| 社内エージェントとツールの統制 | どのエージェントがどのツールを参照し、どのアクションを実行でき、どの証跡を残すかを管理する制御点です。 |
プラットフォームチームとセキュリティチームにとって重要な理由
Tandem は、実際の運用管理下で AI の処理を実行する必要があるチーム向けに設計されています。
- プロンプトではなくランタイムが決定権を持つ: モデルはコンテキストやツール呼び出しを要求できますが、何を表示し、何を実行できるかはランタイムが決定します。
- テナント対応の記録: ホスト型または共有モードでは、セッション、自動化の実行、コンテキスト実行、イベントストリーム、プロバイダー認証情報、MCP シークレット、メモリ経路にテナントコンテキストが含まれます。
- リソースと権限付与のモデル: Tandem は、リソース、主体、権限付与、データクラス、データ境界をモデル化し、ランタイムがアクセスの判断を適用できるようにします。
- 権限管理されたメモリ: メモリとナレッジの経路にはテナント境界が適用されるため、社内ナレッジを全体で平坦化することなく活用できます。
- 展開可能なランタイム: エンタープライズレイヤーの成熟に合わせて、同じランタイムをノートパソコン上、ヘッドレスエンジンとして、ホスト環境で、または顧客のインフラストラクチャ内で実行できます。
- 監査可能性: 承認判断、ポリシーによる拒否、プロバイダーシークレットの変更、MCP のアクティビティ、ツール台帳イベント、成果物、保護された監査記録を、チャットのトランスクリプトの外部から確認できます。
展開モデル
Tandem はローカル環境で役立ち、より厳格な企業向け展開にも対応できるように拡張されます。
- ローカルデスクトップ: ローカルのワークスペーススコープ、プロバイダーのセットアップ、承認ゲート付きツールを備えた、単一ユーザー向けのデスクトップランタイムです。
- ヘッドレスエンジン: SDK、コントロールパネル、自動化、CI/開発環境向けの
tandem-engine serveです。 - ホスト型/プライベートマネージド: テナント対応のアクセスに向けて、トランスポートトークンと署名付きコンテキストアサーションを使用するホスト型の展開です。
- 顧客のインフラストラクチャ: 会社のデータ、コネクタの認証情報、運用上の証跡を保管する必要がある環境で実行するための展開モデルです。
現在のステータス
| 現在の機能 | エンタープライズロードマップ |
|---|---|
ランタイムの認証モード:local_single_tenant、hosted_single_tenant、enterprise_required | 完全なRBAC、OIDC、SCIM、SIEM連携、SOC2パッケージ、エンタープライズIDポリシーブリッジ |
| ホスト型/エンタープライズのイングレス向けテナントコンテキストと署名付きコンテキストアサーション | フェイルクローズ方式のポリシー認可を備えた、エンタープライズ向けプライベートサイドカー |
| テナントを考慮したセッション、自動化実行、コンテキスト実行、イベント、コーダールート、メモリーAPI | あらゆる経路におけるアーティファクト/エクスポートの完全な分離 |
| プロバイダー認証情報とMCPシークレットのテナント境界 | モデル呼び出し前の、完全なツール検出のマスキング |
| メモリーのテナント分割、テナントスコープのナレッジスペース、リソーススコープの検索API | 外部ソースからのライブ取り込みに対応した、本番用コネクター取り込み管理プラットフォーム |
| リソースアクセス制御の契約型と厳格なコンテキスト投影語彙 | 署名付き承認レシートと、監査人の要件に対応した改変不可能なレシートチェーン |
| 承認ゲート、承認待ち受信トレイ、チャネル承認、ツール台帳イベント、監査記録 | 本番の取り込みワークフローに接続された、高度なコネクターの隔離/取り消し/ローテーション操作 |
コンプライアンスとAI Actへの対応
Tandemは、チームが人間による監視、スコープを限定したツール、永続的な実行証跡、保護対象アクションの制御を備えたAIワークフローを運用するのに役立ちます。規制対象またはセキュリティ上の重要度が高いデプロイでは、まずEU AI Act対応ガイドを確認し、次にコンプライアンススターターパックを利用してください。これには、管理策のマッピング、Article 50の透明性に関するガイダンス、デプロイヤー向け手順、Annex IVのドキュメントテンプレート、制限事項/責任マトリックスが含まれます。
30秒クイックスタート
Webコントロールパネル
マスターCLIをインストールしてから、パネルとそのエンジンサービスをブートストラップします。
npm i -g @frumu/tandem
tandem install panel
tandem panel init
tandem panel open
エンジンをバックエンドとするブラウザーベースのコントロールセンターを利用する場合は、こちらを使ってください。
ローカルインストールでは、Settings -> Providers -> openai-codexを開き、Connect Codex Accountを選択すると、OpenAI APIキーを貼り付けずにブラウザーからサインインできるようになりました。
デスクトップ
- Tandemをダウンロードして起動します:tandem.ac
- Settingsを開いてプロバイダーAPIキーを追加するか、ローカルコントロールパネルを使って
openai-codexのCodexアカウントに接続します。 - ワークスペースフォルダーを選択します。
- タスクプロンプトを入力し、ImmediateまたはPlan Modeを選択して開始します。
編集可能なアプリのひな型
独自のフォルダーに、完全に編集可能なコントロールパネルアプリを生成します。
npm create tandem-panel@latest my-panel
cd my-panel
npm install
npm run dev
node_modulesを編集せずにルート、ページ、テーマ、スタイル、ランタイムの動作をカスタマイズする場合は、こちらを使ってください。
MCPを利用したセットアップ
既存のエージェントにTandemのインストールや設定を手伝ってもらう場合は、まずそのエージェントをTandemのMCPインターフェースに接続してください。MCPのドキュメントでは、独自のエージェントを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 のセットアップ
- Codex ユーザーは、tandem-codex-plugin リポジトリを通じて Tandem に接続できます。
- Docker ベースの Tandem エージェントのセットアップについては、tandem-agents をご覧ください。
オープンコアとソース公開アーキテクチャ
Tandem は、オープンコアモデルを採用し、開発者を第一に考えて構築されています。AI ランタイムを信頼するには、実行ルーターを一行ずつ監査できる必要があると考えています。
ローカル開発と評価: 寛容なライセンスのクレートとライブラリ(MIT OR Apache-2.0)は、それぞれのライセンス条件の下で使用できます。配布されるエンジンバイナリにはすべて、評価、開発、テスト、ソースコードの確認、個人的な非商用利用、本番環境以外での概念実証に無償で利用できる、ソース公開コンポーネント BUSL-1.1 も含まれます。
エンタープライズ向けの方針: エンタープライズ ID フェデレーション、より高度なポリシー適用、署名付きレシートチェーン、プライベートサイドカーによる適用、SIEM エクスポート、HA パッケージングなど、組織規模のデプロイ向けの高度な機能は、エンタープライズ向け機能として計画されており、商用またはソース公開の条件(宣言されている場合は 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 ランタイムが制御する内容 |
|---|---|
| ベンダーまたはポリシーのリスク評価 | 選択したソースを読み取り、出典を明記した成果物を作成し、制限事項を検証して、読み取りの段階では変更ツールを使用できないようにします。 |
| 承認が必要なメールまたは更新 | エージェントにアクションの下書きを作成させ、人的確認の段階で一時停止し、承認/やり直し/キャンセルの証拠が記録された後にのみ再開します。 |
| コードの移行を実行 | コーダーの実行、worktree の状態、変更されたファイル、検証、引き継ぎ成果物、承認ポイントを追跡します。 |
| 外部 MCP ツールを管理 | ワークフローのステップごとにコネクタツールの範囲を設定し、具体的なツールの証拠を必須とし、テナントのパスごとに MCP シークレットを分離します。 |
| 権限管理された社内メモリー | すべてをチャットに貼り付けるのではなく、ランタイムが管理するメモリーとナレッジスペースを通じて社内のコンテキストを取得します。 |
| テナント分離されたホステッドワークフロー | ホステッド/共有モードで、セッション、実行、イベント、認証情報、MCP シークレット、メモリーをテナントごとに分離します。 |
機能
管理された実行
- モデルは制御システムではありません: モデルは作業を提案できますが、使用可能なツール、コンテキスト、状態遷移、承認、監査証拠は Tandem が管理します。
- 範囲を限定したワークフロー実行: Automation V2 のノードには、組み込みのツールポリシーと MCP コネクタポリシーを設定でき、ステップごとに異なる機能を利用できます。
- 承認が必要なアクション: 重要な作業の前に実行を停止し、承認/やり直し/キャンセルの判断を待ち、記録された承認履歴とともに再開できます。
- 状態の維持: API のタイムアウトやコネクタの障害が発生しても維持されるチェックポイント、再生可能なイベント履歴、実行状態のマテリアライズ。
権限管理されたメモリーと社内ナレッジ
- テナントごとに分割されたメモリー: ベクトルベースのセッション、プロジェクト、グローバル、ファイルインポートの各メモリーパスには、テナントの範囲が設定されます。
- ナレッジスペース: 厳選されたナレッジスペースと項目は、テナントを考慮した API を通じて管理できます。
- ランタイムによる取得: エージェントはランタイムを通じてコンテキストを取得します。これにより、会話記録にすべてを詰め込むのではなく、権限管理された社内メモリーを実現する道が開かれます。
テナントとワークスペースの分離
- テナント対応レコード: セッション、自動化の定義と実行、コンテキストの実行、イベントストリーム、プロバイダーの認証情報、MCP シークレット参照、メモリ、コーダールートには、テナントコンテキストが含まれます。
- 厳格なコンテキスト契約: リソース参照、スコープ付きグラント、データクラス、プリンシパル、データ境界は、エンタープライズ契約でモデル化されています。
- ローカルでの動作を維持: デスクトップおよび開発者のワークフローでは、ローカル/デフォルトのシングルテナント利用が引き続き標準です。
MCP とツールのガバナンス
- MCP コネクターのサポート: Tandem は MCP サーバーに接続してツールを同期し、選択したコネクターツールをワークフローノードに適用できます。
- シークレットの分離: ストアで管理される MCP シークレット参照は、ホスト型/共有環境での解決前にテナントスコープを検証します。
- ツール検出を権限管理の対象に: ツール検出と MCP の可視性はランタイムポリシーによって管理されます。モデル呼び出し前に権限のないツールを完全にマスキングする機能は、今後のエンタープライズロードマップに含まれています。
人による承認ゲートと監査
- 承認インボックスとチャネル承認: オペレーターは、ランタイムが管理する承認画面から承認、修正依頼、キャンセルを行えます。
- 永続的な証跡: ツール台帳イベント、ゲート履歴、成果物、検証メタデータ、保護された監査イベントは、モデルのコンテキストウィンドウの外部に保持できます。
- 監査ストリーム: 管理者向けの監査ストリームと保護された監査エンベロープが利用できます。不変のレシートチェーンと署名付き承認レシートは、今後のロードマップに含まれています。
マルチエージェントのオーケストレーション
- カンバン主導の実行: エージェントはタスクを引き受け、ブロッカーを報告し、決定論的な状態管理を通じて作業を引き継ぎます。
- メモリを活用するワーカー: エージェントは、ランタイムの経路を通じて過去の実行コンテキスト、プロジェクトメモリ、ナレッジスペースを利用できます。
- リビジョン管理された連携: エンジンによって強制されるロックにより、エージェントが同じコードベースを同時に変更することを防ぎます。
ローカルおよびセルフホストの制御
- MCP ツールコネクター
- スケジュールされた自動化とルーティン
- HTTP + SSE API を備えたヘッドレスランタイム
- Windows、macOS、Linux 向けデスクトップランタイム
- ローカルの SecureKeyStore で API キーを暗号化(AES-256-GCM)
- ローカルの Codex OAuth 認証情報はエンジンが管理します。ブラウザー UI はサインインを開始しますが、リフレッシュトークンは保存しません
- ワークスペースへのアクセスは、明示的に許可したフォルダーに限定されます
- 書き込み/削除操作には、監督下のツールフローを通じた承認が必要です
- 機密性の高いパスはデフォルトで拒否されます(
.env、.ssh/*、*.pem、*.key、シークレット用フォルダー) - Tandem 自体から分析データやテレメトリが送信されることはありません
出力と成果物
- Markdown レポート
- HTML ダッシュボード
- PowerPoint(
.pptx)の生成
エンタープライズへの展開とロードマップ
Tandem には、ホスト型およびセルフマネージド環境でガバナンスに基づく AI 作業を行うためのランタイム基盤がすでに含まれています。今後のエンタープライズ機能では、この基盤を中心に、ID、ポリシー、監査エクスポート、管理機能を強化します。
現在利用可能:
- ランタイム認証モード、およびホスト型/エンタープライズ向けの署名付きコンテキストアサーション検証。
- テナント対応のセッション、実行、コンテキスト実行、イベントストリーム、プロバイダーの認証情報、MCP シークレット、メモリ、コーダールート。
- リソース、スコープ、プリンシパル、グラント、データクラス、データ境界に関するリソースアクセス制御の契約用語。
- 承認ゲート、保護された監査レコード、監査ストリーム、ツール台帳イベント、ランタイム成果物。
- シークレット参照、リソース参照、データクラス、隔離/失効/ローテーションの用語、スコープ付きメモリチャンク参照を使用した、コネクターのソースバインディング契約。
計画中のエンタープライズ機能:
- 完全な RBAC、OIDC/SSO、SCIM、SIEM エクスポート、SOC2 パッケージ、エンタープライズ管理ワークフロー。
- 必須モードでフェイルクローズを強制する、プライベートなエンタープライズサイドカーとポリシーブリッジ。
- 署名付き承認レシート、不変のレシートチェーン、より広範な監査/エクスポートの分離。
- モデル呼び出し前の完全なツール検出マスキング。
- 外部コネクター取り込みの管理プラットフォームと、本番環境向け取り込みフローの完全な実装。
プログラムによる API 利用
SDK は API クライアントです。tandem-engine は同梱されていません。
実行中の Tandem ランタイム(デスクトップのサイドカーまたはヘッドレスエンジン)が必要です。そのうえで SDK を使ってセッションを作成し、実行を開始して、イベントをストリーミングします。
ランタイムの選択肢:
-
ローカルで実行中のデスクトップアプリ(サイドカーランタイムを起動します)
-
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)
プロバイダーの設定
Settings でプロバイダーを設定します。
| プロバイダー | 説明 | API キーの取得先 |
|---|---|---|
| OpenAI Codex Account | ローカルで Codex アカウントを使うためのブラウザーサインイン | ローカルコントロールパネル:Settings -> Providers -> openai-codex |
| OpenRouter ⭐ | 1 つの API から多くのモデルを利用できます | openrouter.ai/keys |
| OpenCode Zen | コーディング向けに最適化された高速で費用対効果の高いモデル | opencode.ai/zen |
| Anthropic | Anthropic モデル(Sonnet、Opus、Haiku) | console.anthropic.com |
| OpenAI | GPT モデルと OpenAI エンドポイント | platform.openai.com |
| Ollama | ローカルモデル(リモート API キーは不要です) | セットアップガイド |
| Custom | OpenAI 互換の API エンドポイント | エンドポイント URL を設定 |
注意:
openai-codexは現在、ローカルエンジンを利用する Tandem セットアップ向けです。- 通常の
openaiプロバイダーでは、標準の OpenAI API キーも引き続き使用できます。
ウェブ検索の設定
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 は制御されたツールを通じて実行され、書き込みや削除の操作には明示的な承認が必要です。
- プロバイダーに依存しない設計:選択したモデルプロバイダーを経由してルーティングします。
- 明確なライセンス境界を備えた監査可能なソース:このリポジトリは複数のライセンスで構成されています。docs/LICENSING.md に記載のとおり、寛容なライセンスである
MIT、Apache-2.0、MIT OR Apache-2.0のコンポーネントと、ソース公開型のBUSL-1.1のコンパイラーおよびガバナンスコンポーネントが含まれています。
セキュリティとプライバシー
- テレメトリ:Tandem には、分析/トラッキング機能やホームへのテレメトリ送信は含まれていません。
- プロバイダーへの通信:AI リクエストの内容は、設定したエンドポイント(クラウドプロバイダーまたはローカルの Ollama/カスタムエンドポイント)にのみ送信されます。
- ネットワークの範囲:デスクトップランタイムは、ローカルのサイドカー(
127.0.0.1)および設定したエンドポイントと通信します。 - アップデーター/リリースの確認:アプリのアップデートやリリースメタデータの取得時に、GitHub のエンドポイントに接続することがあります。
- 認証情報の保存:プロバイダーキーは暗号化(AES-256-GCM)して保存されます。
- ファイルシステムの安全性:アクセスは許可されたフォルダーに限定され、機密性の高いパスはデフォルトで拒否されます。
脅威モデルと報告手順の詳細は、SECURITY.md を参照してください。
詳細情報
- アーキテクチャの概要:ARCHITECTURE.md
- エンジンランタイムと CLI のリファレンス:docs/ENGINE_CLI.md
- デスクトップ/ランタイム通信の仕様:docs/ENGINE_COMMUNICATION.md
- エンジンのテストとスモークテスト:docs/ENGINE_TESTING.md
- ドキュメントポータル:docs.tandem.ac
OAuth/認証必須のフローや再試行を含む高度な MCP の動作については、docs/ENGINE_CLI.md に記載されています。
高度なセットアップ(ソースからビルド)
前提条件
| プラットフォーム | 追加の要件 |
|---|---|
| Windows | Visual Studio 用ビルドツール |
| macOS | Xcode コマンドラインツール:xcode-select --install |
| Linux | libwebkit2gtk-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
ローカルでビルドしたアップデーター用アーティファクトを使用する場合は、独自の署名キーを生成して、次を設定してください。
pnpm tauri signer generate -w ./src-tauri/tandem.keyTAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PASSWORDsrc-tauri/tauri.conf.json内のpubkey
出力先:
# 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 を拒否しています。
- 正しいアーキテクチャ(
aarch64/arm64とx86_64/x64)であることを確認します。 - Finder から開いてみます(右クリック →「開く」または「システム設定」→「プライバシーとセキュリティ」→「このまま開く」)。
- 技術者以外への配布では、リリース自動化で署名と公証を済ませたアーティファクトを配布してください。
コントリビューション
コントリビューションを歓迎します。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
スター履歴
ライセンス
このリポジトリでは、複数のライセンスモデルを採用しています。docs/LICENSING.md に、パッケージごとのライセンスを網羅した一覧を記載しています。
-
コアエンジンのクレートとツール(例:
tandem-core、tandem-server、tandem-types、tandem-orchestrator、その他crates/内のもの):- マニフェストまたは個別のライセンスに別段の定めがない限り、
MIT OR Apache-2.0の下でライセンスされています - LICENSE-MIT と LICENSE-APACHE をご覧ください
- マニフェストまたは個別のライセンスに別段の定めがない限り、
-
ミッションコンパイラーのクレート(
tandem-plan-compiler):- Business Source License 1.1(
BUSL-1.1)の下でライセンスされています - 条件については
crates/tandem-plan-compiler/LICENSEをご覧ください
- Business Source License 1.1(
-
ガバナンスエンジンのクレート(
tandem-governance-engine):- Business Source License 1.1(
BUSL-1.1)の下でライセンスされています - 条件については
crates/tandem-governance-engine/LICENSEをご覧ください
- Business Source License 1.1(
-
インシデントモニターのクレート(
tandem-incident-monitor):- Business Source License 1.1(
BUSL-1.1)の下でライセンスされています - 条件については
crates/tandem-incident-monitor/LICENSEをご覧ください
- Business Source License 1.1(
-
エンタープライズサーバーのクレート(
tandem-enterprise-server):- Business Source License 1.1(
BUSL-1.1)の下でライセンスされています - 条件については
crates/tandem-enterprise-server/LICENSEをご覧ください
- Business Source License 1.1(
-
エンジンサーバーのクレート(0.7.0 以降の
tandem-server):- Business Source License 1.1(
BUSL-1.1)の下でライセンスされています - 条件については
crates/tandem-server/LICENSEをご覧ください
- Business Source License 1.1(
要約すると、Tandem はオープンコアです。制限の緩やかなプロトコル、SDK、クライアント、ローカルツールの機能はオープンソースですが、エンジンサーバー、ミッション/プランコンパイラー、再帰的ガバナンスエンジン、インシデントモニター、エンタープライズサーバーは Business Source License の条件に基づき、ソースコードを入手できます。
このリポジトリのいずれのライセンスも、商標権を付与するものではありません。「Tandem」、「Frumu」、および関連するロゴは Frumu LTD の商標です。使用ポリシーについては TRADEMARKS.md をご覧ください。
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。