User as Code: Executable Memory for Personalized Agents
本論文は、パーソナライズされたエージェントのメモリを非構造化テキストではなく実行可能なPythonコードとして表現するパラダイムであるUser as Code(UaC)を導入するものであり、これにより、履歴データの集約、矛盾の解決、および決定論的な計算を通じた安全規則の積極的な強制において優れた性能を実現する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
「User as Code」という論文の解説です。分かりやすい言葉とクリエイティブな比喩を用いています。
大きなアイデア:「メモの詰め込まれた靴箱」から「生きているソフトウェアアプリ」へ
あなたは、友人であるジェシカについて、あらゆることを記憶しようとしていると想像してください。
旧来の手法(現在のAIのメモリ):
現在、ほとんどのAIエージェントは、メモリを付箋が詰まった靴箱のように保存しています。
- あなたは事実を書き留めます:「ジェシカはパクチーが好き」「ジェシカはパクチーが嫌い」「ジェシカはペニシリンにアレルギーがある」。
- AIに「ジェシカは何に対してアレルギーがありますか?」と尋ねると、AIは箱の中をかき回し、「ペニシリン」についてのメモを見つけ出し、それを読み上げます。
- 問題点: もしあなたが「ジェシカは昨年、何回の海外旅行に行きましたか?」と尋ねたら、AIはすべてのメモを読み、一つずつ数え、頭の中で計算しなければなりません。AIは途中で迷子になったり、メモを忘れたり、「アモキシシリン」が「ペニシリン」の一種であることを(同じメモにその二つの言葉が併記されていない限り)見落としたりすることがよくあります。これは、単なるレシートの山を読んで複雑な会計業務を行おうとするようなものです。
新しい手法(User as Code):
著者らは、User as Code (UaC) と呼ばれる新しいシステムを提案しています。AIは「メモの靴箱」を作る代わりに、ジェシカ専用の**「生きているソフトウェアアプリ」**を構築します。
- ステート(データベース): メモの代わりに、AIは型定義された「オブジェクト」(デジタルフォルダのようなもの)を作成します。「パスポート」フォルダ、「旅行」フォルダ、「医療」フォルダなどがあります。医療フォルダの中には、単に「ペニシリンアレルギー」と書くのではなく、
薬物クラス: ペニシリン、重症度: 重度といった構造化されたエントリを作成します。 - ルール(ロジック): AIは、自動的に実行される小さなコンピュータプログラム(関数)も記述します。一つのプログラムは、「もし新しい薬が処方されたら、その薬物のクラスが既存のアレルギーと一致するかどうかを確認する」といった内容になります。
仕組み:2段階の工場
この論文は、乱雑な会話をこのクリーンなソフトウェアへと変換するための、2つのステップによるプロセスを説明しています。
- フェーズ1:書記官(記憶する)
ジェシカがAIと話すたびに、「書記官」が耳を傾け、あらゆる事実を加工されていない生のリストとして書き留めます。決して削除はしません。ジェシカが「アレルギーの件でパーク医師に診てもらいました」と言えば、書記官は[日付] ユーザーはアレルギーのためにパーク医師を受診したと書き留めます。
- 比喩: これは、法廷速記者が出廷中の内容をすべてタイピングしているようなものです。何も失われず、まだ要約もされていません。
- フェーズ2:設計者(構造化する)
定期的に、「設計者」(賢いAI)が全件の生の事実リストを読み込み、それらをクリーンなソフトウェアアプリへと書き換えます。設計者は、事実を「パスポート」や「医療」といったフォルダに整理し、矛盾をチェックするための小さなプログラム(制約)を書き込みます。
- 比喩: これは、司書がバラバラに置かれた本を集め、検索可能な完璧なカタログを作り上げ、即座に統計を算出できるコンピュータシステムを構築するようなものです。
なぜこれがすべてを変えるのか
この論文は、この転換によって、AIが「靴箱」方式では苦戦する3つのことができるようになると主張しています。
1. 「数学」の問題(分析的推論)
- シナリオ: あなたが「ジェシカは2025年に何回の海外旅行に行きましたか?」と尋ねます。
- 旧来の手法: AIは「旅行」に関するメモを探し、どれが海外旅行かを推測して数え、漏れがないことを祈ります。多くの場合、失敗します(テストでは43%の正解率)。
- 新しい手法: AIは単にシンプルなコードを実行します:
year が 2025 かつ is_international が True であるすべての旅行をカウントせよ。AIは即座に、完璧に答えを出します。これは、コインの山を手作業で数えるのと、瓶の中に正確に何枚入っているかを知っている機械を使うことの違いです。
2. 「プロアクティブ(先回り)」の問題(能動的なサービス)
- シナリオ: ジェシカは1月にペニシリンアレルギーについて話しました。10月、彼女はアモキシシリンを服用していることに言及しました。彼女は「これは安全ですか?」とは一度も聞いていません。
- 旧来の手法: AIは質問を待ちます。「アモキシシリンは私のアレルギーに影響しますか?」と聞かれない限り、点と点を結びつけることはありません。
- 新しい手法: 「設計者」はルールを書いていました:「医療リストが変更されるたびに、薬物の衝突をチェックせよ」。10月のメモが追加された瞬間、コンピュータプログラムが実行され、衝突を検知し、即座に警告を表示します:「重要:あなたはペニシリン系の薬を服用していますが、ペニシリンに対してアレルギーがあります!」
- 比喩: 旧来のシステムは受動的な図書館ですが、新しいシステムは火災が始まる前に警告を発するスマートホームのセキュリティシステムです。
3. 「矛盾」の問題
- シナリオ: ジェシカはあるチャットでは「パクチーが大好き」と言い、別のチャットでは「嫌い」と言います。
- 旧来の手法: 靴箱の中には、矛盾する2つのメモが存在します。AIは混乱します。
- 新しい手法: ソフトウェアアプリには、単一の
Preferences(好み)オブジェクトが存在します。新しい事実が入ってくると、コードは最新の真実を反映するようにオブジェクトを更新するか、あるいは矛盾をフラグ立てしてレビューを求めます。これにより、メモリはクリーンで一貫した状態に保たれます。
結果:論文が明らかにしたこと
著者らは、標準的なベンチマークを用いて、他のメモリシステムと比較検証を行いました。
- 基本メモリ: 「私のパスポート番号は何ですか?」のような単純な質問において、新システムは既存の最高水準のシステムと同等の性能(約79%の精度)を示しました。
- 複雑な数学: カウントや平均を必要とする質問(旅行の例など)において、新システムはほぼ完璧(99%)でしたが、他のシステムは崩壊しました(6〜43%に低下)。
- 安全アラート: AIが(質問される前に)危険を察知しなければならないテストにおいて、新システムは標準的な危険を**100%**検知しました。他のシステムは、質問を待っていたために多くのケースを見逃しました。
- コスト: 最初に「ソフトウェアアプリ」を構築するコストは少し高くなりますが、一度構築してしまえば、質問への回答は非常に安価で高速です。同じユーザーに対して何度も質問を行う場合、新システムは旧来の方法よりもはるかに安価になります。
結論
この論文は、AIのメモリを「テキストの受動的な保管箱」として扱うのではなく、「能動的なソフトウェア・プロジェクト」として扱うべきだと主張しています。ユーザーの履歴を、実行・チェック・計算可能な「コード」へと変えることで、AIは単に孤立した事実を呼び出すだけでなく、数学を行い、隠れた危険を察知し、全体像を把握することができるようになるのです。
要約すると: AIにすべてを「記憶」させるのではなく、ユーザーの人生の上で走り、パターンや警告をリアルタイムで自動的にチェックする「プログラム」を与えるのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。