記憶とコンテキスト
エージェントは重要なことを記憶します。すべての会話が分析され、 事実、イベント、コミットメントが抽出されて自動的に保存・想起されます。
記憶カテゴリ
記憶は4つのカテゴリに保存されます:
Facts永続的な知識:ユーザーの好み、個人情報、背景。例:「ユーザーはタイ料理好きのソフトウェアエンジニアです。」
Events共有された体験のエピソード記憶。例:「先週、日本旅行について話しました。」
Commitmentsエージェントが行った約束や計画。例:「次回、就職面接について聞くと約束しました。」
Summaries統合された会話サマリー。セッション間で自動生成されます。
記憶の仕組み
記憶は完全に自動化されています。管理する必要はありません。プラットフォームが 各会話を分析し、事実、イベント、コミットメントを抽出します。各応答の前に、 最も関連性の高い記憶が自動的に組み立てられてコンテキストに含まれます。
オーケストレーション不要
チャットを呼び出すだけです。プラットフォームが毎回のインタラクションで 記憶の抽出、保存、取得を処理します。
シードメモリ
memory.seed()を使用して、最初の会話の前にエージェントが ユーザーについて知っている情報を事前にロードします。
import { Sonzai } from "@sonzai-labs/agents";
const client = new Sonzai({ apiKey: "sk-..." });
await client.agents.memory.seed("agent-id", "user-123", {
facts: [
"User's name is Jane Smith",
"Jane is a senior product manager at Acme Corp",
"Jane lives in San Francisco and enjoys hiking",
],
});記憶の検索
キーワードまたはセマンティッククエリでユーザー・エージェントペアの 記憶を検索します。
const results = await client.agents.memory.search("agent-id", {
userId: "user-123",
query: "hiking trip",
limit: 10,
});
for (const mem of results.memories) {
console.log(mem.content, mem.type, mem.createdAt);
}一覧と閲覧
すべての記憶を一覧表示するか、カテゴリ別に閲覧します。
// List all memories (paginated)
const memories = await client.agents.memory.list("agent-id", {
userId: "user-123",
type: "fact", // "fact" | "event" | "commitment" | "summary"
limit: 20,
offset: 0,
});
// Browse by category
const facts = await client.agents.memory.listFacts("agent-id", {
userId: "user-123",
});記憶タイムライン
ユーザーの記憶履歴を時系列で表示します。
const timeline = await client.agents.memory.timeline("agent-id", {
userId: "user-123",
from: "2026-01-01",
to: "2026-03-31",
});
for (const entry of timeline.entries) {
console.log(entry.date, entry.summary);
}記憶ツリーの閲覧
ユーザーの階層的な記憶構造をナビゲートします。
// Browse the memory tree at a given path
const nodes = await client.agents.memory.browse("agent-id", {
userId: "user-123",
path: "/facts", // optional: filter by path
});記憶のリセット
ユーザー・エージェントペアのすべての記憶をクリアします。 テストやユーザーが新規開始を希望する場合に便利です。
await client.agents.memory.reset("agent-id", {
userId: "user-123",
});