Skip to main content

パーソナリティシステム

独自のパーソナリティを持つエージェントを作成し、インタラクションを通じた進化を観察します。

ビッグファイブパーソナリティモデル

すべてのエージェントはビッグファイブ(OCEAN)パーソナリティスコアを持ちます。行動特性・ムードのベースライン・発話パターン・インタラクション傾向はすべてこれらのスコアから導出されます。

  • 開放性(Openness)(0.0 - 1.0):好奇心・創造性・経験への開放性。高い = 想像力豊か・冒険的。低い = 実践的・慣習的。
  • 誠実性(Conscientiousness)(0.0 - 1.0):組織力・規律・目標志向性。高い = 几帳面・信頼できる。低い = 自発的・柔軟。
  • 外向性(Extraversion)(0.0 - 1.0):社交エネルギー・熱意・自己主張。高い = 社交的・活動的。低い = 内省的・控えめ。
  • 協調性(Agreeableness)(0.0 - 1.0):温かさ・協力性・共感力。高い = 思いやりがある・信頼する。低い = 率直・懐疑的。
  • 神経症傾向(Neuroticism)(0.0 - 1.0):感情的感受性・不安傾向。高い = 感情的に反応しやすい。低い = 感情的に安定。

confidence フィールド(0.0〜1.0)は、スコアが行動に与える影響の強さを制御します。低い confidence = より汎用的、高い = より個性的。

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); // 新しい独立したエージェント

実践ガイド

3つのオーディエンスはすべてパーソナリティを使用しますが、何をチューニングするか、そしてその理由は大きく異なります。

パーソナリティはキャラクターそのものです。 ビッグファイブ+発話パターン+興味が、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