Skip to content

Persona Experts

Council supports two kinds of experts:

  • Generic experts: template-based roles like “CTO” or “Security Auditor”
  • Persona experts: document-trained representations of specific people

Persona experts combine document RAG with LLM-synthesized profiles to create agents that reason like real individuals.

A generic expert reasons from a role template:

slug: cto
role: Chief Technology Officer
expertise:
weightedEvidence:
- System architecture patterns
- Scalability and performance data
- Engineering team capacity
epistemicStance: Optimize for long-term technical health...

A persona expert reasons from documents about a real person:

slug: pedro-fuentes
kind: persona
role: VP of Engineering
personaDescription: "VP of Engineering whose decisions I want to anticipate"
docsPath: ~/Council/experts/pedro-fuentes/docs

The generic expert applies a CTO’s general priorities. The persona expert applies Pedro’s specific priorities as distilled from his emails, meeting notes, and decision logs.

Point Council at a folder of documents about or by the person:

~/Council/experts/pedro-fuentes/docs/
├── weekly-updates-2024-Q1.md
├── 1-on-1-notes.md
├── roadmap-proposal.pdf
├── team-retro-notes.md
└── slack-export.txt

Supported formats: Markdown, PDF, DOCX, plain text, and more (run council docs formats).

When you train a persona expert with council expert train — or the first time you chat with one that still has unprocessed documents — Council:

  1. Extracts text from all documents
  2. Sends the extracted text to an LLM with this meta-prompt:

    “Analyze these documents and generate a persona profile. Extract: communication style, priorities, domain knowledge, decision patterns, recurring concerns.”

  3. Stores the resulting profile in the [8] PERSONA PROFILE section of the expert’s system prompt

The profile is cached — Council doesn’t regenerate it on every chat unless documents change or you explicitly retrain.

During a chat or debate:

  1. Council generates a search query from your prompt
  2. Retrieves relevant document chunks from the FTS5 index
  3. Appends them to the expert’s prompt as [REFERENCE DOCUMENT] blocks
  4. The expert now has both the persona profile (general context) and specific document snippets (targeted evidence)

See Document RAG for extraction, indexing, and retrieval details.

Persona experts get two kinds of memory:

  1. Document memory (persona profile + RAG snippets) — who they are, how they think
  2. Debate memory (past panel transcripts) — what they’ve discussed before

Generic experts only get debate memory. See Memory Model for why.

Terminal window
# Create the persona expert (the --persona flag makes it trainable)
council expert create --persona \
--slug pedro-fuentes \
--name "Pedro Fuentes (VP of Engineering)" \
--role "VP of Engineering" \
--expertise "Past decisions and their outcomes, Written rationale in proposals and reviews" \
--stance "Pragmatic, outcome-oriented" \
--persona-description "VP of Engineering whose decisions I want to anticipate"
# Add documents (copy files into ~/Council/experts/pedro-fuentes/docs/
# or use the --file/--url flags during training)
council expert train pedro-fuentes --file ~/meeting-notes.md
council expert train pedro-fuentes --url https://example.com/pedro-strategy-memo.md
# Re-process all docs and refresh the persona profile
council expert train pedro-fuentes
# Now chat with the persona
council chat pedro-fuentes
Use CaseWhy Persona?
Manager adviceGround responses in their actual communication style and priorities
Stakeholder simulationTest how a VP or executive would react to a proposal
Institutional memoryA persona trained on your team’s past decisions can recall context
Personalized mentoringA persona trained on a mentor’s writings can provide tailored advice
Cross-functional panelsMix persona experts (Pedro, Dana) with generic roles (Security Auditor, PM)

Don’t use persona experts for:

  • Public figures without their consent (ethical + legal risk)
  • Anyone whose documents you don’t have permission to use
  • Situations requiring real-time context the documents don’t contain

Persona experts store:

  • Extracted document text in the local SQLite FTS5 index
  • The persona profile (LLM-synthesized summary)
  • Chat transcripts and debate memory

All of this is local-only (stored in ~/Council/data.db). Council does not send your documents to a third party except during profile generation and retrieval (when the configured AI provider processes the context).

See Security and Privacy for details on what’s sent to AI providers and what’s stored locally.

If documents change or you want to refresh the profile:

Terminal window
council expert train pedro-fuentes # re-process all docs, regenerate profile

Retraining overwrites the cached profile but preserves debate memory. To clear debate memory separately:

Terminal window
council memory reset pedro-fuentes # clears debate memory only

When Council retrieves document snippets, it weights recent documents higher. Why?

A persona should reflect the person’s current priorities, not outdated context. Pedro’s priorities from 2 years ago are less relevant than his priorities from last month.

The recency decay is exponential: documents from the past week score 1.0, documents from 30 days ago score ~0.5, documents from 6 months ago score ~0.1.

You can override this by explicitly naming an old document: “What did Pedro say about X in the 2023 roadmap?”

In 1:1 chat mode, Council injects a summary of which other panels the persona expert participates in:

“Pedro, you’re also a member of the ‘architecture-review’ and ‘incident-postmortem’ panels. Recent activity: last spoke 3 days ago in architecture-review about API versioning strategy.”

This prevents a persona from acting like they’ve never met you before when you switch contexts.

  • Document RAG — how Council indexes and retrieves document snippets
  • Memory Model — persona experts get document + debate memory
  • Security and Privacy — what’s stored, what’s sent to providers, prompt injection defenses
  • Anti-Sycophancy — persona experts still enforce disagreement in panel debates