
onecli v2.0.1
オープンソースのサンドボックス化されたエージェントハーネス。チームの全従業員にセキュアな個人エージェントを提供します。
チームのために作られたエージェント基盤。
企業向けプロアシスタント。すべての従業員に、安全でサンドボックス化された個人エージェントを提供します。
クイックスタート
クラウドホスト版: onecli.sh
セルフホスト版
git clone https://github.com/onecli/onecli.git && cd onecli
pnpm install
pnpm run setup
http://localhost:10254 を開きます
OneCLI v2とは?
OneCLIは、AIエージェントをチームとして運用するためのオープンソースプラットフォームです。人ごとにエージェントを作成し、各エージェントに必要なアクセス権を付与すると、サンドボックス内で動作し、認証情報を注入してポリシーを適用するゲートウェイを経由してルーティングされます。
OneCLIを開発した理由
OneCLIは、Rustで構築されたAIエージェント向けの認証情報保管庫として始まりました。私たちは、需要の大半がHermes、OpenClaw、NanoClawのような自律エージェントを実行している個人やチームからのものであることに気づきました。人々は、実行している本人のために実際の作業を行うエージェントを求めていましたが、2つの部分が欠けていました。
- シークレットと権限の管理。
- そしてチーム向けには、マルチプレイヤー管理。
世の中の自律エージェントはすべて、一人の人間向けに作られています。そして一人の人間にとっては、それらは素晴らしいものです。それをチーム全体に展開する必要が生じた瞬間、状況は複雑になります。各エージェントの起動、各エージェントに何ができて何ができないかの決定、ホスティング、誰のエージェントがどれなのかの把握などです。
そこで私たちは方向転換し、OneCLI v2を構築しました。
チーム向けに設計
- アイデンティティプロバイダーと統合: 会社のIdPから直接、各従業員のアイデンティティに基づいてエージェントをプロビジョニングします。
- 一人につき1つのエージェント: ワークスペース内の全員が、ダッシュボードまたはSlackからアクセスできる、自分専用のサンドボックス化されたエージェントを取得します。
- 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ライセンスに基づくエンタープライズ機能が含まれており、
それぞれにそれを示す通知が付いています。このライセンスは開発、テスト、評価では無料で、
本番環境での使用にはサブスクリプションが必要です。
その他はすべてApache-2.0であり、商用ライセンスなしで本番環境にセルフホストできます。
LICENSE-ENTERPRISEには、ライセンス対象パスの正式なリストが記載されています。