---
title: "openvibe-sdk/agents/soul · OpenVibe.Services"
canonical: "https://openvibe.services/docs/sdk/agents-soul"
updated: null
---

# openvibe-sdk/agents/soul · OpenVibe.Services

HTML: [openvibe-sdk/agents/soul · OpenVibe.Services](https://openvibe.services/docs/sdk/agents-soul)

# `openvibe-sdk/agents/soul`

Generated at 2026-11-14 06:36:17 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.168.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.168.0).

From `types/agents-soul.d.ts` (both). Declarations are shown verbatim.

## type Dial

~~~~
export type Dial = -2 | -1 | 0 | 1 | 2;
~~~~

## type SoulOrigin

~~~~
export type SoulOrigin = 'words' | 'memories' | 'gallery' | 'twin' | 'soul-md';
~~~~

## interface Soul

~~~~
export interface Soul {
    who: string;
    dials?: { warmth?: Dial; play?: Dial; length?: Dial; edge?: Dial };
    quirks?: string[];
    believes?: string[];
    pushback?: string;
    never?: string[];
    notes?: string;
    made_from?: SoulOrigin;
    updated_at?: string;
}
~~~~

## interface SoulProblem

~~~~
export interface SoulProblem { at: string; why: string }
~~~~

## interface Face

~~~~
export interface Face { avatar?: string; glyph?: string; hue?: number; voice?: string | null; tone?: string; greeting?: string }
~~~~

## export export function validate(soul: unknown): { ok: boolean; erro

~~~~
export function validate(soul: unknown): { ok: boolean; errors: SoulProblem[] };
~~~~

## export export function toPrompt(soul: Soul, options?: { name?: stri

~~~~
export function toPrompt(soul: Soul, options?: { name?: string }): string;
~~~~

## export export function toSoulMd(soul: Soul, options?: { name?: stri

~~~~
export function toSoulMd(soul: Soul, options?: { name?: string }): string;
~~~~

## export export function toIdentityMd(identity?: { name?: string; fac

~~~~
export function toIdentityMd(identity?: { name?: string; face?: Face }): string;
~~~~

## export export function fromSoulMd(text: string): Soul;

~~~~
export function fromSoulMd(text: string): Soul;
~~~~

## export export function change(soul: Soul, patch: Partial<{ \[K in ke

~~~~
export function change(soul: Soul, patch: Partial<{ [K in keyof Soul]: Soul[K] | null }>): { soul: Soul; ok: boolean; errors: SoulProblem[]; words: string };
~~~~

## export export function dialWords(name: 'warmth' | 'play' | 'length'

~~~~
export function dialWords(name: 'warmth' | 'play' | 'length' | 'edge', value: number): string;
~~~~

## export export const DIALS: { readonly warmth: readonly \['dry', 'war

~~~~
export const DIALS: { readonly warmth: readonly ['dry', 'warm']; readonly play: readonly ['serious', 'playful']; readonly length: readonly ['brief', 'thorough']; readonly edge: readonly ['gentle', 'blunt'] };
~~~~

## export export const ORIGINS: readonly SoulOrigin\[\];

~~~~
export const ORIGINS: readonly SoulOrigin[];
~~~~

## export export const LIMITS: { readonly who: number; readonly quirk:

~~~~
export const LIMITS: { readonly who: number; readonly quirk: number; readonly quirks: number; readonly belief: number; readonly believes: number; readonly pushback: number; readonly rule: number; readonly never: number; readonly notes: number };
~~~~

## export export class SoulError extends Error { errors: SoulProblem\[\]

~~~~
export class SoulError extends Error { errors: SoulProblem[] }
~~~~
