セッションは環境内で実行されるエージェントインスタンスです。各セッションはエージェントと環境(両方とも別途作成)を参照し、複数のインタラクション全体で会話履歴を保持します。
すべてのManaged Agents APIリクエストには、managed-agents-2026-04-01ベータヘッダーが必要です。SDKはベータヘッダーを自動的に設定します。
セッションにはagent IDとenvironment IDが必要です。エージェントはバージョン管理されたリソースです。agent IDを文字列として渡すと、最新のエージェントバージョンでセッションが開始されます。
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
)特定のエージェントバージョンにセッションをピン留めするには、オブジェクトを渡します。これにより、実行するバージョンを正確に制御し、新しいバージョンのロールアウトを独立して段階的に実施できます。
pinned_session = client.beta.sessions.create(
agent={"type": "agent", "id": agent.id, "version": 1},
environment_id=environment.id,
)エージェントは、モデル、システムプロンプト、ツール、MCPサーバーを含む、セッション内でClaudeがどのように動作するかを定義します。詳細はエージェント設定を参照してください。
エージェントが認証が必要なMCPツールを使用する場合、セッション作成時にvault_idsを渡して、保存されたOAuth認証情報を含むボルトを参照します。Anthropicはトークンの更新を自動的に管理します。ボルトの作成と認証情報の登録方法については、ボルトで認証を参照してください。
vault_session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
vault_ids=[vault.id],
)セッションを作成すると、環境とエージェントがプロビジョニングされますが、作業は開始されません。タスクを委譲するには、ユーザーイベントを使用してセッションにイベントを送信します。セッションは進捗を追跡する状態マシンとして機能し、イベントが実際の実行を駆動します。
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{"type": "text", "text": "List the files in the working directory."}
],
},
],
)エージェントの応答をストリーミングしてツール確認を処理する方法については、イベントとストリーミングを参照してください。
セッションは以下のステータスを通じて進行します:
| ステータス | 説明 |
|---|---|
idle | エージェントはユーザーメッセージやツール確認を含む入力を待機しています。セッションはidleで開始されます。 |
running | エージェントが積極的に実行中 |
rescheduling | 一時的なエラーが発生し、自動的に再試行中 |
terminated | 回復不可能なエラーが原因でセッションが終了しました |
retrieved = client.beta.sessions.retrieve(session.id)
print(f"Status: {retrieved.status}")for session in client.beta.sessions.list():
print(f"{session.id}: {session.status}")セッションをアーカイブして、新しいイベントが送信されるのを防ぎながら、その履歴を保持します:
client.beta.sessions.archive(session.id)セッションを削除して、そのレコード、イベント、および関連するコンテナを永続的に削除します。runningセッションは削除できません。すぐに削除する必要がある場合は、割り込みイベントを送信してください。
ファイル、メモリストア、環境、およびエージェントは独立したリソースであり、セッション削除の影響を受けません。
client.beta.sessions.delete(session.id)Was this page helpful?