
onecli v2.0.1
オープンソースのサンドボックス化されたエージェントハーネス。チームの全従業員にセキュアな個人エージェントを提供します。
チームのために作られたエージェントハーネス。
企業向けのプロフェッショナルアシスタント。すべての従業員に、セキュアでサンドボックス化されたパーソナルエージェントを。
クイックスタート
クラウドホスト版: onecli.sh
セルフホスト版
git clone https://github.com/onecli/onecli.git && cd onecli
pnpm install
pnpm run setup
http://localhost:10254 を開いてください
Kubernetes では、代わりに Helm chart をインストールしてください:
helm install onecli oci://ghcr.io/onecli/charts/onecli。
セルフホスティングガイドでは両方の方法を扱っています。
OneCLI v2 とは?
OneCLI は、AI エージェントをチームとして運用するためのオープンソースプラットフォームです。ユーザーごとにエージェントを作成し、各エージェントに必要なアクセス権を付与すると、エージェントはサンドボックス内で動作し、認証情報を注入してポリシーを適用するゲートウェイを経由して通信します。
なぜ OneCLI を作ったのか?
OneCLI は、Rust で構築された AI エージェント向けの認証情報保管庫として始まりました。需要の大半は、Hermes、OpenClaw、NanoClaw のような自律エージェントを運用する個人やチームから寄せられていました。人々は、運用する本人のために実際の作業を行うエージェントを求めていましたが、次の 2 つの要素が欠けていました:
- シークレットと権限の管理。
- そしてチーム向けの、マルチプレイヤー管理。
世の中の自律エージェントはすべて 1 人のために作られています。1 人で使う分には素晴らしいものです。しかし、それをチーム全体に広げようとした瞬間に、物事は複雑になります。各エージェントの起動、各エージェントにできること・できないことの決定、ホスティング、誰のエージェントがどれなのかの把握などです。
そこで私たちは方針を転換し、OneCLI v2 を構築しました。
チームのために作られています
- お使いの ID プロバイダーと統合: 会社の IdP から直接、各従業員の ID に代わってエージェントをプロビジョニングします。
- 1 人につき 1 エージェント: ワークスペース内の全員が、ダッシュボードまたは Slack からアクセスできる専用のサンドボックス化されたエージェントを持ちます。
- 1 つのポリシーをあらゆる場所で適用: チームポリシーを 1 か所で管理し、ワークスペース内のあらゆるエージェントに適用します。
- 決定論的なヒューマンインザループ承認: メールの送信、Linear チケットの削除、S3 バケットの空化など、100% の制御が必要な操作について、チャット内で承認を行えます。
- 共有接続: LLM キーやサービスアカウントなど、チームレベルで一度接続すれば、エージェントに渡すことなくエージェントごとに付与できます。
エージェント
エージェントは単一のプロンプトではなく、永続的な存在です。エージェントには次のものがあります:
- コンピューター: ファイルシステムとシェルを備えた、専用の分離されたサンドボックス。外部への唯一の経路はゲートウェイであるため、付与したものにのみ到達でき、それ以外には到達できません。
- 会話: ダッシュボードまたは Slack 上の専用ページ。画像やファイルも含みます。エージェントの作業中に送信されたメッセージは、後ろにキューイングされるのではなく、即座にエージェントの処理を切り替えます。
- メモリ: エージェントが学習した内容はプラットフォームによって保持されるため、失われることはありません。いつでも閲覧・編集できます。
- スキル: 一度書けば常にエージェントが利用できる、指示とヘルパー。
- スケジュール: エージェントは将来の作業を計画でき、プラットフォームが適切なタイミングでエージェントを起動します。
- エージェントが決して目にしない認証情報: 各エージェントは付与したアクセス権のみを持ち、ゲートウェイがすべてのリクエストでそれを適用します。または Bitwarden や 1Password を接続してオンデマンド注入を利用でき、サーバー上には何も保存されません。
- 専用の Slack アプリ: 一度接続すれば、独自の名前とアバターで、ファイルや画像を含めてチャンネルや DM で応答します。エージェントを削除すると、その Slack アプリも一緒に削除されます。
エージェントはお客様自身のインフラストラクチャ上で動作します。ランナーはアウトバウンド専用でインバウンドポートを持たないため、ラップトップ、ホームラボ、NAT 背後の VPC のいずれでも、イングレスもトンネルもなしに動作します。
アーキテクチャ
- Web ダッシュボード: Next.js アプリ。エージェントの作成、エージェントとのチャット、メモリとスキルの編集、接続・シークレット・グラントの管理を行います。
- API サーバー: コントロールプレーン。データベース、会話プレーン、およびランナーがポーリングするワークキューを所有します。
- Rust ゲートウェイ: 送信リクエスト(MITM 経由で HTTPS を含む)をインターセプトし、認証情報を注入します。エージェントは
Proxy-Authorizationヘッダーを介してアクセストークンで認証します。 - ランナー: エージェントサンドボックスの起動、パーク、回収を行います。送信専用であり、データベースには一切アクセスしません。
- サンドボックススーパーバイザー: 各サンドボックス内で動作し、ベンダー中立のハーネスインターフェースを介して通信するため、エージェントランタイムを差し替え可能です。
- SSH ターミネーター: SSH のフロントドア — 短命な証明書で
ssh接続を終端し、プラガブルな基盤バックエンドを通じてエージェントサンドボックスへブリッジします。 - チャネルアダプター: Slack デーモン。エージェントごとに 1 つのアプリ。
- シークレットストア: 保存時は AES-256-GCM で暗号化され、リクエスト時にのみ復号されます。ホストとパスのパターンで照合され、ヘッダーまたはクエリパラメータとして注入されます。
ローカル開発
git clone https://github.com/onecli/onecli.git && cd onecli
mise install
pnpm install
pnpm dev
セットアップはこれだけです。pnpm dev が必須のシークレットをすべて含む .env を生成し、PostgreSQL を起動し、マイグレーションを適用して、フルスタックを実行します。前提条件、コマンドリファレンス、プロジェクト構成、設定については docs/development.md を参照してください。
コントリビューション
コントリビューションを歓迎します。始める前に コントリビューションガイド と 行動規範 をお読みください。コントリビューションは コントリビューターライセンス契約 の条件に基づいて受け付けられます。
セキュリティ
脆弱性を報告する場合は、セキュリティポリシー に従ってください。セキュリティに関する報告のために公開 issue を作成しないでください。
ライセンス
Apache-2.0。ただし1つ例外があります。ee/ ディレクトリには OneCLI Enterprise License の下で提供されるエンタープライズ機能が含まれており、それぞれにそのライセンスを指し示す通知が付されています。このライセンスは開発、テスト、評価には無料で、本番利用にはサブスクリプションが必要です。それ以外はすべて Apache-2.0 であり、商用ライセンスなしで本番環境にセルフホストできます。ライセンス対象パスの正式な一覧は LICENSE-ENTERPRISE に記載されています。