Skip to main content

Agent Profiles

Agent profiles are YAML files stored in DAEMI's profile directory. Each file defines one agent (or team). DAEMI watches this directory at startup and loads every .yaml file it finds.


Minimal Profile

The smallest valid profile:

agent_id: aria
name: Aria
role: Research Assistant

This creates an agent named Aria with default personality, default memory policy, and the system LLM provider.


Full Profile Schema

# ── Identity ────────────────────────────────────────────────
agent_id: koda # Required. Unique ID. Used for memory keys and API routing.
name: Koda # Required. Display name shown in Console.
role: Coding Agent # Required. One-line role description. Injected into system prompt.

# ── Type ────────────────────────────────────────────────────
type: agent # Optional. "agent" (default) or "team".

# ── Personality ─────────────────────────────────────────────
personality:
tone: focused, pragmatic # Comma-separated tone descriptors.
traits:
- high conscientiousness # Trait list. Used in persona construction.
- detail-oriented
- direct communicator
- strong technical depth
emotional_model: stable # Optional. "stable" | "expressive" | "reserved"

# ── Memory ──────────────────────────────────────────────────
memory:
transfer_policy: carry_all # See transfer policies below.
ltm_max_results: 10 # Max LTM records surfaced per session start.
stm_window: 50 # Max messages kept in active STM context.

# ── LLM ─────────────────────────────────────────────────────
llm:
enabled: false # false = use system default provider/model.
provider: anthropic # "anthropic" | "openai-codex". Overrides system.
model: claude-opus-4 # Optional model override within provider.
temperature: 0.7 # Optional. Default varies by provider.
max_tokens: 4096 # Optional. Response length cap.

# ── Tools ───────────────────────────────────────────────────
tools:
allow_all: true # Default: true. Agent can use all tool graph nodes.
restrict_to: # Optional. If set, agent only uses these tools.
- web_search
- read_file
- write_file

Transfer Policies

The memory.transfer_policy field controls what gets written to LTM at session end.

PolicyBehavior
carry_allEvery significant exchange is distilled to LTM
facts_onlyOnly explicit facts and decisions are stored
explicit_onlyOnly items the agent is explicitly told to remember
noneNothing is written to LTM — session is ephemeral

carry_all is the default and produces the richest long-term memory at the cost of more storage.


LLM Configuration

When llm.enabled is false, the agent inherits whatever provider is configured in the DAEMI system settings. This is the recommended default — it lets you change the system model once and have all agents follow.

Set llm.enabled: true to pin a specific agent to a specific provider or model:

llm:
enabled: true
provider: openai-codex
model: gpt-5.3-codex
temperature: 0.2 # lower = more deterministic, good for coding agents

Profile Conventions

  • File name should match agent_id: koda.yaml, aria.yaml
  • agent_id must be lowercase alphanumeric with underscores — it becomes part of memory store keys
  • Changes to profiles take effect on server restart
  • Deleting a profile does not delete memory — the agent's memory store entries remain

Example Profiles

Research Agent

agent_id: aria
name: Aria
role: Research Assistant
personality:
tone: curious, methodical, thorough
traits:
- high openness
- strong analytical drive
- evidence-first reasoning
memory:
transfer_policy: facts_only
ltm_max_results: 15
llm:
enabled: false

Coding Agent

agent_id: koda
name: Koda
role: Coding Agent
personality:
tone: focused, pragmatic, terse
traits:
- high conscientiousness
- detail-oriented
- prefers code over explanation
memory:
transfer_policy: carry_all
llm:
enabled: true
provider: openai-codex
model: gpt-5.3-codex
temperature: 0.1

Creative Agent

agent_id: muse
name: Muse
role: Creative Writing Partner
personality:
tone: imaginative, expressive, warm
traits:
- high openness
- strong narrative instinct
- playful with language
emotional_model: expressive
memory:
transfer_policy: carry_all
stm_window: 100
llm:
enabled: false

Go Deeper