[English](README.md) | 日本語 # MAESTRO ![License](https://img.shields.io/badge/license-Apache--2.0-blue) ![Node](https://img.shields.io/badge/node-%E2%89%A522-3c873a?logo=node.js&logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-3178c6?logo=typescript&logoColor=white) ![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-fe5196?logo=conventionalcommits&logoColor=white) ![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen) **MAESTRO** — タスクを LLM 駆動で実行するエージェントオーケストレーションプラットフォーム。タスクの種類を LLM が自動判定し、適切なワークフロー(**Piece**)で処理する。ツールはサンドボックス化されたランタイムで実行され、ワークスペース・ファイル・進捗を Web UI で管理できる。 OpenAI 互換の LLM エンドポイント([Ollama](https://ollama.com/) / vLLM など)があれば単体で動作する。 ## 主な機能 - **タスク自動ルーティング** — タスク本文を 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(最短) ```bash cp .env.example .env # OLLAMA_BASE_URL / OLLAMA_MODEL を設定 docker compose up -d # http://localhost:9876 を開く ``` Compose は安全のため `127.0.0.1:9876` のみに公開する。別ホストからアクセス可能にする前に OAuth 認証を設定し、TLS 対応のリバースプロキシを配置すること。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)。