はじめに¶
Symbiont 2.0: 更新前に移行ガイドとリリースの検証を確認してください。プロンプトキャッシュとガバナンス下の改善機能は明示的な有効化が必要なオプションです。既存エージェントで自動的に有効になることはありません。
封じ込めのもとでエージェントを実行しますか?実行の前提条件、承認まわりの変更点、現在のカバー範囲については、まず封じ込めの運用ガイドをお読みください。
このガイドでは、Symbiのセットアップと初めてのAIエージェントの作成について説明します。
▶ 入門ウォークスルー動画を見る:
目次¶
前提条件¶
必要なものは、Symbiのインストールおよび実行方法によって異なります。
ビルド済みバイナリを実行する場合¶
ビルド済みバイナリはすでにコンパイルされているため、インストールや実行に Rust、protobuf、Git は 不要 です。Homebrew、インストールスクリプト(curl)、または GitHub Releases からの手動ダウンロードでインストールできます。
- Docker は、デフォルトのサンドボックスティア(
tier1、Docker ベース)でエージェントを実行する場合に 実行時 にのみ必要です。Symbi のインストールや、symbi init、symbi dsl、symbi --versionの実行には 不要 です。
ソースからビルドする場合¶
cargo install でインストールする場合、またはリポジトリを自分でビルドする場合にのみ必要です:
- Rust 1.89+
- protobuf-compiler(Ubuntu では
apt install protobuf-compiler、macOS ではbrew install protobuf) - Git(リポジトリのクローン用)
オプション¶
- symbi-claude-code(Claude Code ガバナンスプラグイン)
- symbi-gemini-cli(Gemini CLI ガバナンス拡張機能)
注意: ベクトル検索は組み込みです。SymbiはLanceDBを組み込みベクトルデータベースとして同梱しており、外部サービスは不要です。
インストール¶
オプション1:ビルド済みバイナリ¶
macOS(Homebrew):
Linux / macOS(リポジトリのインストーラー):
curl -fsSL https://raw.githubusercontent.com/ThirdKeyAI/Symbiont/main/scripts/install.sh | bash
export PATH="$HOME/.symbi/bin:$PATH"
symbi --version
スクリプトには Bash、curl または wget、tar、sha256sum または shasum が必要です。一覧の該当項目がない場合、複数ある場合、チェックサムが一致しない場合はインストールを中止します。
リポジトリのインストーラーは、展開前に HTTPS のリリース一覧に記載された SHA-256 を sha256sum または shasum で検証します。最新版を ~/.symbi/bin にインストールしますが、独立した Sigstore ID 検証は行いません。インストール先のルートを変える場合は bash プロセスに SYMBI_INSTALL_DIR を設定してください。バージョンを固定する場合は手動でダウンロードします。
手動ダウンロードは Linux x86_64/ARM64、macOS ARM64、Windows x86_64 に対応します。Windows では ZIP を使用してください。PATH に追加する前にリリースを検証してください。
Landlock は Linux のプロジェクト単位で symbi init --sandbox landlock により選択します。Landlock ABI 6+、seccomp、非特権のユーザー・マウント・ネットワーク名前空間、cgroup v2 の委任、systemd ユーザーマネージャーが必要です。Linux の設定を参照してください(英語)。
オプション2: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
ランタイム API は http://localhost:8080 で、HTTP 入力は http://localhost:8081 で公開されます。
クローンから作業したい場合(イメージを自分でビルドしたり、テストを実行したりする場合):
git clone https://github.com/thirdkeyai/symbiont.git
cd symbiont
# 統合symbiコンテナをビルド
docker build -t symbi:latest .
# 開発環境を実行
docker run --rm -it -v $(pwd):/workspace symbi:latest bash
オプション3:ローカルインストール¶
ローカル開発の場合:
# リポジトリをクローン
git clone https://github.com/thirdkeyai/symbiont.git
cd symbiont
# Rustの依存関係をインストールしてビルド
cargo build --release
# インストールを確認するためにテストを実行
cargo test
インストールの確認¶
すべてが正常に動作することをテストします:
# DSLパーサーをテスト
cd crates/dsl && cargo run && cargo test
# ランタイムシステムをテスト
cd ../runtime && cargo test
# サンプルエージェントを実行
cargo run --example basic_agent
cargo run --example full_system
# 統合symbi CLIをテスト
cd ../.. && cargo run -- dsl --help
cargo run -- mcp --help
# Dockerコンテナでテスト
docker run --rm symbi:latest --version
docker run --rm -v $(pwd):/workspace symbi:latest dsl parse --help
docker run --rm symbi:latest mcp --help
API キーなしで試す¶
モデルプロバイダーを設定する前に、2 つの機能がオフラインで動作します。どちらも Symbiont が実際に行うことを示すため、ここから始めてください。
ツールを定義してドライランする。 引数の型、スコープ制限、インジェクション検査は、何かが実行される前に強制されます。
greet OK
✓ target (string): example → OK
Command: greet example
Cedar: Tool::Greet / execute_tool
[dry run — command not executed]
エージェントの実行にはモデルプロバイダーが必要です — クラウドキーまたはローカルモデルのいずれかで、どちらも以下で説明します。
プロジェクト初期化¶
新しいSymbiontプロジェクトを始める最も速い方法は symbi init です:
これにより、以下の手順を案内するインタラクティブウィザードが起動します:
- プロファイル選択: minimal、assistant、dev-agent、または multi-agent
- SchemaPinモード: tofu(Trust-On-First-Use)、strict、または disabled
- サンドボックスティア: landlock(ネイティブ Linux)、tier0(なし、開発専用)、tier1(Docker)、tier2(gVisor / runsc)、または tier3(Firecracker microVM)
--sandbox landlock --profile dev-agent を指定すると、ウィザードはさらにソースリポジトリ、インストール済みの Claude Code 実行ファイル、Messages 互換の推論 URL、モデル、資格情報の環境変数名を尋ねます。そして、別の空の制御ディレクトリに読み取り専用のレビュー構成を生成します。非インタラクティブに呼び出す場合は、--source、--managed-executable、--inference-url、--inference-model、--inference-key-env を指定する必要があります。Linux 開発者向けオンボーディングを参照してください。
init が生成するもの¶
すべての実行で次が書き込まれます:
| ファイル | 目的 |
|---|---|
symbiont.toml |
ランタイムおよびポリシー設定 |
policies/default.cedar |
デフォルトで拒否する Cedar ポリシー |
agents/*.symbi |
プロファイル固有のエージェント定義(後方互換のため .dsl も認識される;minimal を除く) |
AGENTS.md |
宣言されたエージェントの自動生成インデックス |
.symbiont/audit/ |
改ざん防止監査ログディレクトリ |
.gitignore |
.env を含む Symbiont 固有のエントリを追記 |
.env |
/dev/urandom から生成された SYMBIONT_MASTER_KEY(パーミッション 0600) |
.env.example |
必要な環境変数を示すコミット可能なテンプレート |
docker-compose.yml |
ボリュームマウントと環境変数配線を備えたコンポーズファイル。Landlock では生成されません |
--no-docker-compose を渡すとコンポーズファイルをスキップし、--dir <PATH> でカレント以外のディレクトリに書き込みます(Docker コンテナ内で実行する場合は必須 — 下記参照)。
非インタラクティブモード¶
CI/CDやスクリプトセットアップの場合:
Docker 内で init を実行する¶
イメージの WORKDIR は /var/lib/symbi であるため、マウントされたボリュームに書き込むには --dir を使用します:
docker run --rm -v $(pwd):/workspace ghcr.io/thirdkeyai/symbi:latest \
init --profile assistant --no-interact --dir /workspace
これにより、ホストのカレントディレクトリに完全なプロジェクトツリーが配置されます。
プロファイル¶
| プロファイル | 作成されるもの |
|---|---|
minimal |
symbiont.toml + デフォルトCedarポリシー |
assistant |
+ 単一のガバナンスアシスタントエージェント |
dev-agent |
+ 管理 CLI エージェント。Landlock では、設定済みの読み取り/一覧/検索ツール、範囲を限定したポリシー、DEVELOPMENT.md が追加されます |
multi-agent |
+ エージェント間ポリシー付きコーディネーター/ワーカーエージェント |
カタログからのインポート¶
一般的なプロファイルと共にビルド済みエージェントをインポートできます(読み取り専用の Landlock 開発用初期化はカタログのインポートと併用できません):
利用可能なカタログエージェントを一覧:
初期化後、検証して起動:
symbi dsl -f agents/assistant.symbi # エージェントを検証
symbi run assistant -i '{"query": "hello"}' # 単一エージェントをテスト
symbi up # ランタイムをローカルで起動
docker compose up # ...または Docker で起動(.env を読み込む)
単一エージェントの実行¶
完全なランタイムサーバーを起動せずに単一のエージェントを実行するには symbi run を使用します:
このコマンドはエージェント名を解決する際に、直接パス、次に agents/ ディレクトリの順で検索します。環境変数(OPENROUTER_API_KEY、OPENAI_API_KEY、または ANTHROPIC_API_KEY)からクラウド推論をセットアップし、ORGA推論ループを実行して終了します。
symbi run assistant -i 'Summarize this document'
symbi run agents/recon.symbi -i '{"target": "10.0.1.5"}' --max-iterations 5
ツールコマンド、パーサー、MCP、PTY の実行には、選択されたコンテナバックエンド、宣言された実行ファイルを含むキャッシュ済みイメージ、および明示的なデータマウントが必要です。バックエンドが利用できない場合、ホスト実行にフォールバックすることはできません。選択されたエージェント設定とプロジェクトの既定値は、推論の前に検査されます。実行には保護された .symbiont/governed/ ストレージも必要で、公開の監査参照が出力されます。コマンドの設定および実行監査を参照してください。
ローカルモデルを使う¶
プロバイダーはクラウドサービスである必要はありません。OPENAI_BASE_URL を OpenAI 互換のサーバー — Ollama、vLLM、LM Studio、llama.cpp はいずれも提供します — に向ければ、クラウドキーは一切不要です。
export OPENAI_API_KEY=ollama
export OPENAI_BASE_URL=http://localhost:11434/v1
export CHAT_MODEL=llama3.1
symbi run assistant -i 'hello'
同じ 3 つの変数が symbi up でも使えます。ベース URL が平文の http:// の場合、キーがリクエストとともに送られるため Symbiont は警告します。自分のマシン上のモデルであれば想定内です。
テンプレートから始める(symbi new)¶
symbi init は汎用的なプロジェクトをスキャフォールドしますが、symbi new はタスク指向の複数のテンプレートのいずれかを中心にプロジェクトをスキャフォールドします。必要なエージェント群が決まる前に、必要なエージェントの種類が分かっている場合に便利です。
同梱テンプレート:
| テンプレート | 内容 |
|---|---|
webhook-min |
最小限のWebhook駆動エージェント -- HTTP Input設定とハンドラDSL |
webscraper-agent |
Cedarアクセスポリシーと ToolClad スクレイパーツールを備えたスクレイピングエージェント |
slm-first |
ルーター + SLM許可リスト + 信頼度フォールバックパターン |
rag-lite |
Qdrantベースの取り込みスクリプトと検索エージェント |
symbi new と symbi init は補完関係にあります。new はタスク固有の出発点を提供し、init(+ --catalog)はガバナンス固有の出発点を提供します。両者を組み合わせることも可能です。new でスキャフォールドした後、symbi init --catalog ... でカタログから追加の既製エージェントを取り込めます。
初めてのエージェント¶
Symbiの基本を理解するために、シンプルなデータ分析エージェントを作成してみましょう。
1. エージェント定義の作成¶
新しいファイル my_agent.symbi を作成します:
metadata {
version = "1.0.0"
author = "your-name"
description = "My first Symbi agent"
}
agent greet_user(name: String) -> String {
capabilities = ["greeting", "text_processing"]
policy safe_greeting {
allow: read(name) if name.length <= 100
deny: store(name) if name.contains_sensitive_data
audit: all_operations with signature
}
with memory = "ephemeral", privacy = "low" {
if (validate_name(name)) {
greeting = format_greeting(name);
audit_log("greeting_generated", greeting.metadata);
return greeting;
} else {
return "Hello, anonymous user!";
}
}
}
2. エージェントの実行¶
# エージェント定義を解析して検証
cargo run -- dsl parse my_agent.symbi
# ランタイムでエージェントを実行
cd crates/runtime && cargo run --example basic_agent -- --agent ../../my_agent.symbi
DSLの理解¶
Symbi DSLには以下のキーコンポーネントがあります:
メタデータブロック¶
ドキュメントとランタイム管理のためのエージェントの基本情報を提供します。
エージェント定義¶
agent agent_name(parameter: Type) -> ReturnType {
capabilities = ["capability1", "capability2"]
// エージェントの実装
}
エージェントのインターフェース、機能、動作を定義します。
ポリシー定義¶
policy policy_name {
allow: action_list if condition
deny: action_list if condition
audit: operation_type with audit_method
}
ランタイムで強制される宣言的セキュリティポリシーです。
実行コンテキスト¶
メモリ管理とプライバシー要件のランタイム設定を指定します。
次のステップ¶
サンプルの探索¶
リポジトリには複数のサンプルエージェントが含まれています:
# 基本エージェントのサンプル
cd crates/runtime && cargo run --example basic_agent
# 完全なシステムデモ
cd crates/runtime && cargo run --example full_system
# コンテキストとメモリのサンプル
cd crates/runtime && cargo run --example context_example
# RAG強化エージェント
cd crates/runtime && cargo run --example rag_example
高度な機能の有効化¶
HTTP API(オプション)¶
# HTTP API機能を有効化
cd crates/runtime && cargo build --features http-api
# APIエンドポイントで実行
cd crates/runtime && cargo run --features http-api --example full_system
主要APIエンドポイント:
- GET /api/v1/health - ヘルスチェックとシステムステータス
- GET /api/v1/agents - リアルタイム実行ステータスを含むすべてのアクティブエージェント一覧
- GET /api/v1/agents/{id}/status - 詳細なエージェント実行メトリクスの取得
- POST /api/v1/workflows/execute - ワークフローを実行
新しいエージェント管理機能: - リアルタイムプロセス監視とヘルスチェック - 実行中のエージェントのグレースフルシャットダウン機能 - 包括的な実行メトリクスとリソース使用追跡 - 異なる実行モード(エフェメラル、永続、スケジュール、イベントドリブン)のサポート
クラウドLLM推論¶
OpenRouter経由でクラウドLLMプロバイダーに接続:
# クラウド推論を有効化
cargo build --features cloud-llm
# APIキーとモデルを設定
export OPENROUTER_API_KEY="sk-or-..."
export OPENROUTER_MODEL="google/gemini-2.0-flash-001" # オプション
スタンドアロンエージェントモード¶
LLM推論を備えたクラウドネイティブエージェントのワンライナー:
Note: Composio MCP and SymbiBot integration were removed in this version due to security concerns — see SECURITY_AUDIT.md C3 for context.
高度な推論プリミティブ¶
ツールキュレーション、スタックループ検出、コンテキストプリフェッチ、スコープ付きコンベンションを有効化:
完全なドキュメントはorga-adaptiveガイドを参照してください。
Cedarポリシーエンジン¶
Cedarポリシー言語による正式認可。v1.14.x 以降デフォルトで有効: 公開されている symbi バイナリ(crates.io、Docker、GitHub Release tarball)には Cedar が含まれており、symbi up / symbi run は起動時に policies/*.cedar ファイルから CedarPolicyGate を自動配線します。ファイルが存在しない場合、ランタイムはフェイルクローズドな DefaultPolicyGate にフォールバックします。Cedar なしでビルドするには(たとえば代わりに OpaPolicyGateBridge やカスタム ReasoningPolicyGate を配線する場合)、以下を使用します:
ベクトルデータベース(組み込み)¶
SymbiはLanceDBをゼロ設定の組み込みベクトルデータベースとして含んでいます。セマンティック検索とRAGは追加設定なしで動作します -- 別途サービスを起動する必要はありません:
# RAG機能を持つエージェントを実行(ベクトル検索はそのまま動作)
cd crates/runtime && cargo run --example rag_example
# 高度な検索を使用したコンテキスト管理のテスト
cd crates/runtime && cargo run --example context_example
最小ビルド: LanceDBはデフォルトで含まれていますが、より軽量なバイナリのために除外できます:
cargo build --no-default-features。ランタイムは何もしないベクトルバックエンドへ適切にフォールバックします。スケール構成のデプロイ: Qdrantはオプションのバックエンドとして利用可能です。
--features vector-qdrantでビルドし、SYMBIONT_VECTOR_BACKEND=qdrantを設定してください。
コンテキスト管理機能: - マルチモーダル検索: キーワード、時間、類似性、ハイブリッド検索モード - 重要度計算: アクセスパターン、最新性、ユーザーフィードバックを考慮した高度なスコアリングアルゴリズム - アクセス制御: エージェントスコープのアクセス制御を備えたポリシーエンジン統合 - 自動アーカイブ: 圧縮ストレージとクリーンアップを備えた保持ポリシー - 知識共有: 信頼スコアを備えた安全なクロスエージェント知識共有
フィーチャーフラグリファレンス¶
| Feature | 説明 | デフォルト |
|---|---|---|
keychain |
シークレット用OSキーチェーン統合 | はい |
vector-lancedb |
LanceDB組み込みベクトルバックエンド | はい |
vector-qdrant |
Qdrant分散ベクトルバックエンド | いいえ |
embedding-models |
Candle経由のローカルエンベディングモデル | いいえ |
http-api |
Swagger UI付きREST API | いいえ |
http-input |
JWT認証付きWebhookサーバー | いいえ |
cloud-llm |
クラウドLLM推論(OpenRouter) | いいえ |
standalone-agent |
クラウドLLM メタフィーチャー | いいえ |
cedar |
Cedarポリシーエンジン — 起動時に policies/*.cedar から自動配線 |
Yes |
orga-adaptive |
高度な推論プリミティブ | いいえ |
cron |
永続cronスケジューリング | いいえ |
cli-executor |
ガバナンス対象のAI CLIサブプロセス(Claude Code など) — Mode B | はい |
native-sandbox |
ネイティブプロセスサンドボックス | いいえ |
metrics |
OpenTelemetryメトリクス/トレーシング | いいえ |
mcp-client |
MCPベースのToolCladツール実行、stdio経由(SchemaPin検証済み) | No |
toolclad-browser |
ブラウザ(CDP)ToolCladバックエンド — スタブのみ;CDPバックエンドが実装されるまで明示的なエラーを返す | No |
interactive |
symbi init のインタラクティブプロンプト(dialoguer) |
デフォルト |
full |
オプションのランタイム、ベクトル、ポリシー機能のすべて | いいえ |
# 特定の機能でビルド
cargo build --features "cloud-llm,orga-adaptive,cedar"
# すべてでビルド
cargo build --features full
AIアシスタントプラグイン¶
Symbiontは、人気のAIコーディングアシスタント向けに、3段階の漸進的な保護ティアを備えたファーストパーティのガバナンスプラグインを提供します:
- Awareness(デフォルト) — 状態を変更するすべてのツール呼び出しを助言的にログ記録
- Protection — ブロッキングフックがローカルの拒否リスト(
.symbiont/local-policy.toml)を強制 - Governance —
symbiがPATH上にある場合にCedarポリシー評価を実行
拒否リストの設定はツール非依存です — 同じ .symbiont/local-policy.toml が両方のプラグインで機能します:
[deny]
paths = [".env", ".ssh/", ".aws/"]
commands = ["rm -rf", "git push --force"]
branches = ["main", "master", "production"]
Claude Code¶
# マーケットプレイスからインストール
/plugin marketplace add https://github.com/thirdkeyai/symbi-claude-code
# 利用可能なスキル: /symbi-init, /symbi-policy, /symbi-verify, /symbi-audit, /symbi-dsl
詳細は symbi-claude-code を参照してください。
Mode B: ガバナンス対象のClaude Codeサブプロセス¶
metadata { executor = "claude_code" } を宣言したエージェントは、選択された Docker / gVisor のコンテナ内で、スクラッチストレージとランタイム専用の推論チャネル・ツールチャネルを使って CLI の子プロセスを実行します。同梱の code_reviewer がリファレンスエージェントです。まず、キャッシュ済みの CLI / Python イメージ、明示的なバックエンドのソースマウント、登録済みの ToolClad ツールと Cedar ポリシー、[managed_cli.inference] を設定してください。完全な例は管理 CLI の封じ込めを参照してください。
# /srv/source は制御プロジェクト内の明示的なバックエンドマウントに対応している必要があります。
symbi run code_reviewer --target /srv/source --max-turns 12 --budget-timeout 15m
# 承認が必要なツールに対して運用者のレビューを追加します。
symbi run code_reviewer --target /srv/source --approval-terminal
子プロセスには、ソースの直接マウント、外部ネットワークへのアクセス、ホストのログイン状態、プロバイダーの資格情報はいずれも与えられません。許可されたファイルおよび Git へのアクセスは、登録済みツールが仲介します。組み込みツールと自動検出は無効化されます。すべてのアクションにはランタイムの認可が必要であり、起動時の承認が以降のアクションを認可することはありません。プラグインは読み込まれず、--plugin-dir は拒否されます。
| フラグ/設定 | 目的 |
|---|---|
--target |
明示的なバックエンドマウントに対応付けられたソースディレクトリ |
--max-turns |
会話の上限。デフォルトは 12 |
--budget-timeout |
初期化を含む実時間の上限。デフォルトは 15m |
--budget-tokens |
予約される推論の出力トークン枠。デフォルトは 100000。課金対象の総トークン数ではありません |
--approval-terminal |
必須の承認について、制御端末でのレビューをオプトインで有効化 |
[managed_cli.inference] |
プロバイダーのエンドポイント、モデル、資格情報の変数を明示的に指定。資格情報はランタイム側に留まります |
必須となる署名付きセッションジャーナルは、非公開の .symbiont/governed/ ストレージに保存されます。ランタイムは検証用の公開鍵を出力します。承認の欠落、安全でない監査ストレージ、バックエンドの利用不可、クリーンアップの失敗が、黙って成功として報告されることはありません。推論レスポンスは SSE を含めてバッファリングされるため、ストリーミング出力には遅延が生じます。
Gemini CLI¶
Gemini CLI拡張機能は、excludeTools マニフェストによるブロッキングと、プラットフォームレベルでのネイティブ policies/*.toml 強制を通じて、追加の多層防御を提供します。
詳細は symbi-gemini-cli を参照してください。
設定¶
環境変数¶
最適なパフォーマンスのために環境を設定します:
# 必須:永続状態の暗号化に使用される 32 バイトの 16 進数キー。
# 生成方法: openssl rand -hex 32
# `symbi init` は自動的に .env に書き込みます。
export SYMBIONT_MASTER_KEY="..."
# 基本設定
export SYMBI_LOG_LEVEL=info
export SYMBI_RUNTIME_MODE=development
# ベクトル検索は組み込みのLanceDBバックエンドでそのまま動作します。
# 代わりにQdrantを使用する場合(オプション、`vector-qdrant` フィーチャーを有効化):
# export SYMBIONT_VECTOR_BACKEND=qdrant
# export QDRANT_URL=http://localhost:6333
# MCP統合(オプション)
export MCP_SERVER_URLS="http://localhost:8080"
セキュリティ関連の環境変数(v1.13.0 監査後)¶
| 変数 | デフォルト | 効果 |
|---|---|---|
SYMBI_INSECURE_ALLOW_ALL |
未設定 | 1 に設定すると、symbi up / symbi run が許可的ポリシーゲート(すべてのツール呼び出しと委任が許可される)を使用します。--insecure-allow-all フラグと同等です。目立つ stderr バナーが表示されます。ローカル開発専用です。 これがない場合、推論ループはフェイルクローズで、明示的なポリシーバックエンドが配線されるまでツール呼び出しと委任を拒否します。 |
SYMBI_REJECT_LEGACY_API_KEYS |
未設定 | 1 に設定すると、API キーバリデータがプレフィックスなしキー向けの非推奨 O(n) Argon2 スキャンを短絡します。すべてのキーを keyid.secret フォーマットで再発行した直後に使用してください。レガシーパスは次のマイナーリリースでいずれにせよ削除されます。 |
SYMBI_UNSAFE_NATIVE_SANDBOX |
未設定 | native サンドボックスランナーを構築するために必須です(SYMBI_ENV=production が設定されていないことに加えて)。native-sandbox Cargo フィーチャーもリリースビルドではコンパイルに失敗します。ネイティブランナーは隔離を一切提供せず、ローカルデバッグのみを意図しています。 |
SYMBI_TRUSTED_PROXIES |
未設定 | 信頼されたリバースプロキシ用 CIDR 許可リスト。X-Forwarded-For はこれらのアドレスからのみ尊重されます。 |
以下の環境変数は削除されました:
SYMBIONT_ALLOW_NO_JWT_AUDIENCE— JWT 検証器は常にaudを必須とします。(v1.13.0 監査後に削除。安全でないエスケープハッチでした。)COMPOSIO_API_KEY、COMPOSIO_MCP_URL— Composio MCP 統合は完全に削除されました。SECURITY_AUDIT.mdC3 を参照してください。
ランタイム設定¶
symbi.toml 設定ファイルを作成します:
[runtime]
max_agents = 1000
memory_limit_mb = 512
execution_timeout_seconds = 300
[security]
default_sandbox_tier = "docker"
audit_enabled = true
policy_enforcement = "strict"
[vector_db]
enabled = true
backend = "lancedb" # デフォルト;"qdrant" もサポート
collection_name = "symbi_knowledge"
# url = "http://localhost:6333" # backend = "qdrant" の場合のみ必要
ヒューマン・イン・ザ・ループの承認¶
マニフェストやサブコマンドで定められた承認要件は、Cedar が呼び出しを許可している場合でも必須のままです。共有キューは、権限のある判断、期限切れ、またはキャンセルがあるまで各リクエストを保持します。1 つの通知先が停止しても、他の承認サーフェスがブロックされることはありません。
- 通常/管理 CLI:
--approval-terminalを付けます。必要に応じて--approval-timeout 120(1〜3600 秒)も指定します。エスケープ済みの完全な JSON をレビューし、制御端末でapprove <request-id>を正確に入力します。このフラグがない場合、承認が必要な呼び出しはフェイルクローズします。 - REST: 認証済みの
GET /api/v1/approvals、POST /api/v1/approvals/{id}/approve、.../denyで保留中のリクエストを解決します。 - シェル: 処理中のターンの最中でも Ctrl+G で Gate パネルが開きます。↑/↓ で選択し、Enter でリクエスト全体をレビューしてスクロールしたうえで、
aまたはdを押します。/gateでもパネルが開きます。一覧の行だけでは承認できません。 - チャット: 許可リストに登録された送信者が
/symbi gate show <id>を実行し、表示された完全なレビューから/symbi gate approve <id> <review-digest>をコピーするか、/symbi gate deny <id>を送信します。ID のみの承認は拒否されます。メッセージが大きすぎる場合は、別のレビューサーフェスを併用する必要があります。
リクエストが変更、期限切れ、削除された場合は、改めてレビューが必要です。TUI は解決時のエラーと結果不明の状態を明示的に報告します。承認はゲートを通過する許可にすぎません。実際に実行されたかどうかは署名付きの実行監査で確認してください。Slack では、すべての環境で空でない署名シークレットと有効なコールバック署名が必要です。以前の未署名コールバックを許容するオーバーライドはサポートされなくなりました。制限事項と信頼の前提については承認のライフサイクルを参照してください。
タイムアウトとチャットの承認チャネルは symbiont.toml で設定します:
[escalation]
timeout_seconds = 120
[[escalation.approval_channels]]
platform = "slack"
channel_id = "C0APPROVERS"
approvers = ["U0ALICE", "U0BOB"] # 許可リストに登録した送信者 ID;空の場合はチャット経由で承認できる人はいません
よくある問題¶
Dockerの問題¶
問題:Dockerビルドが権限エラーで失敗
問題:コンテナがすぐに終了する
Rustビルドの問題¶
問題:Cargoビルドが依存関係エラーで失敗
問題:システム依存関係が不足
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install build-essential pkg-config libssl-dev
# macOS
brew install pkg-config openssl
ランタイムの問題¶
問題:エージェントの開始に失敗
# エージェント定義の構文を確認
cargo run -- dsl parse your_agent.symbi
# デバッグログを有効化
RUST_LOG=debug cd crates/runtime && cargo run --example basic_agent
ヘルプの取得¶
ドキュメント¶
- DSLガイド - 完全なDSLリファレンス
- ランタイムアーキテクチャ - システムアーキテクチャの詳細
- セキュリティモデル - セキュリティとポリシーのドキュメント
コミュニティサポート¶
- Issues: GitHub Issues
- ディスカッション: GitHub Discussions
- ドキュメント: 完全なAPIリファレンス
デバッグモード¶
トラブルシューティングのため、詳細ログを有効化します:
# デバッグログを有効化
export RUST_LOG=symbi=debug
# 詳細出力で実行
cd crates/runtime && cargo run --example basic_agent 2>&1 | tee debug.log
次は何ですか?¶
Symbiが動作するようになったので、これらの高度なトピックを探索してください:
- DSLガイド - 高度なDSL機能を学ぶ
- 推論ループガイド - ORGAサイクルを理解する
- 高度な推論 (orga-adaptive) - ツールキュレーション、スタックループ検出、プリハイドレーション
- ランタイムアーキテクチャ - システム内部を理解する
- セキュリティモデル - セキュリティポリシーを実装する
- コントリビューション - プロジェクトに貢献する
素晴らしいものを構築する準備はできましたか?サンプルプロジェクトから始めるか、完全な仕様に深く入り込んでみてください。
