クライアントのブリーフから公開まで:エージェントが回す1週間を、呼び出しごとに追う
ブリーフ、メディア、アカウント別の下書き、レビュー、承認、予約、配信確認、レポートまで、Shager で回す1週間の実例です。

エージェントを使ってクライアントのブリーフから投稿の公開までたどり着くには、8つの段階があります。アクセスとワークスペースの確認、接続済みアカウントの確認、メディアのアップロード、計画、アカウント別のキャプションでの下書き、レビュー、クライアントの承認、そして予約と確認です。どの段階でも、量のかさむ作業はエージェントが担います。人が下す判断は3つだけです。計画の承認、公開する権限の付与、そしてクライアントが望む場合には、承認リンクを通じたクライアント自身の承認です。
ここからは、架空のクライアントのリアルな1週間を、エージェントが行う Shager の呼び出しとともに順番に追っていきます。クライアントの Harbor Coffee は14店舗を持ち、各店舗に Facebook ページと Instagram プロアカウントがあり、さらにブランドの YouTube チャンネルが1つあります。
月曜の朝:ブリーフが届く
アカウントマネージャーが、クライアントのコンテキストフォルダにブリーフを入れます。秋の新ドリンク、木曜のローンチ、最初の週末は20%オフ、25秒の縦型動画1本と、クライアントの CDN にある写真2枚。それだけです。エージェントの常設の指示では、ブリーフにないことを作り出すのは禁じられているので、使う事実は割引、日付、商品名だけです。
セッションはクライアントのフォルダ内で始まるので、エージェントには代理店のルールと Harbor Coffee のトーン&マナーのファイルが読み込まれ、ほかのクライアントの情報は一切ありません。それがなぜ重要かは、1つのエージェントで多数のクライアントを担当するで解説しています。

段階1:誰が、どこで作業するかを確認する
whoami -> organization, claimed or sandbox, key scopes
list_workspaces -> "Harbor Coffee" (ws_harbor), timezone Europe/London
whoami は、作業の前に2つの問いに答えます。このオーガニゼーションは引き継ぎ済みか、そしてキーに publish があるか。未引き継ぎのサンドボックスなら、アップロードと下書きはできますが、人が引き継ぐまで、予約と承認依頼は分かりやすいエラーで失敗します。引き継ぎの手順は /auth.md にあります。
段階2:アカウントを確認する
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つ、接続切れになっています。エージェントはそれを黙って避けて下書きするのではなく、その店舗の店長向けに接続リンクを作ります。
{
"tool": "create_connect_link",
"arguments": { "workspace_id": "ws_harbor", "label": "Harbor Quayside, Instagram reconnect" }
}
アカウントマネージャーがリンクを転送します。店長は Shager のアカウントなしで、そのリンクから Instagram にログインし、その日のうちにアカウントが list_channels に戻ってきます。
段階3:メディアをアップロードする
素材ごとに1回、計3回の呼び出しです。動画にはサイズと長さを付けておくので、リールとショートの検証を公開時ではなくこの時点で実行できます。
{
"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回になり、下書きとして保存されます。ローンチ投稿を見ると全体の形が分かります。
{
"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 でアカウントごとにキャプションを書き分けるで紹介しています。
段階6:別のパスでレビューする
読み取り専用のツールでレビュー担当のプロンプトを動かす2つ目のセッションが、status を DRAFT にして list_posts を呼び、それぞれに get_post を実行します。チェックするのは、キャプションの重複、ブリーフにない事実、クリックできない場所に置かれたリンク、縦型でないメディアへの動画フォーマットの指定です。今回は、リンクがプロフィールにあるのに「リンクは下から」と書かれた Instagram のキャプションが2件指摘されました。下書き担当のエージェントは修正した下書きを新たに作って直し、古いものは予約の対象から外します。
段階7:クライアントの承認
Harbor Coffee のワークスペースでは approval_required が設定されているので、クライアントが承認するまでは何も予約できません。エージェントは各下書きの承認を依頼します。
{
"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 に変わります。後者の場合は、エージェントが修正して再提出します。よい承認ルールの設計は、エージェントの投稿に人の承認を入れるで扱っています。
段階8:予約して確認する
承認されたら、publish スコープを持つキーで予約の段階を実行します。エージェントは、ワークスペースのタイムゾーンで、その日付に合ったオフセット付きの時刻を計算します。
{
"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 のリードと突き合わせます。無人での実行も含めた全体の設定は、エージェントによるクライアント週次レポートで紹介しています。
誰が何をしたか
| 段階 | エージェント | 人 |
|---|---|---|
| アクセスとワークスペース | 確認して報告する | |
| アカウント | 切れているものを見つけ、リンクを作る | リンクを転送する |
| メディアと計画 | アップロードし、提案する | 「進めて」と返す |
| 下書きとレビュー | 85件のキャプションを書き、レビューする | |
| 承認 | リンクを送る | クライアントが承認する |
| 予約 | 時刻を計算し、予約する | publish を一度付与する |
| 配信とレポート | 確認し、報告する | レポートを読む |
よくある質問
こうした1週間に、人はどれくらい時間を使いますか?
この例で人が下した判断は、数通のメッセージと承認1回です。正確な時間は、クライアントや計画にどれだけのやり取りが必要かで変わります。変わるのは仕事の種類です。キャプションを打ち込んだりリンクを作ったりする代わりに、確認して判断することになります。
定例の投稿なら、エージェントはクライアントの承認を省けますか?
ワークスペースが承認を求めていない場合に限ります。approval_required はワークスペースごとに設定するので、月間の計画にまとめて承認を出すクライアントならオフに、慎重なクライアントならオンにしておけます。既存のワークスペースのこの設定を、エージェントが自分で変えることはできません。
承認後に、クライアントが修正を求めてきたら?
投稿がまだ公開を始めていなければ、エージェントが cancel_post を呼んで承認済みの下書きに戻し、修正版を作って改めて承認を依頼します。公開が始まった後の修正は、各 SNS 上での手作業になります。
次の一歩
すべてのアカウントで動かす前に、少数のアカウントを持つクライアント1社でこの流れを試してみてください。エージェントがまだつながっていなければ、エージェント向けページで MCP サーバー、REST API、自己登録について説明しています。


