110 lines
6.7 KiB
Markdown
110 lines
6.7 KiB
Markdown
[English](README.md) | 日本語
|
||
|
||
# MAESTRO
|
||
|
||

|
||

|
||

|
||

|
||

|
||
|
||
**MAESTRO** — タスクを LLM 駆動で実行するエージェントオーケストレーションプラットフォーム。タスクの種類を LLM が自動判定し、適切なワークフロー(**Piece**)で処理する。ツールはサンドボックス化されたランタイムで実行され、ワークスペース・ファイル・進捗を Web UI で管理できる。
|
||
|
||
OpenAI 互換の LLM エンドポイント([Ollama](https://ollama.com/) / vLLM など)があれば単体で動作する。
|
||
|
||
## スクリーンショット
|
||
|
||
ワークスペース画面。左端にワークスペース一覧、その隣に選択中ワークスペースのチャット一覧、残りの領域にエージェントとのライブ会話とレンダリング済み成果物が並ぶ。概要・進捗・ファイル・トレースはタブで切り替える:
|
||
|
||

|
||
|
||
<details>
|
||
<summary>ほかのスクリーンショット — ワークスペース・チャット一覧・設定</summary>
|
||
|
||
個人ワークスペースと案件ごとのワークスペースが並ぶ。同じエージェントがどこでも動く:
|
||
|
||

|
||
|
||
実行中 / 待機中 / 完了をひと目で把握できるチャット一覧(クイックフィルタ付き):
|
||
|
||

|
||
|
||
設定画面。`config.yaml` の各セクションがフォーム化(LLM ワーカー・サンドボックス・認証・ツールほか):
|
||
|
||

|
||
|
||
</details>
|
||
|
||
## 主な機能
|
||
|
||
- **タスク自動ルーティング** — タスク本文を LLM が分類し、最適な Piece(YAML ワークフロー)へ振り分け。
|
||
- **Piece × Movement** — ReAct ループで LLM とツールが対話しながら、段階的にタスクを進める。
|
||
- **豊富なツール群** — ファイル操作(Read/Write/Edit/Bash/Glob/Grep)、Office(PDF/Excel/Docx/PPTX)、Web 取得、ブラウザ操作(Playwright)、画像、SQLite、ナレッジ検索(RAG)、SSH、サブタスク並列実行、MCP 連携、ほか。
|
||
- **Bash サンドボックス** — bwrap によるファイルシステム/ネットワーク/環境変数の隔離(不在時は強化版 whitelist にフォールバック)。Python パッケージはプリベイク。
|
||
- **LLM Gateway(任意)** — 仮想キー・予算・メトリクス付きの LLM プロキシ。複数 GPU/チームでの共有運用に対応。
|
||
- **学習(Reflection)・定期タスク・タスク共有・OAuth 認証(Google/Gitea)** — いずれも任意で有効化。
|
||
- **Web UI** — タスク作成・進捗・成果物プレビュー・設定編集・スキル/Piece 管理。
|
||
|
||
## クイックスタート
|
||
|
||
### Docker(最短)
|
||
|
||
Linux でも、Windows の WSL2(Docker Desktop の WSL 統合)でも動く。
|
||
|
||
```bash
|
||
docker compose up -d # 初回はビルドしてから起動
|
||
# http://localhost:9876 を開く
|
||
```
|
||
|
||
`.env` や `config.yaml` は用意しなくても起動する。未設定のまま起動すると UI にセットアップウィザードが開き、そこから LLM の接続先を設定できる。先に指定しておきたい場合は `cp .env.example .env` して `OLLAMA_BASE_URL` / `OLLAMA_MODEL` を設定する。
|
||
|
||
Compose は `9876` を全インターフェースに公開するので、Docker ホストは初期状態から LAN で到達でき、設定するまで認証なし。共有ネットワークに置いたままにする前に、認証・`safety.bash_sandbox: always`・TLS(ネイティブ `server.tls` かリバースプロキシ)を有効化すること。ローカル限定に戻すにはマッピングを `127.0.0.1:9876:9876` に固定する。LLM エンドポイントは `.env` / `config.yaml` で指定する。
|
||
|
||
Docker の詳細ガイド(Linux のネットワーク・データ永続化・サンドボックス・トラブルシューティング)は **[docs/docker.md](docs/docker.ja.md)**。
|
||
|
||
### ソースから
|
||
|
||
```bash
|
||
git clone https://gitea.example.com/your-org/maestro.git
|
||
cd maestro
|
||
npm ci && npm --prefix ui ci
|
||
cp config.yaml.example config.yaml # provider / workers を編集
|
||
scripts/build-all.sh
|
||
scripts/server.sh start # http://localhost:9876
|
||
```
|
||
|
||
詳しい手順は **[docs/getting-started.md](docs/getting-started.md)** を参照。
|
||
|
||
## 必要要件
|
||
|
||
- **Node.js 22+**
|
||
- **OpenAI 互換の LLM エンドポイント**(Ollama / vLLM など)
|
||
- 任意(Bash サンドボックス用): `bwrap`(bubblewrap, 非特権 user namespace)+ `python3`/`pip`
|
||
|
||
## ドキュメント
|
||
|
||
- **[docs/getting-started.md](docs/getting-started.md)** — インストール・初回起動・最初のタスク・認証/サンドボックスの有効化
|
||
- **[docs/docker.md](docs/docker.ja.md)** — Docker Compose での運用(LLM エンドポイント・永続化・サンドボックス・トラブルシューティング)
|
||
- **[docs/configuration.md](docs/configuration.md)** — `config.yaml` の全設定項目リファレンス
|
||
- **[docs/architecture.md](docs/architecture.md)** — 実行フロー・Piece/Movement・ツール・DB・サンドボックス
|
||
- **[docs/tools/](docs/tools/)** — 各ツールの詳細
|
||
- **[docs/operations/bash-sandbox-provisioning.md](docs/operations/bash-sandbox-provisioning.md)** — 本番でのサンドボックス有効化手順
|
||
- **[AGENTS.md](AGENTS.md)** / **[CONTRIBUTING.md](CONTRIBUTING.md)** — コントリビュータ向け
|
||
- **[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)** — コミュニティ行動規範
|
||
- **[SECURITY.md](SECURITY.md)** — セキュリティ方針・脆弱性報告
|
||
- **[docs/security-hardening.md](docs/security-hardening.ja.md)** — 本番ハードニングのチェックリスト
|
||
|
||
## セキュリティ
|
||
|
||
既定では認証なしで動作するため、信頼できないネットワークへ直接公開しないこと。複数ユーザーまたは外部公開環境では OAuth 認証、`safety.bash_sandbox: always`、TLS リバースプロキシを有効にする。詳細は [SECURITY.md](SECURITY.md) を参照。
|
||
|
||
## サーバー管理
|
||
|
||
```bash
|
||
scripts/server.sh start | stop | restart | status | logs
|
||
```
|
||
|
||
## ライセンス
|
||
|
||
[Apache-2.0](LICENSE)。
|