Skip to main content

人格系统

创建具有独特人格的智能体,并观察它们通过交互不断演化。

大五人格模型

每个智能体都有大五(OCEAN)人格分数。行为特征、情绪基线、说话风格和交互偏好都源自这些分数。

  • 开放性 (0.0 - 1.0):好奇心、创造力、对新体验的开放程度。高分 = 富有想象力、爱探险。低分 = 务实、传统。
  • 尽责性 (0.0 - 1.0):组织能力、纪律性、目标导向。高分 = 有条理、可靠。低分 = 自发、灵活。
  • 外向性 (0.0 - 1.0):社交能量、热情、果断。高分 = 外向、精力充沛。低分 = 内敛、善于反思。
  • 宜人性 (0.0 - 1.0):温暖、合作、共情能力。高分 = 关怀、信任。低分 = 直接、多疑。
  • 神经质 (0.0 - 1.0):情绪敏感度、焦虑倾向。高分 = 情绪反应强烈。低分 = 情绪稳定。

confidence 字段(0.0-1.0)控制分数对行为的影响强度。低置信度 = 更趋于通用;高置信度 = 更具差异化。

BFAS 维度细分

平台内部将大五分数映射到 10 个 BFAS(大五方面量表)维度。这些维度提供对人格更精细的控制,并在人格档案响应中对外暴露:

大五领域维度 1维度 2
开放性intellectaesthetic
尽责性industriousnessorderliness
外向性enthusiasmassertiveness
宜人性compassionpoliteness
神经质withdrawalvolatility

每个维度是从父级大五领域派生出的 0.0-1.0 分数。你可以从人格档案中读取它们,但无需手动设置——它们由你的大五分数计算得出。

行为特征

人格档案包含影响智能体沟通方式的派生行为特征:

  • response_length — 智能体倾向于详细或简洁的程度。
  • question_frequency — 智能体提出追问的频率。
  • empathy_style — 智能体对情感支持的处理方式(认可型、解决导向型等)。
  • conflict_approach — 智能体处理分歧的方式(迁就型、直接型、调解型等)。

创建带人格的智能体

创建智能体时传入大五分数。平台会自动生成人格提示词、说话风格和行为倾向。

import { Sonzai } from "@sonzai-labs/agents";

const client = new Sonzai({ apiKey: "sk-..." });

const agent = await client.agents.create({
agentId: "your-stable-uuid",  // 可选但推荐
name: "Luna",
gender: "female",
big5: {
  openness:          0.75,
  conscientiousness: 0.60,
  extraversion:      0.80,
  agreeableness:     0.70,
  neuroticism:       0.30,
},
language: "en",
});

console.log(agent.agent_id);

幂等性

传入相同的 agentId 始终执行插入或更新操作。可安全地在每次部署时调用。参见 快速开始 了解推荐的 UUID 派生模式。

获取人格档案

检索智能体当前的人格档案,包括派生的说话风格和交互偏好。

const profile = await client.agents.personality.get("agent-id");

console.log(profile.big5);
console.log(profile.speechPatterns);
console.log(profile.interactionPreferences);

更新人格

运行人格评估后更新大五分数。confidence 值控制新分数对行为的影响强度。

await client.agents.personality.update("agent-id", {
big5: {
  openness:    0.82,
  extraversion: 0.75,
},
confidence: 0.8,   // 0.0-1.0
});
  • confidence < 0.3:试探性。最小幅度的调整。
  • confidence 0.3 - 0.7:与现有分数混合。
  • confidence > 0.7:对人格产生强烈影响。

人格演化历史

检索智能体人格变化的历史——适用于向用户展示成长时刻。

const history = await client.agents.personality.history("agent-id");

for (const shift of history.shifts) {
console.log(shift.trait, shift.delta, shift.triggeredBy, shift.createdAt);
}

交互偏好

塑造对话风格的派生偏好:

对话节奏
慢速、适中、快速——由外向性水平派生。
正式程度
随意、均衡、正式——由尽责性水平派生。
幽默风格
干涩、活泼、温暖——由开放性与宜人性共同派生。
情感表达
内敛、适中、外露——由神经质与外向性共同派生。

人格演化

人格通过交互自然演化:

  1. 交互分析 — 每次对话后分析情感主题和模式。
  2. 微调 — 根据对话内容对相关大五维度进行小幅调整。
  3. 突破 — 当累积变化超过阈值时,触发"突破"事件——这是智能体意识到的重大人格变化。
  4. 档案重生 — 人格提示词、说话风格和行为指令将重新生成以反映演化后的人格。

每用户人格叠加层

平台会自动为每个用户派生一个人格叠加层——智能体基于对话历史、 偏好和关系状态,微妙地适应特定用户的方式。你无需手动设置叠加层; 它们由每次聊天轮次后运行的同一套流水线填充。

读取当前叠加层用于 UI 展示(显示智能体的语气如何随用户变化) 或分析:

// 列出该智能体所有有人格叠加层的用户
const overlays = await client.agents.personality.listUserOverlays("agent-id");

// 读取某个用户的叠加层
const overlay = await client.agents.personality.getUserOverlay("agent-id", "user-123");
console.log(overlay.big5Delta, overlay.interactionPreferences);

派生智能体

创建一个拥有独立人格、记忆和状态的智能体副本。派生的智能体从与原始智能体相同的配置起步,但从此独立演化。

const forked = await client.agents.fork("agent-id");
console.log(forked.agentId); // 新的独立智能体

实际应用

三类受众都会使用人格,但调整的内容和原因大相径庭。

人格就是角色。 大五 + 说话风格 + 兴趣爱好 是让 Luna 感觉像 Luna 的关键。调高开放性(0.8+)和适中的 宜人性带来温暖感;降低尽责性带来俏皮感;适中的神经质带来情感层次。

让它演化。 特质漂移是特性,不是缺陷——长期用户希望 感受到他们的伴侣与自己一起成长。不要抑制演化;读取 history 在你的 UI 中呈现"Luna 的变化"时刻。

const shifts = await client.agents.personality.history("agent-id", {
  userId: "user-123",
  since: "2026-01-01",
});
// 将重大变化渲染为 UI 中的叙事节点

说话风格比分数更重要。 在简介中定义 3-5 个独特的语言习惯—— 这些比大五档案更能承载声音特色。

On this page