会話
リアルタイムチャットライフサイクル:メッセージ送信、応答ストリーミング、 プラットフォームによるエージェント状態の自動更新。
セッションフロー
すべての会話はシンプルな3ステップのライフサイクルに従います:
1. Send a chat request — Pass agent ID, user ID, application context, and messages
2. Receive stream — Render tokens to the user in real time
3. Platform auto-updates — Memory, mood, relationships, and personality evolveチャット(非ストリーミング)
シンプルなリクエスト・レスポンスフローには、標準のチャットメソッドを使用します。
import { Sonzai } from "@sonzai-labs/agents";
const client = new Sonzai({ apiKey: "sk-..." });
const response = await client.agents.chat("agent-id", {
messages: [{ role: "user", content: "Hello!" }],
userId: "user-123",
language: "en",
});
console.log(response.content);チャット(ストリーミング)
トークンが到着次第ストリーミングして、よりレスポンシブな体験を提供します。 内部ではServer-Sent Events(SSE)を使用しています。
for await (const event of client.agents.chatStream("agent-id", {
messages: [{ role: "user", content: "Tell me a story" }],
userId: "user-123",
language: "en",
timezone: "America/New_York",
})) {
process.stdout.write(event.choices?.[0]?.delta?.content ?? "");
}SSEフォーマット
RESTエンドポイントはOpenAI互換のSSEチャンクを送信します。各行はdata: で始まります。ストリームは data: [DONE]で終了します。
アプリケーションコンテキスト
リクエストごとにアプリケーション状態を渡して、エージェントが会話中に 参照できるようにします。プラットフォームはこの状態をキャッシュしません。 毎回のチャット呼び出しで送信してください。
for await (const event of client.agents.chatStream("agent-id", {
messages: [{ role: "user", content: "What should I do next?" }],
userId: "user-123",
gameContext: {
customFields: {
department: "Engineering",
currentTask: "Q2 roadmap review",
ticketsOpen: 12,
role: "Senior Developer",
},
},
})) {
process.stdout.write(event.choices?.[0]?.delta?.content ?? "");
}プラットフォーム管理の状態更新
各インタラクション後、プラットフォームがこれらを自動処理します。 個別のAPI呼び出しは不要です。
記憶抽出
会話から事実、イベント、コミットメントを抽出します。
ムード更新
検出された感情テーマがムード次元をシフトさせます。
パーソナリティ進化
インタラクションパターンによるビッグファイブの漸進的なシフト。
習慣追跡
繰り返されるパターンが追跡される習慣になります。
関係性更新
ケミストリーと関係性ナラティブを更新します。
目標の進捗
アクティブな目標の進捗を記録します。
マルチエージェントダイアログ
ダイアログAPIを使用して、複数のエージェント間の会話を調整したり、 エージェントが直接のユーザーメッセージなしで共有シーンコンテキストに 応答できるようにします。
const response = await client.agents.dialogue("agent-id", {
userId: "user-123",
messages: [
{ role: "user", content: "Tell the group about your weekend plans" },
],
sceneGuidance: "A casual team standup meeting",
});
console.log(response.content);ツール呼び出し
内部ツール(記憶、状態)は自動的に実行されます。エンドユーザー向けの 機能にはオプトインツールのみを設定します:
オプトインツール
generate_imageテキストプロンプトから画像を生成generate_videoテキストプロンプトから動画を生成generate_soundサウンドエフェクトを生成generate_musicバックグラウンドミュージックを生成generate_ttsテキスト読み上げ変換SDKでの有効化
for await (const event of client.agents.chatStream("agent-id", {
messages: [{ role: "user", content: "Show me a sunset!" }],
userId: "user-123",
tools: ["generate_image"],
})) {
if (event.type === "image") {
console.log("Generated image:", event.imageUrl);
}
}プロダクトの機能に基づいてオプトインツールを有効にしてください。 記憶と状態のツールはプラットフォーム管理です。