はじめに
🌐 他の言語
このガイドでは、Symbi のセットアップと初めてのAIエージェントの作成について説明します。
目次
前提条件
Symbi を使い始める前に、以下がインストールされていることを確認してください:
必須の依存関係
- Docker(コンテナ化開発用)
- Rust 1.88+(ローカルビルドする場合)
- Git(リポジトリのクローン用)
オプションの依存関係
- Qdrant ベクトルデータベース(セマンティック検索機能用)
- SchemaPin Go CLI(ツール検証用)
インストール
オプション1:Docker(推奨)
最も簡単に始める方法はDockerを使用することです:
# リポジトリをクローン
git clone https://github.com/thirdkeyai/symbiont.git
cd symbiont
# 統合 symbi コンテナをビルド
docker build -t symbi:latest .
# または事前ビルドされたコンテナを使用
docker pull ghcr.io/thirdkeyai/symbi:latest
# 開発環境を実行
docker run --rm -it -v $(pwd):/workspace symbi:latest bash
オプション2:ローカルインストール
ローカル開発の場合:
# リポジトリをクローン
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
初めてのエージェント
Symbi の基本を理解するために、シンプルなデータ分析エージェントを作成してみましょう。
1. エージェント定義の作成
新しいファイル my_agent.dsl
を作成します:
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.dsl
# ランタイムでエージェントを実行
cd crates/runtime && cargo run --example basic_agent -- --agent ../../my_agent.dsl
DSL の理解
Symbi DSL には以下のキーコンポーネントがあります:
メタデータブロック
metadata {
version = "1.0.0"
author = "developer"
description = "Agent description"
}
ドキュメントとランタイム管理のためのエージェントの基本情報を提供します。
エージェント定義
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
}
ランタイムで強制される宣言的セキュリティポリシーです。
実行コンテキスト
with memory = "persistent", privacy = "high" {
// エージェントの実装
}
メモリ管理とプライバシー要件のランタイム設定を指定します。
次のステップ
サンプルの探索
リポジトリには複数のサンプルエージェントが含まれています:
# 基本エージェントのサンプル
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
- すべてのアクティブエージェントを一覧表示POST /api/v1/workflows/execute
- ワークフローを実行
ベクトルデータベース統合
セマンティック検索機能用:
# Qdrant ベクトルデータベースを開始
docker run -p 6333:6333 qdrant/qdrant
# RAG 機能を持つエージェントを実行
cd crates/runtime && cargo run --example rag_example
設定
環境変数
最適なパフォーマンスのために環境を設定します:
# 基本設定
export SYMBI_LOG_LEVEL=info
export SYMBI_RUNTIME_MODE=development
# ベクトルデータベース(オプション)
export QDRANT_URL=http://localhost:6333
# MCP 統合(オプション)
export MCP_SERVER_URLS="http://localhost:8080"
ランタイム設定
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
url = "http://localhost:6333"
collection_name = "symbi_knowledge"
よくある問題
Docker の問題
問題:Docker ビルドが権限エラーで失敗
# 解決策:Docker デーモンが実行中で、ユーザーに権限があることを確認
sudo systemctl start docker
sudo usermod -aG docker $USER
問題:コンテナがすぐに終了する
# 解決策:Docker ログを確認
docker logs <container_id>
Rust ビルドの問題
問題:Cargo ビルドが依存関係エラーで失敗
# 解決策:Rust を更新してビルドキャッシュをクリア
rustup update
cargo clean
cargo build
問題:システム依存関係が不足
# 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.dsl
# デバッグログを有効化
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 機能を学ぶ
- ランタイムアーキテクチャ - システム内部を理解する
- セキュリティモデル - セキュリティポリシーを実装する
- コントリビューション - プロジェクトに貢献する
素晴らしいものを構築する準備はできましたか?サンプルプロジェクトから始めるか、完全な仕様に深く入り込んでみてください。