# クライアントのブリーフから公開まで：エージェントが回す1週間を、呼び出しごとに追う

_2026-10-13 · ブリーフ、メディア、アカウント別の下書き、レビュー、承認、予約、配信確認、レポートまで、Shager で回す1週間の実例です。_

エージェントを使ってクライアントのブリーフから投稿の公開までたどり着くには、8つの段階があります。アクセスとワークスペースの確認、接続済みアカウントの確認、メディアのアップロード、計画、アカウント別のキャプションでの下書き、レビュー、クライアントの承認、そして予約と確認です。どの段階でも、量のかさむ作業はエージェントが担います。人が下す判断は3つだけです。計画の承認、公開する権限の付与、そしてクライアントが望む場合には、承認リンクを通じたクライアント自身の承認です。

ここからは、架空のクライアントのリアルな1週間を、エージェントが行う Shager の呼び出しとともに順番に追っていきます。クライアントの Harbor Coffee は14店舗を持ち、各店舗に Facebook ページと Instagram プロアカウントがあり、さらにブランドの YouTube チャンネルが1つあります。

## 月曜の朝：ブリーフが届く

アカウントマネージャーが、クライアントのコンテキストフォルダにブリーフを入れます。秋の新ドリンク、木曜のローンチ、最初の週末は20%オフ、25秒の縦型動画1本と、クライアントの CDN にある写真2枚。それだけです。エージェントの常設の指示では、ブリーフにないことを作り出すのは禁じられているので、使う事実は割引、日付、商品名だけです。

セッションはクライアントのフォルダ内で始まるので、エージェントには代理店のルールと Harbor Coffee のトーン＆マナーのファイルが読み込まれ、ほかのクライアントの情報は一切ありません。それがなぜ重要かは、[1つのエージェントで多数のクライアントを担当する](/ja/blog/one-agent-many-clients)で解説しています。

## 段階1：誰が、どこで作業するかを確認する

```text
whoami            -> organization, claimed or sandbox, key scopes
list_workspaces   -> "Harbor Coffee" (ws_harbor), timezone Europe/London
```

`whoami` は、作業の前に2つの問いに答えます。このオーガニゼーションは引き継ぎ済みか、そしてキーに `publish` があるか。未引き継ぎのサンドボックスなら、アップロードと下書きはできますが、人が引き継ぐまで、予約と承認依頼は分かりやすいエラーで失敗します。引き継ぎの手順は [/auth.md](/auth.md) にあります。

## 段階2：アカウントを確認する

```text
list_channels ws_harbor  -> 29 channels: 14 Facebook, 14 Instagram, 1 YouTube
list_groups   ws_harbor  -> "All cafes FB", "All cafes IG", "Brand YouTube"
```

エージェントは各チャンネルの状態を確認します。Instagram アカウントが1つ、接続切れになっています。エージェントはそれを黙って避けて下書きするのではなく、その店舗の店長向けに接続リンクを作ります。

```json
{
  "tool": "create_connect_link",
  "arguments": { "workspace_id": "ws_harbor", "label": "Harbor Quayside, Instagram reconnect" }
}
```

アカウントマネージャーがリンクを転送します。店長は Shager のアカウントなしで、そのリンクから Instagram にログインし、その日のうちにアカウントが `list_channels` に戻ってきます。

## 段階3：メディアをアップロードする

素材ごとに1回、計3回の呼び出しです。動画にはサイズと長さを付けておくので、リールとショートの検証を公開時ではなくこの時点で実行できます。

```json
{
  "tool": "upload_media_from_url",
  "arguments": {
    "workspace_id": "ws_harbor",
    "url": "https://cdn.harbor-coffee.example/autumn/launch.mp4",
    "file_name": "autumn-launch.mp4",
    "width": 1080, "height": 1920, "duration_ms": 25000
  }
}
```

写真2枚も同じ方法でアップロードします。動画用のフィールドは不要です。

## 段階4：計画を出して、返事を待つ

エージェントは、すぐに下書きを始めるのではなく、計画を提案します。

| 曜日 | 投稿 | フォーマット | 投稿先 |
|---|---|---|---|
| 火 | ティザー写真 | FEED | All cafes FB, All cafes IG |
| 木 | ローンチ動画 | REEL / SHORT | All cafes FB, All cafes IG, Brand YouTube |
| 土 | 割引のリマインド写真 | FEED | All cafes FB, All cafes IG |

アカウントマネージャーは「進めて」と返し、土曜の投稿を金曜の午後に移します。メッセージ1通で、出来の悪い計画が85件のアカウント別キャプションに化けるのを防げます。

## 段階5：アカウント別のキャプションで下書きする

計画した投稿はそれぞれ、`schedule_at` なしの `create_post` 1回になり、下書きとして保存されます。ローンチ投稿を見ると全体の形が分かります。

```json
{
  "tool": "create_post",
  "arguments": {
    "workspace_id": "ws_harbor",
    "group_ids": ["grp_all_fb", "grp_all_ig", "grp_brand_yt"],
    "media_ids": ["med_launch"],
    "caption": "The autumn drink is here. 20% off this weekend.",
    "youtube_title": "Harbor Coffee autumn drink, first pour",
    "youtube_privacy": "public",
    "cta_url": "https://harbor-coffee.example/autumn",
    "campaign": "autumn-launch",
    "label": "Harbor autumn launch video",
    "first_comment": "Find your nearest Harbor and the weekend offer: https://harbor-coffee.example/autumn",
    "per_channel": [
      { "channel_id": "ch_fb_quayside", "format": "REEL",
        "caption": "Quayside regulars, it's here. Autumn's first pour, 20% off this weekend." },
      { "channel_id": "ch_ig_quayside", "format": "REEL",
        "caption": "First pour at Quayside. 20% off all weekend, details in bio." },
      { "channel_id": "ch_yt_brand", "format": "SHORT",
        "caption": "The new Harbor autumn drink, poured for the first time." }
    ]
  }
}
```

実際の呼び出しでは `per_channel` に29件のエントリーがあり、どのキャプションもその店舗に根ざした内容です。キャプションとコメント内の URL は、公開時にそれぞれのアカウント専用の短縮リンクになり、`utm_content` でアカウントが識別されるので、エージェントは URL をそのまま書けば済みます。キャプションを書き分けるコツは、[AI でアカウントごとにキャプションを書き分ける](/ja/blog/caption-variation-per-account-with-ai)で紹介しています。

## 段階6：別のパスでレビューする

読み取り専用のツールでレビュー担当のプロンプトを動かす2つ目のセッションが、`status` を `DRAFT` にして `list_posts` を呼び、それぞれに `get_post` を実行します。チェックするのは、キャプションの重複、ブリーフにない事実、クリックできない場所に置かれたリンク、縦型でないメディアへの動画フォーマットの指定です。今回は、リンクがプロフィールにあるのに「リンクは下から」と書かれた Instagram のキャプションが2件指摘されました。下書き担当のエージェントは修正した下書きを新たに作って直し、古いものは予約の対象から外します。

## 段階7：クライアントの承認

Harbor Coffee のワークスペースでは `approval_required` が設定されているので、クライアントが承認するまでは何も予約できません。エージェントは各下書きの承認を依頼します。

```json
{
  "tool": "request_approval",
  "arguments": {
    "workspace_id": "ws_harbor",
    "post_id": "pst_launch",
    "reviewer_name": "Dana, Harbor Coffee marketing",
    "reviewer_email": "dana@harbor-coffee.example",
    "send_email": true
  }
}
```

クライアントはリンクを開いて投稿を確認し、ログインせずに承認します。投稿のステータスは `IN_REVIEW` を経て `APPROVED` に、あるいは `CHANGES_REQUESTED` に変わります。後者の場合は、エージェントが修正して再提出します。よい承認ルールの設計は、[エージェントの投稿に人の承認を入れる](/ja/blog/human-approval-for-agent-posts)で扱っています。

## 段階8：予約して確認する

承認されたら、`publish` スコープを持つキーで予約の段階を実行します。エージェントは、ワークスペースのタイムゾーンで、その日付に合ったオフセット付きの時刻を計算します。

```json
{
  "tool": "schedule_post",
  "arguments": {
    "workspace_id": "ws_harbor",
    "post_id": "pst_launch",
    "schedule_at": "2026-10-15T08:30:00+01:00"
  }
}
```

Facebook と Instagram にそれぞれ14アカウントあり、デフォルトで30〜90秒ずつずらして送るので、各 SNS の送信には約13分かかり、2つの SNS は並行して進みます。木曜の9時15分、エージェントが `get_post` を呼びます。28アカウントが公開済みで、公開 URL も付いています。1件は権限エラーです。エージェントはやみくもに再試行せず、そのアカウントを名前で報告し、新しい接続リンクを提案します。

## 翌週の月曜：レポート

1週間の締めくくりはレポートです。出た投稿は `list_posts` で、アカウントごとの結果は `get_post` で、1週間のアカウント別・投稿別のクリックは `get_analytics` で取得し、クライアントが共有してくれれば `utm_content` で CRM のリードと突き合わせます。無人での実行も含めた全体の設定は、[エージェントによるクライアント週次レポート](/ja/blog/weekly-client-report-by-agent)で紹介しています。

## 誰が何をしたか

| 段階 | エージェント | 人 |
|---|---|---|
| アクセスとワークスペース | 確認して報告する | |
| アカウント | 切れているものを見つけ、リンクを作る | リンクを転送する |
| メディアと計画 | アップロードし、提案する | 「進めて」と返す |
| 下書きとレビュー | 85件のキャプションを書き、レビューする | |
| 承認 | リンクを送る | クライアントが承認する |
| 予約 | 時刻を計算し、予約する | `publish` を一度付与する |
| 配信とレポート | 確認し、報告する | レポートを読む |

## よくある質問

### こうした1週間に、人はどれくらい時間を使いますか？

この例で人が下した判断は、数通のメッセージと承認1回です。正確な時間は、クライアントや計画にどれだけのやり取りが必要かで変わります。変わるのは仕事の種類です。キャプションを打ち込んだりリンクを作ったりする代わりに、確認して判断することになります。

### 定例の投稿なら、エージェントはクライアントの承認を省けますか？

ワークスペースが承認を求めていない場合に限ります。`approval_required` はワークスペースごとに設定するので、月間の計画にまとめて承認を出すクライアントならオフに、慎重なクライアントならオンにしておけます。既存のワークスペースのこの設定を、エージェントが自分で変えることはできません。

### 承認後に、クライアントが修正を求めてきたら？

投稿がまだ公開を始めていなければ、エージェントが `cancel_post` を呼んで承認済みの下書きに戻し、修正版を作って改めて承認を依頼します。公開が始まった後の修正は、各 SNS 上での手作業になります。

## 次の一歩

すべてのアカウントで動かす前に、少数のアカウントを持つクライアント1社でこの流れを試してみてください。エージェントがまだつながっていなければ、[エージェント向けページ](/ja/agents)で MCP サーバー、REST API、自己登録について説明しています。

---
Source: https://shager.ai/ja/blog/from-brief-to-published
