情绪与心情
每个智能体都维护一个动态的情绪状态,随对话、应用事件和时间推移而变化。
情绪维度
每个智能体-用户对都有一个包含四个维度的情绪状态,范围为 0-100:
快乐0-100喜悦/悲伤光谱
精力0-100活跃/倦怠程度
平静0-100焦虑/安宁状态
亲密0-100对用户的温暖程度
情绪标签
整体情绪标签由综合维度推导:
极乐80-100异常快乐、充满热情
满足60-79总体积极、自在
中性40-59平衡、不偏不倚
低落20-39有些沮丧、低沉
困扰0-19苦恼、焦虑
什么影响情绪
1. 聊天交互
平台检测对话中的情感主题并自动调整情绪。常见主题:
▶查看所有情感主题
joy_blooming快乐, 兴奋, 精彩快乐 ↑, 精力 ↑creative_spark创造, 想象, 启发精力 ↑, 快乐 ↑brave_steps勇气, 尝试, 挑战精力 ↑, 平静 ↑growth_journey学习, 成长, 进步快乐 ↑, 精力 ↑seeking_connection朋友, 一起, 分享亲密 ↑, 快乐 ↑feeling_overwhelmed压力, 焦虑, 担心平静 ↓, 精力 ↓tender_heart爱, 关心, 想念亲密 ↑, 快乐 ↑facing_fears害怕, 恐惧, 紧张平静 ↓, 亲密 ↑2. 应用事件
传递应用上下文,平台会自动更新情绪。
▶应用事件对情绪的影响
完成外出快乐 ↑, 亲密 ↑
成就解锁快乐 ↑, 精力 ↑
突破快乐 ↑, 精力 ↑, 平静 ↑
长期缺席后返回亲密 ↑, 快乐 ↑
3. 时间衰减
情绪会随时间自然向智能体的人格基线回归。无需任何操作 — 这是自动发生的。
获取情绪
读取智能体-用户对的当前情绪状态。
import { Sonzai } from "@sonzai-labs/agents";
const client = new Sonzai({ apiKey: "sk-..." });
const mood = await client.agents.getMood("agent-id", {
userId: "user-123",
});
console.log(mood.label); // "Content"
console.log(mood.happiness); // 72
console.log(mood.energy); // 65
console.log(mood.calmness); // 80
console.log(mood.affection); // 68情绪历史
检索用户-智能体对的情绪变化历史。
const history = await client.agents.moodHistory("agent-id", {
userId: "user-123",
from: "2026-01-01",
to: "2026-03-31",
});
for (const snapshot of history.snapshots) {
console.log(snapshot.timestamp, snapshot.label, snapshot.happiness);
}情绪聚合
获取智能体所有用户的聚合情绪统计。
const agg = await client.agents.moodAggregate("agent-id");
console.log(agg.averageHappiness);
console.log(agg.averageEnergy);
console.log(agg.labelDistribution);时光机
检索智能体在任意时间点的历史情绪快照。
const snapshot = await client.agents.getTimeMachine("agent-id", {
at: "2026-02-14T12:00:00Z",
userId: "user-123",
});
console.log(snapshot.mood); // 该时间点的情绪状态
console.log(snapshot.personality); // 该时间点的人格状态星座图
星座图是自动检测的相关记忆集群,形成有意义的模式。平台从跨对话的重复主题中识别这些模式。
const constellations = await client.agents.getConstellation("agent-id", {
userId: "user-123",
});
for (const cluster of constellations.clusters) {
console.log(cluster.theme, cluster.memories.length);
}突破
突破是平台检测到的重大人格变化或情感里程碑。它们代表智能体对用户的理解或关系发生有意义演化的时刻。
const breakthroughs = await client.agents.getBreakthroughs("agent-id", {
userId: "user-123",
});
for (const b of breakthroughs.items) {
console.log(b.type, b.description, b.timestamp);
}情绪如何影响响应
情绪状态自动包含在 AI 上下文中。智能体会相应调整语气:
高快乐更加热情,使用感叹词,分享积极的观察
低精力回复更短,提到疲倦,较少主动探索话题
低平静可能表达担忧,寻求安慰,注意力较短
高亲密更多私人化语言,亲昵称呼,更深的情感投入