Burr上でLLMエージェントのためのタイムトラベルデバッガ... ノート

Burr上でLLMエージェントのためのタイムトラベルデバッガーを構築した方法と、「変更されていないブランチをリプレイして何も変更されていないことを証明する」とは実際には何を意味するか

既存のエージェントトレースツールは限定的であり、ユーザーは問題をデバッグするためにパイプライン全体を再実行する必要があり、決定論的でないモデルの動作から変更を分離することが困難になっています。Rewindは、ユーザーが完了した実行を任意のステップでフォークし、単一の入力を変更し、下流のステップのみをリプレイできるようにすることで、この問題に対処します。これにより、トラジェクトリの正確な差分比較が可能になり、実際の変更とモデルのジッターを区別できます。Rewindアーキテクチャには、ブラウザインターフェイス、FastAPIバックエンド、Burrアプリケーションが含まれており、状態はSQLiteに永続化され、テレメトリはノードごとにキャプチャされます。重要な設計原則は、状態がセマンティックのみであり、レイテンシやトークン数などの決定論的でない要素を状態自体から除外することです。パイプラインの分岐を引き起こす可能性のあるフレームワーク固有のキーは、プロンプトやハッシュに影響を与える前に状態から削除されます。フォークされた実行のオーバーライドは状態の外で管理され、変更されていないブランチでもキャッシュにヒットできることが保証されます。アーティファクトハッシュは、含まれるファイルパスではなく、コンテンツバイトから生成されるため、偽の差分を防ぎます。キャッシングメカニズムは、モデル、温度、プロンプト、ツール結果に基づいた決定論的なキーを使用します。ツールノードには、ツール名と正規化された引数でキー付けされた別のキャッシュがあります。差分エンジンは、ネストされた辞書をフラット化して、特定のフィールドレベルの分岐を特定し、明確で実行可能なデバッグ情報を提供します。Rewindは堅牢なエラー処理を実装しており、パースエラーや消費できないオーバーライドに対して大きな音で失敗します。検証テストは、Rewindが変更されていないリプレイに対して100%のキャッシュヒット率とゼロの増分トークン使用量を達成することを確認します。この決定論は、すべてのLLM呼び出しがキャッシュされている場合、実行がデッドプロバイダーでも生き残ることができるため、有用であることが証明されています。潜在的な落とし穴には、メタデータを誤って処理するSDKや、異なるプロバイダーによるモデルIDの一貫性のない検証が含まれます。このツールは、ポートの競合やViteのIPv6デフォルトなどの一般的な開発環境の問題にも対処します。将来の機能強化には、複数のオーバーライドを並列化するための「what-if」グリッドや、非線形グラフトポロジのサポートが含まれます。