1つのエージェントで12社を担当する:ブランド、アカウント、リンクを混線させない仕組み

1つのAIエージェントでShager上の多数のクライアントを回す方法。クライアントごとのワークスペースとコンテキストフォルダ、命名ルール、誤投稿の防止策。

1つのエージェントで多数のクライアントを安全に担当することは可能です。条件は3つあります。クライアントごとに Shager のワークスペースを分けること、どのタスクも最初にワークスペースを特定して名前を明示すること、そしてクライアントのトーン、事実、ルールを別々のコンテキストフォルダに置き、セッションごとに読み込ませることです。危ないのはエージェントの能力不足ではありません。1つのキーでオーガニゼーション内のすべてのワークスペースが見えてしまう点です。だからこそ、分離は仕組みと習慣で担保する必要があります。

誰もが恐れる失敗は、クライアントAのキャンペーンをクライアントBのページに投稿してしまうことです。これはエージェントに限った話ではなく、人間の担当者もやってしまいます。以下の対策は、どちらが原因でもこのミスを防ぎます。

なぜクライアントごとにワークスペースを分けるのか

Shager では、ワークスペースが1つのクライアントまたはブランドにあたります。接続したアカウント、アカウントのグループ、投稿、計測リンクは、すべてどれか1つのワークスペースに属します。うっかりワークスペースの境界を越えることはありません。create_post の呼び出しでは workspace_id を1つだけ指定し、投稿先のチャンネルやグループはそのワークスペース自身の一覧から選ばれます。

ワークスペースの作成は1回の呼び出しで済みます。フィールドは name、IANA 形式の timezone(デフォルトは Asia/Jerusalem)、そして approval_required です。approval_required を有効にすると、そのワークスペースでは何を予約する場合でもクライアントの承認が必須になります。

{
  "tool": "create_workspace",
  "arguments": {
    "name": "Aurora Furniture",
    "timezone": "Europe/London",
    "approval_required": true
  }
}

approval_required をクライアント単位で設定するのが、ちょうどよい粒度です。すべての投稿を確認したいクライアントもいれば、コンテンツ計画をすでに承認済みで、週に20通も承認メールが届くのは困るというクライアントもいます。どちらがどちらかをエージェントが覚えておく必要はありません。ワークスペースが自動的にルールを適用するからです。

まだ引き継がれていないサンドボックスのエージェントでも、ワークスペースを最大5つまで作成できます。人がオーガニゼーションを引き継ぐ前に、数社でパイロット運用を始めるには十分です。手順はエージェントの自己登録と引き継ぎで解説しています。

図:代理店がリンクを作成し、クライアントが自分の Facebook または Google にログインしてページを選ぶと、パスワードなしでアカウントが代理店側に表示されます。
パスワードも Shager のアカウントも不要です。クライアントが接続し、代理店が公開します。

パスワードなしで各クライアントのアカウントを接続する

エージェントはワークスペースごとに create_connect_link を呼び出し、誰向けのリンクかを label に記載します。クライアントはリンクを開いて自分で各 SNS(Facebook、Instagram、YouTube、X、LinkedIn、TikTok)にログインし、アカウントを選びます。選ばれたアカウントは、そのワークスペースの list_channels にだけ表示されます。クライアントが Shager のアカウントを作る必要はなく、パスワードを共有することもありません。

curl -s https://app.shager.ai/api/v1/workspaces/ws_aurora/connect-links \
  -H "Authorization: Bearer $SHAGER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"label":"Aurora marketing manager"}'

接続リンクを使うには、オーガニゼーションが引き継ぎ済みである必要があります。クライアント側にどう表示されるか、リンクと一緒に何を伝えればよいかはクライアント向け接続リンクをご覧ください。

コンテキストフォルダ:クライアントごとの「頭脳」の置き場所

ワークスペースが分けるのはデータです。知識までは分けてくれません。Aurora のトーン、価格、使ってはいけない表現といったエージェントの理解は、どこかに置いておく必要があります。12社分を1つの長い指示ファイルにまとめてしまえば、いずれ情報が漏れます。

Claude Code や Codex 向けに、私は次の構成を使っています。

agency/
  CLAUDE.md                 # agency-wide hard rules, no client facts
  clients/
    aurora/
      CLAUDE.md             # workspace name, voice, facts, do-not-say list
      brief-2026-w40.md
      crm/leads.csv
    beacon-dental/
      CLAUDE.md
      ...

Claude Code は CLAUDE.md を階層的に読み込み、サブディレクトリ内のファイルは Claude がそのディレクトリで作業するときに読み込まれます。詳しくはメモリのドキュメントに書かれています。clients/aurora/ の中でセッションを始めれば、エージェントが受け取るのはエージェンシー共通のルールと Aurora のファイルだけで、Beacon Dental の情報は一切入りません。Codex にも AGENTS.md による同様の階層があり、プロジェクトのルートから作業ディレクトリまでのファイルが連結されます。

各クライアントファイルで最も重要なのは1行目です。

Shager workspace: "Aurora Furniture". Act on this workspace only. If any tool
call would use a different workspace_id, stop and ask.

誤投稿を食い止めるガード

仕組みでリスクは減らせます。残りの穴は、次の習慣でふさぎます。

  1. 特定して、復唱する。 どのタスクも list_workspaces から始め、クライアントを名前で特定し、最初の書き込みの前に名前と ID を出力させます。トランスクリプトを流し読みしている人が「Aurora Furniture (ws_aurora)」と目にすれば、間違いに気づいて止められます。
  2. 1セッション1クライアント。 「Aurora と Beacon の今週分をやって」とは頼まないこと。セッションを2つ、フォルダを2つに分けます。追加コストはゼロで、コンテキストもきれいに保てます。
  3. ラベルにクライアント名を入れる。 すべての create_post に「Aurora w40 sofa sale」のような label を付けます。list_posts でもダッシュボードでも、別のワークスペースに紛れ込んだ投稿はすぐに目立ちます。
  4. キャンペーンはクライアント単位で。 campaign フィールドは utm_campaign になります。先頭にクライアントのスラッグを付けておけば(aurora-sofa-sale)、紛れ込んだ投稿はクライアントの分析画面でも不自然な行として浮かび上がります。
  5. レビューを別に通す。 読み取り専用ツールだけを持つレビュー用セッションで、承認前に下書きをクライアントの禁止表現リストと照合します。プロンプトはコンテンツエージェント向けのプロンプトに掲載しています。
図:エージェントのキーには read、write、publish の3段階の権限があり、すべての操作が監査ログに記録されます。
エージェントには必要な権限だけを与え、すべての操作を確認できます。

クライアントごとに API キーを分けるべきか

Shager のキーはオーガニゼーションに属し、read、write、publish のスコープを持ちます。キーによってアクセスできるワークスペースが制限されることはありません。つまりクライアントごとにキーを分けても強固な壁にはなりませんが、それでも2つの点で役立ちます。1つのキーを無効にしても他のクライアントの作業は止まりませんし、クライアントごとのセッションがそれぞれ専用のキーで動いていれば、エージェントダッシュボードにある呼び出しの監査ログもずっと読みやすくなります。

逆に、すべてのクライアントのセッションにデフォルトで publish キーを渡すのはおすすめしません。ほとんどのセッションは下書きを作るだけです。予約のステップは、人が管理する別のキーで実行できます。スコープの考え方は API キー、スコープ、監査で説明しています。

クライアント内のグループ

ワークスペースの中では、アカウントのグループを使えば、1つのフィールドで複数のアカウントをまとめて指定できます。フランチャイズのクライアントなら、地域別、言語別、店舗形態別といったグループが考えられます。create_group は name と channel_ids を受け取り、create_post は group_ids を受け取って、それらのグループに含まれる有効なチャンネルをすべて追加します。グループも他のすべてと同じくワークスペースに属するので、エージェントには記憶にある ID を使い回させず、必ずそのクライアントのワークスペース内で一覧を取得させてください。

規模とプラン

Shager のプランは、オーガニゼーション全体で接続しているアカウント数で料金が決まります。API と MCP のアクセス、ユーザー数無制限はすべてのプランに含まれます。12社ほどを担当するエージェンシーなら、注目すべきはエージェント数や席数ではなくアカウント数です。各プランは料金ページでご確認ください。

よくある質問

同じクライアントで2つのエージェントを同時に動かせますか?

技術的には可能です。どちらも同じワークスペースが見え、どちらも下書きを作れます。ただ実際には、それぞれの役割をはっきり分けてください。片方が下書き、もう片方がレビュー、あるいは片方が動画、もう片方がテキスト投稿、といった具合です。2つのエージェントが同じ週の下書きを作れば、内容が重複します。

クライアント自身も Shager で投稿を管理している場合は?

すべてのプランでユーザー数は無制限なので、クライアントをオーガニゼーションのユーザーとして追加できます。その場合は、エージェントが下書きを作る前に必ず list_posts を呼び出すようにしてください。クライアントがすでに予約した投稿を把握でき、同じ日に投稿を詰め込まずに済みます。

クライアントとの契約を終えるときは?

そのワークスペースでのエージェントの作業を止め、予約済みの投稿を cancel_post で取り消し、クライアントにアカウントの接続を解除してもらいます。コンテキストフォルダはエージェントの作業ディレクトリの外にアーカイブし、後でうっかり読み込まれないようにしておきましょう。

次のステップ

クライアントが2社のうちから、まずフォルダ構成を整えてください。12社分の知識を後から切り分けるのは、最初からきれいに始めるよりはるかに大変です。必要になるクライアント全員分の接続情報は、エージェント向けページにまとまっています。

ご自身のアカウントでお試しください。

ローンチ期間中は無料、カード登録不要。接続して一度書くだけで、Shagerが公開して計測します。