EN·ES·DE·PT·FR
⌘K

People Intelligence

Think of it as a contact book, but with a personal assistant who remembers the details for you. Birthdays, preferences, communication styles, how you know someone — aidaemon keeps it all organized and reminds you when it matters. Everything lives on your computer or server, never sent to third parties.

Runtime Toggle
People Intelligence can be enabled or disabled at any time via chat. Just say "enable people intelligence" or use the manage_people tool with action enable/disable. No restart required.

How It Works

  1. Add contacts — manually add people or let aidaemon learn about them from conversations
  2. Remember details — birthdays, preferences, interests, work info, and more
  3. Link identities — connect a person to their Telegram, Slack, or Discord identity
  4. Proactive reminders — aidaemon naturally mentions upcoming birthdays and suggests reconnections
  5. Context adaptation — when a known person messages, aidaemon adapts its communication style

Tool Name

manage_people

Actions

ActionDescriptionRequired Params
enableTurn on People Intelligence (persists across restarts)
disableTurn off People Intelligence (data is preserved)
statusShow enabled/disabled state and contact count
addAdd a new personname
listList all contacts (filter by relationship)
viewView person details and all factsname or id
updateUpdate person fields (relationship, notes, style)name or id
removeDelete a person and all their factsname or id
add_factStore a fact about someone (birthday, preference, etc.)person_name, category, key, value
remove_factDelete a specific fact by IDfact_id
linkLink a platform identity to a personperson_name, platform_id
exportExport all data for a person as JSONperson_name
purgeFull cascade delete (person + facts + links)person_name
auditReview auto-extracted facts (unverified)— (or person_name)
confirmVerify an auto-extracted fact (set confidence to 100%)fact_id

Parameters

KeyTypeDefaultDescription
actionstringAction to perform (required)
namestringnullPerson's name (for add, view, update, remove)
idintegernullPerson's database ID (for update, remove)
relationshipstringnullRelationship type: spouse, family, friend, coworker, acquaintance
notesstringnullFree-form notes about the person
communication_stylestringnullHow to communicate: casual, formal, warm, etc.
languagestringnullPreferred language for interaction
person_namestringnullPerson's name (for add_fact, link, export, purge, audit)
categorystringnullFact category: birthday, preference, interest, work, family, important_date, personality, gift_idea
keystringnullFact key (e.g., 'birthday', 'favorite_food')
valuestringnullFact value
platform_idstringnullPlatform-qualified ID (e.g., 'slack:U123', 'telegram:456')
display_namestringnullDisplay name for the platform identity
fact_idintegernullFact ID (for remove_fact, confirm)

Enabling

There are two ways to enable People Intelligence:

Option 1: Via chat (recommended)

Just tell your bot to enable it. The setting is stored in the database and persists across restarts.

chat
You: "Enable people intelligence"
aidaemon: "People Intelligence enabled. I'll now remember contacts..."

Option 2: Via config.toml

Set the initial state in your config file. This value is used to seed the database on first run; after that, the runtime setting takes precedence.

config.toml
[people]
enabled = true

Organic Learning

When auto_extract is enabled (default), aidaemon automatically learns about people from conversations during its regular memory consolidation cycle:

  • Detects mentions of people, their preferences, birthdays, and relationships
  • Creates person records and stores facts with 70% confidence (auto-extracted)
  • Owner can review and confirm facts via the audit and confirm actions
Restricted Categories
Health info, financial details, political opinions, and religious beliefs are never auto-extracted, even if mentioned in conversation. This is enforced by restricted_categories.

Background Tasks

When enabled, aidaemon runs daily background checks:

  • Stale fact pruning — removes unconfirmed auto-extracted facts older than fact_retention_days (default 180)
  • Upcoming date reminders — detects birthdays and important dates within 14 days
  • Reconnect suggestions — flags people who haven't been contacted in reconnect_reminder_days (default 30)

Privacy Model

ContextBehavior
Owner DMsFull people graph injected into system prompt (names, facts, relationships)
Non-owner (linked)Communication style adaptation only (no fact injection to other users)
Public channelsNo personal facts injected

Configuration

config.toml
[people]
enabled = true
auto_extract = true
auto_extract_categories = ["birthday", "preference", "interest", "work", "family", "important_date"]
restricted_categories = ["health", "finance", "political", "religious"]
fact_retention_days = 180
reconnect_reminder_days = 30
KeyTypeDefaultDescription
enabledboolfalseInitial state (can be toggled at runtime via chat)
auto_extractbooltrueLearn facts about people from conversations automatically
auto_extract_categoriesstring[][...]Categories that can be auto-extracted
restricted_categoriesstring[][...]Categories that are never auto-extracted
fact_retention_daysinteger180Days before unconfirmed facts are pruned
reconnect_reminder_daysinteger30Days of inactivity before suggesting a reconnect