Intelligence & Learning
The Intelligence tab is located in the agent detail view. It manages the agent's learned knowledge and behavioral rules -- the memories that shape how the agent responds during conversations.
Memory Taxonomy
Every memory is classified along four dimensions: category, source, strength, and status.
Categories
| Category | Purpose |
|---|---|
| fact | Factual information the agent should know |
| preference | Behavioral preferences that guide tone or approach |
| correction | Error corrections from past mistakes |
| instruction | Explicit rules the agent must follow |
Sources
| Source | Meaning |
|---|---|
| manual | Created directly by an operator |
| suggested | Proposed by the AI from observed patterns |
| derived | Automatically extracted from data |
Strengths
Strength determines how aggressively a memory is injected into the agent's runtime context, and how much of the character budget it can consume.
| Strength | Label | Runtime behavior | Character budget |
|---|---|---|---|
| hard_rule | Rule | Always applied to every conversation | 1500 characters |
| preference | Preference | Applied when relevant | 1000 characters |
| heuristic | Pattern | Applied when scope matches | 500 characters |
| context_note | Note | Available but not auto-applied | 0 characters |
Rules (hard_rule) are always injected regardless of scope. Preferences and patterns are injected when the runtime determines they are relevant to the current conversation. Notes are stored for reference but never automatically included in the prompt.
Statuses
| Status | Meaning |
|---|---|
| draft | Not yet active -- will not be injected at runtime |
| active | Injected at runtime according to its strength tier |
| stale | Needs review -- may be outdated |
| archived | Preserved for history but inactive |
| superseded | Replaced by a newer memory |
Only memories with active status are injected into conversations.
Learning Configuration
Learning settings are stored in the Agent.learningConfig JSON field. They control how the agent acquires new memories over time.
Settings
| Setting | Description | Options |
|---|---|---|
| Learn from approved actions | Extract patterns when an operator approves a proposed action | On / Off (default: on) |
| Learn from rejected recommendations | Learn what to avoid when an operator rejects a recommendation | On / Off (default: on) |
| Evaluate outcomes after | Hours to wait before auto-evaluating action outcomes | 24 hours, 48 hours (default), 72 hours, 7 days |
| Learning window | Ignore feedback and data older than this threshold | All time (default), 30 days, 90 days, 180 days, 365 days |
| Recency bias | Weight newer patterns more heavily | None, Moderate (default), Strong |
The evaluation delay (maturity window) gives actions time to produce measurable outcomes before the system judges whether they succeeded. The learning window controls how far back the system looks when analyzing patterns -- setting it to 90 days, for example, means older data is ignored entirely.
Runtime Injection
At conversation time, active memories are injected into the AI prompt using a budget system that prevents the context from growing too large.
Budget Allocation
| Budget | Characters |
|---|---|
| Total combined budget | 8000 |
| Reserved for policy context | 800 |
| Reserved for knowledge base context | 700 |
| Minimum for brand intelligence | 1000 |
| Remaining (for memories) | Allocated by strength tier |
The system fills the memory budget in priority order: hard rules first, then preferences, then heuristics. Each tier is capped at its per-tier character budget. Context notes (0-char budget) are never injected automatically.
After memory and reserved budgets are subtracted from the 8000-character total, the remainder goes to brand intelligence summaries, with a guaranteed floor of 1000 characters.
Feedback Loop
Feedback from operators is the primary signal that drives memory suggestions.
- Conversations (knowledge agents) have a
feedbackRatingfield (1 for positive, -1 for negative), an optionalfeedbackComment, and afeedbackAttimestamp. - Agent runs (action agents) carry the same feedback fields.
When feedback accumulates, the system can propose new memories as suggested entries. An operator reviews these suggestions and either activates them (making them part of the agent's runtime context) or dismisses them.
Creating Memories
To add a memory manually:
- Open the Intelligence tab in the agent detail view.
- Click Add Memory.
- Select a category (fact, preference, correction, or instruction).
- Choose a strength (Rule, Preference, Pattern, or Note).
- Set the status (typically start with draft, then activate after review).
- Write the memory content -- what the agent should know or do.
- Optionally set an applicability scope to narrow when the memory applies:
- Provider -- limit to a specific ad platform (e.g., meta_ads, google_ads, tiktok_ads, dv360).
- Campaign IDs -- limit to specific campaigns.
- Tags -- add labels for organization and future filtering.
Memories with narrow scopes are only injected when the conversation or action matches the specified provider and campaigns. Unscoped memories apply universally.