
English | 中文简体 | Español | Português | 日本語 | Deutsch
本番環境向けポリシー制御エージェントランタイム。 同じエージェント。安全なランタイム。

ここで見えているもの: 実際のモデル (
claude-haiku-4.5) がエージェントフリートの一覧表示を要求します。Cedar のforbidルールが毎回のリトライでその呼び出しを拒否します — コード変更は不要、ポリシーだけです。コマンド1つで再現する ↓ · ▶ 完全なウォークスルー
Symbiont は、明示的なポリシー、アイデンティティ、監査制御の下で AI エージェントとツールを実行するための Rust ネイティブランタイムです。
多くのエージェントフレームワークはオーケストレーションに注力しています。Symbiont は、エージェントが実際のリスクを伴う実環境で動作する場面に注力しています:信頼されていないツール、機密データ、承認境界、監査要件、再現可能な適用。
AI エージェントはデモは簡単ですが、信頼を得るのは難しいものです。
エージェントがツールの呼び出し、ファイルへのアクセス、メッセージの送信、外部サービスの呼び出しを行えるようになると、プロンプトとグルーコードだけでは不十分です。必要なのは:
runsc)、または Firecracker microVM をエージェントごとに選択Symbiont はそのレイヤーのために構築されています。
Symbiont は Open Agent Trust Stack (OATS) のリファレンス実装です — 事後的なインターセプトではなく、構造的な強制を通じて AI エージェントの実行を保護するためのオープン仕様(CC BY 4.0)です(「許可されるものを定義し、それ以外はすべて構造的に表現不能にする」)。OATS 仕様は Symbiont の本番運用経験に根ざしており、Symbiont の設計は OATS のレイヤーを直接トレースしています:
| OATS Layer | Symbiont mapping |
|---|---|
| Layer 1 — ORGA Loop(typestate で強制された Observe-Reason-Gate-Act) | crates/runtime/src/reasoning/ — typestate で強制されたフェーズ。ポリシーゲートはコンパイル時にスキップ不能です。Wanger 2026 / DOI 10.5281/zenodo.19896446 を参照。 |
| Layer 2 — Tool Contracts | ToolClad の宣言的な .clad.toml マニフェスト + crates/runtime/src/toolclad/ 内の agent_summary typestate フェンス。Wanger 2026 / DOI 10.5281/zenodo.19957596 を参照。 |
| Layer 3 — Identity | MCP ツール向けの SchemaPin + AgentPin ES256 ドメイン固定エージェントアイデンティティ。 |
| Layer 4 — Policy Engine | Cedar ポリシーゲート(crates/runtime/src/reasoning/cedar_gate.rs)+ エージェント間呼び出し向けの CommunicationPolicyGate。両者とも v1.14.0 以降デフォルトでフェイルクローズです。 |
| Layer 5 — Audit Journal | 推論ループ内のハッシュチェーン化された Ed25519 署名付き BufferedJournal。crates/runtime/src/logging.rs 内の暗号化されたモデル I/O ログ。 |
Symbiont は OATS Extended(C1–C7 + E1–E8)に準拠しています。仕様の基礎となる構造的強制ランタイムの実証的比較は Wanger 2026 / DOI 10.5281/zenodo.20043247 を参照してください。
Cedar の forbid が特権ツールをブロックする一方、安全なツールは通過します。公開イメージに対してこれをコピー&ペーストしてください(クローン不要、ビルド不要):
docker run --rm --entrypoint sh ghcr.io/thirdkeyai/symbi:latest -c '
mkdir -p /tmp/p && cat > /tmp/p/policy.cedar <<EOF
forbid(principal, action == Symbi::Action::"tool_call::list_agents", resource);
permit(principal, action == Symbi::Action::"tool_call::system_health", resource);
EOF
echo "{\"tool_name\":\"list_agents\"}" | symbi policy evaluate --stdin --policies /tmp/p --json
echo "{\"tool_name\":\"system_health\"}" | symbi policy evaluate --stdin --policies /tmp/p --json'
{"decision":"deny","reason":"deny policies matched: policy_0","tool":"list_agents", ...}
{"decision":"allow","reason":"allow policies matched: policy_1","tool":"system_health", ...}
これは、ランタイムがライブの推論ループに組み込むのと同じ Cedar ゲートです — まさに上のデモで示された拒否そのものです。
# Linux / macOS — installs the `symbi` binary to /usr/local/bin
curl -fsSL https://symbiont.dev/install.sh | bash
symbi --help
インストーラーはお使いのプラットフォーム向けにビルド済みのリリースバイナリを取得します。bash -s -- --version v1.15.2 でバージョンを固定したり、--dir でインストール先を変更したりできます。Docker またはソースからのビルドをお好みですか?どちらも以下にあります。
# 1. 現在のディレクトリにプロジェクトを作成します。
# symbiont.toml、agents/、policies/、docker-compose.yml、および
# 新たに生成された SYMBIONT_MASTER_KEY を含む .env を生成します。
docker run --rm -v $(pwd):/workspace ghcr.io/thirdkeyai/symbi:latest \
init --profile assistant --no-interact --dir /workspace
# 2. ランタイムを起動します。.env を自動的に読み込みます。
docker compose up
これだけです — Runtime API は http://localhost:8080、HTTP Input は http://localhost:8081 で動作します。
ビルド済みエージェントを参照するには symbi init --catalog list(または Docker の同等コマンド)を使用してください。
# プロジェクトなしのアドホックランタイム(一時的、マスターキーなし)
docker run --rm -p 8080:8080 -p 8081:8081 ghcr.io/thirdkeyai/symbi:latest up
# MCP サーバーのみ
docker run --rm -p 8080:8080 ghcr.io/thirdkeyai/symbi:latest mcp
# エージェント定義を解析(`.symbi`。レガシーの `.dsl` も受け付けます)
docker run --rm -v $(pwd):/workspace ghcr.io/thirdkeyai/symbi:latest \
dsl -f /workspace/agent.symbi
cargo build --release
./target/release/symbi --help
# ローカルでプロジェクトをスキャフォールドし、ランタイムを起動します
./target/release/symbi init --profile assistant --no-interact
./target/release/symbi up
本番デプロイメントの場合は、信頼されていないツール実行を有効にする前に
SECURITY.mdとデプロイメントガイドを確認してください。
Symbiont はエージェントの意図と実行権限を分離します:
モデル出力が実行権限として扱われることはありません。ランタイムが実際に何が起こるかを制御します。
エージェントが未検証の MCP ツールを呼び出そうとします。ランタイムは:
forbid(action == Action::"tool_call") when { !resource.verified }コード変更は不要です。ポリシーが実行を制御します。
agent secure_analyst(input: DataSet) -> Result {
policy access_control {
allow: read(input) if input.verified == true
deny: send_email without approval
audit: all_operations
}
with memory = "persistent", requires = "approval" {
result = analyze(input);
return result;
}
}
完全な文法(metadata、schedule、webhook、channel ブロックを含む)については DSL ガイドを参照してください。
ファイル拡張子: Symbiont のエージェント定義は正規の拡張子として
.symbiを使用します(例:agents/assistant.symbi)。レガシーの.dsl拡張子は後方互換性のために今後も無期限に解析され続けますが、symbi initでスキャフォールドされる新しいプロジェクトおよびこのリポジトリ内のすべての例は.symbiを使用します。
| 機能 | 説明 |
|---|---|
| ポリシーエンジン | エージェントアクション、ツール呼び出し、リソースアクセスに対するきめ細かな Cedar 認可 |
| ツール検証 | 実行前の MCP ツールスキーマの SchemaPin 暗号化検証 |
| ツール契約 | ToolClad 宣言的契約による引数検証、スコープ強制、Cedar ポリシー生成 |
| エージェントアイデンティティ | エージェントおよびスケジュールタスク向けの AgentPin ドメイン固定 ES256 アイデンティティ |
| 推論ループ | ポリシーゲートとサーキットブレーカーを備えた型状態強制の Observe-Reason-Gate-Act サイクル |
| サンドボックス化 | Docker、gVisor (runsc)、または Firecracker microVM — DSL の with { sandbox = ... } ブロックでエージェントごとに選択可能 |
| 監査ログ | すべてのポリシー決定に対する構造化レコード付き改ざん防止ログ |
| シークレット管理 | Vault/OpenBao 統合、AES-256-GCM 暗号化ストレージ、エージェントごとのスコープ |
| MCP 統合 | ガバナンス付きツールアクセスを備えたネイティブ Model Context Protocol サポート |
追加機能:ツール/スキルコンテンツの脅威スキャン(40 ルール、10 攻撃カテゴリ)、Cron スケジューリング、永続エージェントメモリ、ハイブリッド RAG 検索(LanceDB/Qdrant)、Webhook 検証、配信ルーティング、OTLP テレメトリ、HTTP セキュリティ強化、Claude Code および Gemini CLI 向けガバナンスプラグイン。詳細は完全なドキュメントを参照してください。
代表的なベンチマークはベンチマークハーネスと閾値テストで確認できます。
Symbiont はシンプルな原則に基づいて設計されています:モデル出力は実行権限として信頼されるべきではない。
アクションはランタイム制御を通過します:
runsc syscall フィルター)、または Firecracker(microVM)信頼されていないコードやリスクの高いツールを実行する場合、脆弱なローカル実行モデルだけを境界として頼るべきではありません。SECURITY.md とセキュリティモデルドキュメントを参照してください。
| クレート | 説明 |
|---|---|
symbi |
統合 CLI バイナリ |
symbi-runtime |
コアエージェントランタイムおよび実行エンジン |
symbi-dsl |
DSL パーサーおよびエバリュエーター |
symbi-channel-adapter |
Slack/Teams/Mattermost アダプター |
repl-core / repl-proto / repl-cli |
インタラクティブ REPL および JSON-RPC サーバー |
repl-lsp |
Language Server Protocol サポート |
symbi-shell |
オーサリング、オーケストレーション、リモートアタッチのためのインタラクティブ TUI(Beta) |
symbi-a2ui |
管理ダッシュボード(Lit/TypeScript、アルファ版) |
ガバナンスプラグイン: symbi-claude-code | symbi-gemini-cli
本番環境での Symbiont の導入を検討している場合は、セキュリティモデルとはじめにドキュメントから始めてください。
アプリケーションから Symbiont ランタイムと連携するための公式クライアント SDK:
| 言語 | パッケージ | リポジトリ |
|---|---|---|
| JavaScript/TypeScript | symbiont-sdk-js | GitHub |
| Python | symbiont-sdk | GitHub |
本番環境での推奨: JS および Python の SDK は、アプリケーション統合やプロトタイピングを目的とした HTTP クライアントです。本番環境のエージェントワークロードには、Symbiont の完全な typestate ベースの安全性保証 — 機能認可、ポリシー適用、ライフサイクル不変条件がランタイムではなくコンパイル時に強制される — を活用するため、Rust 実装の上に直接構築することを推奨します。動的言語のクライアントは、リクエストがランタイム境界を越えた後にしかこれらのプロパティを検証できません。
エンタープライズライセンスについては ThirdKey にお問い合わせください。

$ claude mcp add Symbiont \
-- python -m otcore.mcp_server <graph>