名称変更に見るアーキテクチャの転換
MemGPTからLettaへの改名は、単なるブランド変更ではない。プロジェクトの中核をなす設計哲学の根本的な変化を示している。当初は大規模言語モデルの文脈長制約を克服するためのメモリ管理機構に特化していたが、現在は自律的なエージェントを動作させるための総合プラットフォームへと進化を遂げている。
現行基盤の技術的特徴
Lettaの現在の実装は、以下の階層構造で記憶を管理している。
- アクティブ層: 直近の対話文脈を保持。LLMの推論時に直接参照される
- リコール層: 過去の対話履歴を圧縮・索引化。必要に応じてアクティブ層に昇格
- アーカイブ層: 長期保存用のベクトルデータベース。意味的検索による検索が可能
# Letta v0.11.x でのエージェント構築例
import letta
# クライアント初期化
lt = letta.Client(base_url="http://localhost:8283")
# 記憶戦略をカスタマイズしたエージェント定義
my_agent = lt.agents.create(
name="research_assistant",
memory_blocks=[
{"label": "user_profile", "value": "技術調査を頻繁に依頼するユーザー"},
{"label": "project_context", "value": "分散システムの設計レビュー"}
],
# 階層間の情報移動ポリシー
recall_config={
"search_depth": 3,
"relevance_threshold": 0.75
}
)
2025年に向けた技術的課題
推論レイテンシの最適化
現在のボトルネックは、リコール層からの情報検索処理にある。ベクトルDBへのクエリとLLM推論をパイプライン化する非同期アーキテクチャの導入が計画されている。
| 現行方式 | 改善方針 | 期待効果 |
|---|---|---|
| 同期的な検索→推論 | 投機的プリフェッチ | 応答時間 40%短縮 |
| 固定サイズのコンテキスト | 動的ウィンドウ調整 | トークン効率向上 |
| 単一のベクトル空間 | 階層クラスタリング | 検索精度の向上 |
マルチモーダル記憶の統合
テキスト以外の情報型を第一級の記憶オブジェクトとして扱う設計変更が進行中。画像特徴量、音声埋め込み、構造化データを統一的な表現空間にマッピングする。
# 今後のバージョンで想定されるマルチモーダル記憶操作
class UnifiedMemoryStore:
def __init__(self):
self.encoders = {
'text': TextEmbeddingModel(),
'vision': CLIPAdapter(),
'audio': WhisperEncoder()
}
def cross_modal_recall(self, query_image=None, query_text=None, top_k=5):
"""異なるモダリティを横断した意味検索"""
# 統合表現空間での近傍探索
unified_query = self._fuse_embeddings(
image=query_image,
text=query_text
)
return self.hnsw_index.search(unified_query, k=top_k)
エンタープライズ導入のための要件
観測可能性の強化
運用環境でのデバッグを支援するため、以下の可視化機能が開発されている。
- 記憶階層間の情報フローのトレース
- エージェントの意思決定過程の説明生成
- 長期間の対話における一貫性スコアの監視
ガバナンスとコンプライアンス
企業利用において不可欠な機能として、記憶データの管理ポリシーが設計されている。
# データ保持ポリシーの設定例
memory_governance:
retention_rules:
- scope: "pii_data"
action: "encrypt_at_rest"
key_rotation: "90d"
- scope: "conversation_history"
action: "anonymize_after"
duration: "1y"
audit_trail:
- memory_access_log
- agent_state_snapshot
- policy_violation_alert
生態系としての将来像
Lettaの最終的な目標は、個別のエージェントを連携させるオーケストレーション層の提供にある。複数の専門化エージェントが共通の記憶空間を参照しながら協働する、いわば「集団知性」の基盤を構築する。
# 分散エージェント協調の概念実装
from letta.orchestration import Swarm, TaskRouter
class ResearchSwarm(Swarm):
def __init__(self):
self.specialists = {
'literature': lt.agents.load('literature_reviewer'),
'methodology': lt.agents.load('methodology_expert'),
'synthesis': lt.agents.load('report_compiler')
}
async def execute_research_task(self, topic):
# 動的なタスク分解と委任
subtasks = await self.decompose(topic)
results = await asyncio.gather(*[
TaskRouter.route(t, self.specialists)
for t in subtasks
])
return await self.synthesize(results)
この方向性において、単一の記憶管理ライブラリとしての位置づけから、エージェント間の知識共有プロトコル標準を定めるインフラへと拡張していくことが期待される。