Skip to main content

情绪与心情

每个智能体都维护一个动态的情绪状态,随对话、应用事件和时间推移而变化。

自动运行——无需配置

情绪、心情和目标均由上下文引擎自动管理。每段对话、每个应用事件和基于时间的衰减都无需你编写任何代码即可处理。

本页面的 API 和 SDK 调用用于读取状态(仪表盘、分析)或手动覆盖值——适用于你的应用需要驱动特定情绪状态或目标的场景,例如在应用内成就触发后推动情绪提升,或根据工作流里程碑设置目标。

情绪维度

每个智能体-用户对都有一个情绪状态,包含四个 0-100 分的维度:

  • 快乐度 (0-100):喜悦/悲伤谱系
  • 能量值 (0-100):活跃/迟钝程度
  • 平静度 (0-100):焦虑/平和状态
  • 亲密度 (0-100):对用户的温暖程度

情绪标签

整体情绪标签由各维度综合得出:

  • 愉悦 (80-100):异常快乐、热情洋溢
  • 满足 (60-79):总体积极、自在舒适
  • 平静 (40-59):均衡、沉稳
  • 忧郁 (20-39):略显低落、内敛
  • 困扰 (0-19):沮丧、焦虑

什么会影响情绪

1. 聊天交互

平台检测对话中的情感主题并自动调整情绪。常见主题:

  • joy_blooming — 关键词:happy, excited, wonderful — 效果:快乐度 ↑,能量值 ↑
  • creative_spark — 关键词:create, imagine, inspire — 效果:能量值 ↑,快乐度 ↑
  • brave_steps — 关键词:courage, try, challenge — 效果:能量值 ↑,平静度 ↑
  • growth_journey — 关键词:learn, grow, improve — 效果:快乐度 ↑,能量值 ↑
  • seeking_connection — 关键词:friend, together, share — 效果:亲密度 ↑,快乐度 ↑
  • feeling_overwhelmed — 关键词:stressed, anxious, worried — 效果:平静度 ↓,能量值 ↓
  • tender_heart — 关键词:love, care, miss — 效果:亲密度 ↑,快乐度 ↑
  • facing_fears — 关键词:scared, afraid, nervous — 效果:平静度 ↓,亲密度 ↑

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.getMoodHistory("agent-id", {
userId: "user-123",
});

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);
}

目标

目标代表智能体正在为用户努力实现的事情——它们由上下文引擎在对话展开时自动检测和更新。你无需手动设置或管理它们。

手动目标管理的常见场景:

  • 用户开始新工作流时播种目标(例如"完成入职")
  • 业务事件发生后(例如购买或里程碑)将目标标记为已完成
  • 用户改变方向时放弃目标
// 目标自动管理——仅在需要时覆盖

// 列出当前目标
const goals = await client.agents.listGoals("agent-id", { userId: "user-123" });

// 手动创建目标(可选)
const goal = await client.agents.createGoal("agent-id", {
userId: "user-123",
title: "Onboarding",
description: "Complete onboarding checklist",
type: "task",
priority: 1,
});

// 业务事件发生后将目标标记为已完成
await client.agents.updateGoal("agent-id", goal.goal_id, {
userId: "user-123",
status: "achieved",
});

情绪如何影响响应

情绪状态自动包含在 AI 上下文中。智能体相应地调整语气:

  • 高快乐度:更热情,使用感叹词,分享积极观察
  • 低能量值:响应更简短,提到疲惫,较少主动探索话题
  • 低平静度:可能表达担忧,寻求安慰,注意力集中时间较短
  • 高亲密度:更多个人化语言,亲昵称呼,更深层的情感投入

实际应用

情绪对伴侣来说至关重要。对于任务型智能体,你基本上可以忽略这个系统。对于企业智能体,即使不用它驱动回复,读取端也可以作为情感信号。

情绪是产品的核心。 四维状态(快乐度、能量值、 平静度、亲密度)让 Luna 感觉她正在经历某一天, 而不只是在回复消息。在你的 UI 中展示它,让用户一眼就能读懂 伴侣当前的情感状态。

const mood = await client.agents.getMood("agent-id", {
  userId: "user-123",
});

// 驱动 UI:调整背景色调、改变头像表情、选择环境音效
renderMoodIndicator(mood.happiness, mood.energy);

让对话驱动情绪变化。 情绪会根据每次对话的情感内容自动更新——你无需主动推送增量。如果你希望某个特定事件影响智能体,可以在下一轮对话中将其作为消息(例如"system"上下文)传入;平台会在回合后处理阶段提取该事件并应用情绪变化。

用时光机驱动叙事。 查询情绪历史来呈现 "三周前我们正处于低谷"的时刻——当用户感受到关系经历了不同阶段时, 伴侣会获得深度。

On this page