[Anthropic Engineering Blog] 長時間稼働するインテリジェントエージェントを構築するための効率的なフレームワーク Anthropicの最新のエンジニアリングブログ記事では、長期実行エージェントが複数のセッションにまたがる複雑なタスクの継続的な実行という課題に対処するための効果的な「フレームワーク」を設計する方法を探求しています。Claude Agent SDKの実践的な経験に基づき、構造化された環境と段階的なワークフローを活用することで、エージェントが一度にすべてを達成しようとするのではなく、人間のソフトウェアエンジニアのように段階的にプロジェクトを進められることを強調しています。 長時間実行されるエージェントの最大の課題は、数時間から数日にわたる複雑なタスク、例えば完全で複雑なソフトウェアプロジェクトの構築といったタスクの処理を目的としていることです。しかし、コンテキストウィンドウの容量が限られているため、各セッションはまるでゼロから開始するようなものです。エージェントは事前のメモリを欠いており、「ワンショット」の罠に陥りがちです。つまり、単一のセッションでプロジェクト全体を処理しようとすると、コンテキストの枯渇、コードの乱雑化、ドキュメントの欠落といった問題が生じます。その他の一般的な問題としては、以下のようなものがあります。 • 完了を早期に宣言する: 後続のエージェントは部分的な進捗状況のみを確認し、誤ってタスクを完了としてマークします。 • 状態からの回復の難しさ: エージェントは、未完了の作業について推測したり、バグのある環境で苦労したりするのに多くの時間を費やします。 • テストの不足: 機能は完了しているように見えますが、エンドツーエンドの検証に合格していないため、潜在的な問題が隠れています。 これらの障害モードは、実験 (200 以上の機能を備えた Web クローン プロジェクトの構築など) を通じてまとめられ、Git バージョン管理や自動テストなどのソフトウェア エンジニアリングのベスト プラクティスを活用して、ターゲットを絞ったソリューションが提供されます。 提案されたソリューションは、デュアルエージェントフレームワークと構造化環境ソリューションであり、「フレームワーク」(プロンプト、スクリプト、ファイルで構成されるシステム)を導入することで、永続的な状態とセッション間のスムーズなハンドオーバーを実現します。具体的には、以下の2つの役割が含まれます。 1. 初期化エージェント: 最初のセッションでのみ使用され、初期環境の設定を担当します。以下の主要ファイルを生成します。 • feature_list.json: JSON形式の機能リスト。すべてのタスク(「新しいチャットの作成」など)をリストし、各タスクには説明、手順、および初期の「成功」状態(false)が含まれます。JSON形式は不変性を保証し、後続の編集を防ぎます。 • claude-progress.txt: アクションと進行状況を記録するログ ファイル。 • init.sh: 開発サーバーを実行して基本機能をテストし、後続のセットアップのオーバーヘッドを削減するために使用される起動スクリプト。 初期化後、最初の Git コミットを行ってクリーンなベースラインを作成します。 2. コーディングエージェント:以降のセッションを担当し、段階的な進捗に焦点を当てます。各セッションでは、以下の1つの機能のみを担当します。 • セッション起動ルーチン: ディレクトリ (pwd) を確認し、Git ログと進行状況ファイルを確認し、init.sh を実行して環境を起動し、コア テストを検証します。 • ワークフロー: JSON リストから不完全な機能を選択し、コード化し、説明的な Git 変更をコミットし、「合格」ステータスを更新し (テストが合格した後のみ)、ログに記録します。 • 「クリーンな状態」を強調する: 完了すると、コードにはバグがなく、完全に文書化され、メイン ブランチに直接マージできる状態になっている必要があります。 主要なプラクティスとツールの統合:機能リストとGit:JSONリストは「早期完了」を防ぎ、Gitはロールバックと履歴追跡を提供します。実験では、JSONはMarkdownと比較して不正な変更を減らすことが示されています。 • エンドツーエンドテスト:ブラウザ自動化ツール(Puppeteer MCPサーバーなど)を統合して、人間の操作(モーダルのクリックやスクリーンショットの検証など)をシミュレートします。これにより、コードレビュー中に見落とされたインタラクションバグを検出できますが、この記事ではネイティブブラウザ要素の処理などの制限についても指摘しています。 • ヒント戦略:初期化ヒントとコーディングヒントは異なります。前者はビルドに重点を置き、後者は単一の機能と検証に重点を置いています。失敗を回避するために、強く制約された言語(「テストを編集しない」など)を使用してください。 • 障害モード表: 記事の付録では、問題 (「難読化の設定」など) と解決策 (標準化されたスクリプトなど) をまとめ、簡単に実践できるようにしています。 結論と展望 Anthropicの経験は、このフレームワークが長期実行エージェントの信頼性を大幅に向上させることを実証しています。つまり、無秩序な「一撃離脱」の障害から、設計された継続的な反復へと移行するのです。重要なポイントは、人間工学のプラクティス(バージョン管理やテスト駆動開発など)とAIの自動化の可能性を組み合わせることです。まずはシンプルなプロジェクトから始め、障害モードを検証し、マルチエージェントシステム(専用テストエージェントなど)へと拡張していきます。将来的には、科学研究や金融モデリングなどの他の分野にも応用し、より複雑な協調アーキテクチャを探求していくことも可能です。 ブログアドレス:
スレッドを読み込み中
X から元のツイートを取得し、読みやすいビューを準備しています。
通常は数秒で完了しますので、お待ちください。
![[Anthropic Engineering Blog] 長時間稼働するインテリジェントエージェントを構築するための効率的なフレームワーク
Anthropicの最新のエンジニアリングブログ記事では、長期実行エージェントが複数のセッションに](https://pbs.twimg.com/media/G6uD6C6aEAAAsuS.jpg)