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.
manage_people tool with action enable/disable. No restart required.How It Works
- Add contacts — manually add people or let aidaemon learn about them from conversations
- Remember details — birthdays, preferences, interests, work info, and more
- Link identities — connect a person to their Telegram, Slack, or Discord identity
- Proactive reminders — aidaemon naturally mentions upcoming birthdays and suggests reconnections
- Context adaptation — when a known person messages, aidaemon adapts its communication style
Tool Name
manage_people
Actions
| Action | Description | Required Params |
|---|---|---|
enable | Turn on People Intelligence (persists across restarts) | — |
disable | Turn off People Intelligence (data is preserved) | — |
status | Show enabled/disabled state and contact count | — |
add | Add a new person | name |
list | List all contacts (filter by relationship) | — |
view | View person details and all facts | name or id |
update | Update person fields (relationship, notes, style) | name or id |
remove | Delete a person and all their facts | name or id |
add_fact | Store a fact about someone (birthday, preference, etc.) | person_name, category, key, value |
remove_fact | Delete a specific fact by ID | fact_id |
link | Link a platform identity to a person | person_name, platform_id |
export | Export all data for a person as JSON | person_name |
purge | Full cascade delete (person + facts + links) | person_name |
audit | Review auto-extracted facts (unverified) | — (or person_name) |
confirm | Verify an auto-extracted fact (set confidence to 100%) | fact_id |
Parameters
| Key | Type | Default | Description |
|---|---|---|---|
action | string | — | Action to perform (required) |
name | string | null | Person's name (for add, view, update, remove) |
id | integer | null | Person's database ID (for update, remove) |
relationship | string | null | Relationship type: spouse, family, friend, coworker, acquaintance |
notes | string | null | Free-form notes about the person |
communication_style | string | null | How to communicate: casual, formal, warm, etc. |
language | string | null | Preferred language for interaction |
person_name | string | null | Person's name (for add_fact, link, export, purge, audit) |
category | string | null | Fact category: birthday, preference, interest, work, family, important_date, personality, gift_idea |
key | string | null | Fact key (e.g., 'birthday', 'favorite_food') |
value | string | null | Fact value |
platform_id | string | null | Platform-qualified ID (e.g., 'slack:U123', 'telegram:456') |
display_name | string | null | Display name for the platform identity |
fact_id | integer | null | Fact 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.
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.
[people]
enabled = trueOrganic 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
auditandconfirmactions
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
| Context | Behavior |
|---|---|
| Owner DMs | Full people graph injected into system prompt (names, facts, relationships) |
| Non-owner (linked) | Communication style adaptation only (no fact injection to other users) |
| Public channels | No personal facts injected |
Configuration
[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| Key | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Initial state (can be toggled at runtime via chat) |
auto_extract | bool | true | Learn facts about people from conversations automatically |
auto_extract_categories | string[] | [...] | Categories that can be auto-extracted |
restricted_categories | string[] | [...] | Categories that are never auto-extracted |
fact_retention_days | integer | 180 | Days before unconfirmed facts are pruned |
reconnect_reminder_days | integer | 30 | Days of inactivity before suggesting a reconnect |