对话
实时聊天生命周期:发送消息、流式接收响应,让平台自动更新智能体状态。
会话流程
每次对话遵循简单的三步生命周期:
1. 发送聊天请求 — 传入智能体 ID、用户 ID、应用上下文和消息
2. 接收流式响应 — 实时将 token 渲染给用户
3. 平台自动更新 — 记忆、情绪、关系和人格同步演化聊天(非流式)
对于简单的请求-响应流程,使用标准聊天方法。
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);聊天(流式)
实时流式接收 token,获得更流畅的响应体验。底层使用 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);
}
}根据产品功能启用可选工具。记忆和状态工具由平台管理。