CLAUDE LABEN
MODEL — Claude Fable 5が6/9に一般提供開始。100万トークン文脈・常時アダプティブ思考・128K出力を備えますPLATFORM — Developer Platformにcode execution・MCP connector・Files API・最大1時間のプロンプトキャッシュが追加されましたMCP — 管理者がOkta経由で組織全体にMCPコネクタをプロビジョニング可能に。初回ログインでゼロタッチ接続できますSANDBOX — Claude Managed Agentsが自前サンドボックス+プライベートMCPサーバー接続に対応しましたCODING — Opus 4.8はSWE-bench 72.5%・Terminal-bench 43.2%。長時間の連続作業に強みがありますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられますMODEL — Claude Fable 5が6/9に一般提供開始。100万トークン文脈・常時アダプティブ思考・128K出力を備えますPLATFORM — Developer Platformにcode execution・MCP connector・Files API・最大1時間のプロンプトキャッシュが追加されましたMCP — 管理者がOkta経由で組織全体にMCPコネクタをプロビジョニング可能に。初回ログインでゼロタッチ接続できますSANDBOX — Claude Managed Agentsが自前サンドボックス+プライベートMCPサーバー接続に対応しましたCODING — Opus 4.8はSWE-bench 72.5%・Terminal-bench 43.2%。長時間の連続作業に強みがありますLINEUP — 主力はOpus 4.8・Sonnet 4.6・Haiku 4.5。用途に応じて使い分けられます
記事一覧/API & SDK
API & SDK/2026-06-23上級

毎回まっさらな環境で目覚める無人エージェント — 最初の30秒に状態回復を設計する

スケジュール起動の無人エージェントは、毎回まっさらな使い捨て環境で目を覚まします。書き込めないはずのパス、まだ起動しきっていないファイルシステム、消えた作業ディレクトリ。最初の30秒に状態回復を織り込む設計を、実際の運用ログから具体的に書きました。

Claude Agent SDK9無人エージェント状態回復冪等性2運用設計6

プレミアム記事

スケジュール起動のエージェントが目を覚ました朝、最初に返ってきたのは成功でも失敗でもなく、could not create work tree dir: Permission denied という一行でした。

昨日まで書けていたはずの /tmp/repos に、今日は書けない。

原因はすぐに分かりました。エージェントが動く計算環境は毎回作り直される使い捨てのもので、ディレクトリの所有者がたまたま別ユーザーに割り当たっていたのです。私自身、個人開発で4つのサイトの記事生成を無人で回していますが、この種の「環境が毎回ちがう」前提を甘く見ると、夜間のタスクは静かにゼロ本で終わります。

無人エージェントの信頼性は、賢い本処理ではなく、最初の30秒で決まります。本稿はその30秒、つまりコールドブート直後の起動と状態回復をどう設計するかという話です。

計算環境は使い捨て、状態は別の場所に置く

最初に頭を切り替える必要があるのは、「同じマシンが昨日の続きを覚えている」という素朴な期待を捨てることです。

スケジュール実行の多くは、実行のたびに新しいサンドボックスを立ち上げます。前回書いたファイルは消え、インストールしたパッケージも残らず、cwd も環境変数も引き継がれません。ここで頼れる状態は、計算環境のにあるものだけです。

私の運用では、耐久する状態を次の三層に分けて考えています。

置き場所役割
コード/成果物Git リモート記事の本体。push して初めて「やった」ことになる
参照データ・設定クラウド同期のワークスペース方針・キーワード・トークン。読み取り専用に近い扱い
実行履歴日付ごとのログファイル「今日もう何をしたか」を次回の自分に伝える唯一の手段

この三層がそろっていれば、サンドボックスは何度焼き払われても構いません。エージェントは毎回、外部の真実から自分の状態を組み立て直せます。逆に言えば、この三層のどれかをローカルの一時ディレクトリに頼った瞬間、その情報はコールドブートで失われます。

起動シーケンスを「防御的に」書く

本処理に入る前に、環境を整える短いシーケンスを必ず通します。ここを横着すると、後段の処理が無言で失敗します。

順番に意味があります。(1) ファイルシステムの起動を待つ、(2) 作業ディレクトリを動的に探す、(3) 書き込み可能な作業領域を確保する、(4) 認証情報を取り出す。この4つです。

#!/usr/bin/env bash
set -euo pipefail
 
# (1) マウントが整うまで待つ — コールドブート直後は数秒間ファイルが見えない
WS=""
for i in $(seq 1 10); do
  WS="$(ls -d /sessions/*/mnt/Workspace 2>/dev/null | head -1)"
  [ -n "$WS" ] && [ -d "$WS" ] && break
  sleep 3
done
[ -n "$WS" ] || { echo "FATAL: workspace not mounted after 30s"; exit 1; }
 
# (2) 作業ディレクトリの第一候補が書けるか確かめ、ダメなら $HOME へ退避
WORK_BASE="/tmp/repos"
if ! mkdir -p "$WORK_BASE/.probe" 2>/dev/null; then
  echo "WARN: $WORK_BASE not writable, falling back to \$HOME/repos"
  WORK_BASE="$HOME/repos"
  mkdir -p "$WORK_BASE"
fi
rmdir "$WORK_BASE/.probe" 2>/dev/null || true
 
# (3) 認証情報は環境変数ではなく同期ストレージから読む(再ブートで消えないため)
TOKEN="$(grep -A1 '^MySite' "$WS/_tokens/tokens.txt" | tail -1 | tr -d '[:space:]')"
[ -n "$TOKEN" ] || { echo "FATAL: token missing"; exit 1; }
 
echo "ready: WS=$WS WORK_BASE=$WORK_BASE"

ポイントは、/tmp が書けることを仮定しないことです。実際に小さなディレクトリを作ってみて、失敗したら静かに $HOME へ逃がします。今回のブート時に私が遭遇した Permission denied は、この .probe テストひとつで吸収できる種類のものでした。

ls -d /sessions/*/mnt/... のようにワイルドカードで探すのも意図的です。セッション名は実行ごとに変わるため、パスをハードコードすると次回には存在しないディレクトリを指してしまいます。動的探索は、環境が変わることへのいちばん安い保険です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
使い捨て環境を前提にした起動シーケンス(マウント検出・ブート待ち・作業ディレクトリの動的探索・フォールバックパス)を、コピーして使えるbashで提示します
「今日もう同じ処理をしたか」を耐久ストレージのログから判定する冪等ガードの実装と、重複を防ぐ二段照合のコードを示します
私自身が4サイトの自動運用で踏んだ、書き込み権限・クラウド同期ファイル・ブート遅延の3つの落とし穴と、その回避手順を運用知見として整理します
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-06-22
Claude Files API のファイルが知らぬ間に溜まる — 内容ハッシュ台帳で重複を止め、孤児を回収する
自動パイプラインで Files API を使うと、同じファイルが何度もアップロードされ孤児ファイルが静かに溜まります。内容ハッシュ台帳での重複排除と、参照されなくなったファイルの GC 設計を実装例つきで解説します。
API & SDK2026-06-12
月次クレジット移行を前に、自動パイプラインの工程配分を見直した記録
6月15日の課金変更で Agent SDK・headless 実行・GitHub Actions が月次クレジット制へ移行します。自動投稿パイプラインの工程を実測トークンから棚卸しし、3つの実行経路へ振り分け直した設計判断を共有します。
API & SDK2026-06-02
自律エージェントの破壊的操作に事前条件・事後条件の契約ゲートを付ける
自律エージェントが本番に書き込む前後を、決定論的な事前条件・事後条件で挟む契約ゲートの設計です。プロンプト改善では防げない破壊的操作を、コードで止める実装を紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →