この記事は[@chriskim_dev](https://x.com/@chriskim_dev) によって書かれました*
AI エージェントは、一人で使うだけでも素晴らしいツールです。しかし、チーム全体で連携できるようになると、その可能性はさらに広がります。
このガイドは、まさにそれを実現するための、開発者向けのステップバイステップのチュートリアルです。@NousResearch の Hermes Agent を、@Box 上でチームがすでに使用している共有ファイル、コメント、バージョン、コンテキストに接続する「カンパニーブレイン」を構築します。このチュートリアルを終えると、Hermes が単なる個人アシスタントではなく、他のメンバーと同じ情報源から仕事をこなすチームメイトとして機能する実装が完成します。
このチュートリアルをわかりやすくするために、Hermes Agent Gateway を VPS 上にセットアップし、エージェントを 24 時間 365 日利用可能にする経験がすでにあることを前提とします。詳細なセットアップガイドは、Hermes 開発者向けドキュメント を参照してください。Hermes インスタンスのホストには DigitalOcean の Droplet を使用しますが、同じ方法はどの VPS プロバイダーでも機能します。
まずはデモをご覧ください
構築を始める前に、実際のワークフローをチェックしてみましょう!
https://x.com/chriskim_dev/status/2066898496842846557
問題点: AI エージェントは依然としてサイロ化されている
マーケティング、コンテンツ、プロダクト、カスタマー対応のチームで働いているなら、次のような話に心当たりがあるのではないでしょうか。会社の製品ビデオを制作しているとします。誰かが Slack スレッドに ZIP ファイルをドロップし、チームメイトが中身のアセットを尋ね、さらにバージョンが積み重なり(video_project_v2_FINAL.zip、final_final_revised.mov、launch_copy_v3.txt)、フィードバックは埋もれ、誰かが間違ったバージョンを編集してしまいます。
そこに AI エージェントが加わると、事態はさらに悪化します。自分のローカルコピーを元に自信満々に作業を進めるからです。Hermes のようなツールは個人の生産性向上には強力ですが、人間とエージェント、あるいはエージェント同士の引き継ぎは、全員(人間も機械も)が異なるコンテキストで作業しているためにうまくいきません。
解決策: エージェントに、チームがすでに使用しているのと同じ共有ワークスペース、つまり全員が参照する唯一の情報源を与えること。これこそが Box の出番です。
構築するもの
このガイドを終えると、以下のものが完成します。
- VPS 上で動作し、Slack をゲートウェイとする Hermes Agent
- 同じサーバーにインストールされた Box CLI
- Client Credentials Grant(CCG)認証を使用する Box アプリ
- Hermes 専用の Box サービスアカウント
- 人間とエージェントのためのワークスペースとなる共有プロジェクトフォルダー
- Hermes が Box 上の作業をアップロード、読み取り、分析、整理できる、エージェンティックワークフローの再現可能なパターン
ここでの重要な設計上の選択は、Hermes をあなたの個人用 Box ユーザーアカウントとして Box CLI に認証させないことです。代わりに、Client Credentials Grant(CCG)を使用して Box アプリを作成し、エージェントに Box 上での独自のサービス ID を付与します。
サービスアカウントとは?
サービスアカウントは、アプリケーションや自動化のための専用 ID です。Hermes があなたの個人アカウントを使用すると、あなたがアクセスできるすべてのものにアクセスできてしまいます。これはローカルでの実験には問題ありませんが、チームや顧客向けのワークフローには適していません。サービスアカウントを使用すれば、Hermes は独自の Box ID を取得し、必要なフォルダーのみを共有できます。これにより、明確なセキュリティ境界が確保されます。Hermes は Hermes として動作し、共有されたものだけを参照できます。
Box CCG アプリは、そのサーバーサイド ID を作成する方法です。CCG を使用すると、インタラクティブなユーザーログインなしでアプリを認証できます。Box Developer Console でアプリを作成し、Admin Console で承認し、クライアント ID、クライアントシークレット、エンタープライズ ID を使用してサーバーから認証します。以下の手順でアプリを作成する方法を学びますが、詳細については Box のClient Credentials Grantに関するドキュメントを参照してください。
前提条件
必要なものは次のとおりです。
- 無料の Box 開発者アカウント
- DigitalOcean アカウント(またはその他の VPS プロバイダー)
- アプリを作成してインストールできる Slack ワークスペース
- モデルプロバイダーが設定された Hermes Agent
- 基本的なターミナル操作の知識
まず、無料の Box 開発者アカウントにサインアップします。サインアップ後、Box Developer Console にリダイレクトされ、そこで Hermes にサービス ID を付与する CCG アプリを作成します。
ステップ 1: DigitalOcean Droplet を作成する
このチュートリアルでは、VPS として DigitalOcean Droplet を使用します。DigitalOcean には、Droplet の作成に関する完全なガイドがあります。
開発用デモには、小さな Ubuntu Droplet で十分です。
- Ubuntu 24.04
- 1 vCPU
- 2 GB RAM
- SSH キー認証
- モニタリング有効
Droplet が作成されたら、SSH で接続します。
1ssh root@YOUR_DROPLET_IP
パッケージを更新し、基本ツールをインストールします。
1apt update2apt upgrade -y3apt install -y curl git unzip jq build-essential nodejs npm
ステップ 2: Hermes Agent をインストールする
公式 Hermes ドキュメントに従って、Droplet に Hermes Agent をインストールします。
インストール後、正しく動作することを確認します。
1hermes --version
次にセットアップを実行します。
1hermes setup
使用したい AI モデルプロバイダーを選択し、プロンプトに従います。Hermes はさまざまなモデルプロバイダーをサポートしているため、ここでは特定のものを推奨しません(主要なプロバイダーであればどれでも機能します)。重要なのは、Slack と Box に接続する前に Hermes が正常に実行されることです。
Hermes が正しくセットアップされているか簡単に確認します。
1hermes
次に"Hello"と送信して、Hermes が応答するか確認します。正常にセットアップされていれば、ターミナルに応答が表示されます。応答がない場合は、hermes setup を再実行し、モデルプロバイダーのキーが設定されていることを確認してください。
ステップ 3: Slack アプリを作成し、Hermes Gateway をセットアップする
Hermes Gateway を使用すると、エージェントを Slack のようなメッセージングプラットフォーム内で動作させることができます。Hermes エージェントのメッセージングプラットフォームとして Slack をセットアップしましょう。詳細なSlack セットアップガイドは、Hermes 開発者向けドキュメントを参照してください。最終的には、Slack ボットトークン、Slack アプリアプリケーショントークンを取得し、Slack アプリをワークスペースにインストールし、ゲートウェイを設定します。
注意: Hermes は VPS 上で実行されているため、プロンプトが表示されたら Hermes Gateway をシステムサービスとしてインストールします。これにより、起動時に自動的に開始され、ターミナルを閉じた後も実行され続けます。
次のコマンドでサービスを確認します。
1systemctl status hermes-gateway
便利なコマンド:
1systemctl restart hermes-gateway # ゲートウェイを再起動2journalctl -u hermes-gateway -f # ゲートウェイのログをリアルタイム表示3journalctl -u hermes-gateway -n 100 --no-pager # 最新 100 行のログを表示
Slack アプリがインストールされ、Hermes ゲートウェイとして設定されたら、VPS 上の Hermes を再起動します。
1systemctl restart hermes-gateway
Slack で [@Hermes](https://x.com/@Hermes) を含むメッセージを送信してテストします。
1@Hermes hello
ステップ 4: Box CLI をインストールする
Hermes エージェントが Slack で機能するようになったので、Box CLI を使用して Box に接続しましょう。Box CLI を使用すると、Box を完全にヘッドレスで操作でき、Hermes エージェントはファイルの読み取り、作成/アップロード、Box 上のコンテンツ管理など、すべての Box 操作を CLI コマンドで実行できるようになります。
VPS に Box CLI をインストールします(VPS にリモート接続しているターミナルを使用)。
1npm install --global @box/cli
確認:
1box --version
素晴らしい! Box CLI が VPS にインストールされました。後で認証を行います。詳細については、Box CLI ドキュメントを参照してください。
ステップ 5: Box CCG アプリを作成する
Box Developer Console に移動し、Client Credentials Grant を使用して新しいアプリを作成します。このアプリは、Hermes エージェントに代わって動作するサービス ID です。

作成したら、右側の App Details サイドバーで次の認証情報を見つけます。
- clientID
- clientSecret
- enterpriseID
次に、VPS 上に設定ファイルを作成します。
1nano /root/box-ccg-config.json
以下を貼り付けます。
1{2 "boxAppSettings": {3 "clientID": "YOUR_CLIENT_ID",4 "clientSecret": "YOUR_CLIENT_SECRET"5 },6 "enterpriseID": "YOUR_ENTERPRISE_ID"7}
保存して終了します。
1Ctrl+O または Cmd+O2Enter3Ctrl+X または Cmd+X
次に、認証に CCG アプリを使用するように Box CLI 環境を設定しましょう。これにより、Hermes は個人のユーザーアカウントではなく、CCG アプリを使用して Box CLI にログインできるようになります。
Box CLI に環境を追加します。
1box configure:environments:add /root/box-ccg-config.json --ccg-auth --name service
現在の環境として設定します。
1box configure:environments:set-current service
サービス ID を確認します。
1box users:get
個人のユーザーではなく、自動化ユーザーが表示されるはずです。以下のような感じです。
1Name: my-app2Login: [email protected]
これが、Hermes エージェントが Box で使用する ID です。これで、Hermes エージェントに Box 操作を指示すると、Hermes は Box CLI を使用して実行できるようになります。
ステップ 6: サービスアカウントとプロジェクトフォルダーを共有する
Box にプロジェクト用のフォルダーを作成します。例: Product Launch Video Project。
Box Developer Console で作成した CCG アプリのページに移動し、App Details サイドバーから自動化ユーザーのメールアドレスをコピーします。

次に、そのフォルダーを前の手順の自動化ユーザーと共有します。


これが重要なセキュリティ境界です。Hermes はアカウント全体へのアクセスを必要とせず、このプロジェクトフォルダーへのアクセスだけで十分です。
限定アクセス設定が機能しているか確認しましょう! Slack 上の Hermes エージェントに尋ねます。
1@Hermes ルートレベルでどのフォルダーやファイルが見えるか確認してくれる?
先ほど作成したプロジェクトフォルダーのみが表示されれば、準備完了です!
おめでとうございます! Box が Hermes エージェントのカンパニーブレインとして機能する準備が整いました。このフォルダーを唯一の情報源として使用し、Hermes に与えるタスクのコンテキストとして活用させましょう。
Hermes に Box CLI を学習させる
ここが Hermes の最も気に入っている部分の一つです。それは自己改善ループです。すべての Box CLI コマンドを最初から完璧に手動で作成する必要はありません。代わりに、Hermes にタスクを与え、学習させましょう。
例えば、Slack で:
1@Hermes Box CLI を使って、自分が誰として認証されているか調べて、共有プロジェクトフォルダー内のファイルを一覧表示して。
次に、これを試します:
1@Hermes フォルダーの一覧表示、ファイルのアップロード、ファイルのダウンロード、現在のサービスアカウントの確認など、一般的な Box CLI 操作用の再利用可能なスキルを作成して。
ビデオデモでは、Hermes は Box CLI を効率的に使用する方法を理解し、独自の再利用可能な box-cli スキルを構築しました。私はそのスキルを最初に作成しませんでした。Hermes は環境から学習し、将来の動作を改善しました。
短い指示でガイドすることもできます。
- 常に Box CLI サービス環境を使用すること。
- 承認されたプロジェクトフォルダー内でのみ操作すること。
- コンテンツを削除または上書きする前に確認すること。
- 可能な限りバージョン履歴を保持すること。
- Box を永続的な情報源として扱うこと。
Hermes に Box CLI を使用するように指示し、どこで苦労しているかを観察し、修正し、次回のために改善されたワークフローを作成させましょう。
これが真価を発揮する場面:チームが共有ブレインを活用する実際の方法
私のデモはビデオローンチのコラボレーションに関するものでしたが、Hermes とチームが Box 内で同じ情報源を共有すれば、人間とエージェントが同じ認識を持つ必要があるあらゆる作業に使用できます。アイデアを刺激するいくつかのシナリオを紹介します。試してみて、独自のシナリオを考え出しましょう!
コンテンツ&マーケティングコラボレーション(ビデオローンチのレベルアップ)。 編集者が最終版を Box にドロップし、ライターがコメントとしてフィードバックを残し、Hermes がプロジェクトを再度説明されることなくそれを拾い上げます。
1@Hermes V2 カットが承認されました — キャプション、YouTube の説明文、3 つのサムネイル案を生成して、ローンチフォルダーに保存して。
チームメイトのマシン上の別のエージェントが、後で同じフォルダーを取得して投稿をスケジュールできます。「どのファイルが最終版か?」と誰も尋ねることはもうありません。
プロダクトローンチの調整。 PM、デザイン、マーケティングが同じ期限に向けて競争しています。作成された瞬間に古くなるローンチドキュメントの代わりに、Hermes に共有ワークスペースからライブでアセンブルさせましょう。
1@Hermes Launch フォルダー内の仕様書、最新のモックアップ、QA ノートを読んで、Go/No-Go チェックリストと 1 ページのローンチ概要をドラフトして。
仕様が変更されたら、再実行するだけです。ブレインは常に現在の情報源を読み、先週のコピーは読みません。
エンジニアリング業務。 Box にあるリポジトリのエクスポート、設計ドキュメント、インシデントノートを Hermes に参照させ、チーム全体が一つのコンテキストから作業できるようにします。
1@Hermes Auth-Service フォルダー内の未解決の課題と設計ドキュメントを要約して、v3.2 デプロイ用のリリースノートをドラフトして。
新しいエンジニアをオンボーディングする場合? そのエンジニア(とそのエージェント)は、シニアチームと同じフォルダーを読みます。DM に閉じ込められた暗黙の知識はもうありません。
個人のサイドプロジェクト。 一人でも、このセットアップは役立ちます。あなたの「チーム」は、ラップトップ、スマートフォン、そしていくつかのエージェントだけです。
1@Hermes これが今月のワークアウトログとレシピです — 食事とトレーニングの計画を立てて、Side Projects フォルダーに保存して。
スマートフォンでアイデアを始め、ラップトップで仕上げ、別のエージェントに明日引き継がせます。
法務&契約業務。 法務部門はバージョン管理が命綱です。単一の情報源はまさに贈り物です。
1@Hermes ベンダー MSA の訂正版 V2 を V1 と比較して、変更された条項をすべてリストアップし、責任や契約終了に関わる箇所にフラグを立てて。
弁護士は Box 上のファイルに直接コメントします。Hermes(およびレビュー担当者のエージェント)は常に最新の署名済みバージョンを取得し、迷子になったメールの添付ファイルは取得しません。
これらすべてに共通するのは、あなたが構築してきたものです。
異なるチーム。異なるエージェント。異なるインターフェース。同じ共有ワークスペース。
あなたの世界に最も近いシナリオを選び、今日実行しましょう。そして、創造性を発揮してください! 最高のユースケースは、ほとんどの場合、摩擦がなくなった後にあなた自身が発見するものです。楽しんで、コメントで何を構築したか共有してください!





