Devotd Github
新着AIエージェント

huynguyengl99/agent-graph-engineering — 状態ダンプから会話を除外

LangGraph・Pydantic AI に基づくエージェントのレファレンス実装 agent-graph-engineering が、ノードごとの状態ダンプで会話履歴をプレースホルダーに置き換え、トレーシング記録のサイズを削減した。

リポジトリ情報huynguyengl99/agent-graph-engineering ↗

LangGraph・Pydantic AI に基づくエージェントのレファレンス実装 agent-graph-engineering が、ノードごとの状態ダンプで会話履歴をプレースホルダーに置き換え、トレーシング記録のサイズを削減した。

GitHub の説明: A production-grade reference implementation for LLM agent systems: flow declared as a LangGraph graph, Pydantic AI for typed agents, generated WebSocket and REST contracts, human approval on irreversible actions, tracing and evals.

スター
★ 14
フォーク
4
言語
Python
ライセンス
MIT
原文を見る ↗GitHub で見る ↗

LLM エージェントシステムを LangGraph のグラフで組み、Pydantic AI でエージェントに型を付けるレファレンス実装リポジトリ agent-graph-engineering において、2026 年 10 月 31 日のコミット 6b195cce はトレーシング 쪽を扱った。各ノードに付いていた graph.state ダンプから会話履歴(messages_json)を外し、代わりにその内容が別の場所にあることを示すプレースホルダー文字列を残した。

このリポジトリの範囲は単一のエージェントループより広い。フローはグラフで宣言し、エージェントは型付きの構造として定義し、WebSocket と REST の契約を生成し、不可逆な操作には人の承認を挟み、トレーシングと評価までひとまとめにする——これがリポジトリの説明である。今回のコミットは、そのうちトレーシングの一箇所だけを扱った。コミットメッセージは、状態ダンプが一回の実行の中で同じ内容をノードごとに 9 回繰り返し格納し、その中で会話履歴が約 7 割を占める、と指摘した。ノードの下にネストされたモデル呼び出し記録には実際に送信された内容がすでに残っているので、履歴は名前だけを残して別の場所を指すようにしたことになる。同じメッセージは、スクリプト実行基準で状態属性の文字数が 15,997 文字から 6,868 字符に減ったと記している。

実装は agent/assistant/tracing/nodes.py とテストファイル 2 箇所だけに残った。_as_json が状態を JSON 文字列に変換する際、messages_json の値のみを <on the model call spans> に置き換え、他のフィールドは細かく縮めずにそのまま残す。会話履歴が空文字列の場合は空のままにして、内容は無いのに別の所にあると読まれないようにした。新たなテスト 3 件がこの挙動を固定している。

ただし 15,997 文字から 6,868 文字という数値は、コミット 6b195cce のメッセージが示したスクリプト実行基準である。実際の会話では差がもっと広がるとだけ述べており、他の測定はない。状態属性だけでは会話内容を確認できないため、内容を確認するにはネストされたモデル呼び出し記録へ移る必要がある。変更は 45 行の追加と 2 行の削除という狭い範囲に収まり、2026 年 10 月 31 日のコミット 6b195cce を基準にリリースバージョン表示は示されていない。トレーシングに残る状態サイズを削減したい環境にはそのまま使える改善だが、会話履歴を状態値として保持することを前提としたパイプラインでは別の代替案を別途検討する必要がある。