Context Engine
A purpose-built server-side knowledge store that combines RAG and graph traversal behind an intent-based API. The Platform Framework never calls collections directly — it asks for what it needs.
What the Context Engine is not
- Not a generic vector store
- Not a graph database exposed directly
- Not a key-value cache
It is an abstraction layer that combines RAG search, graph traversal, and tenant isolation internally, and exposes clean intent-based operations to callers.
Caller: /resolve/skill — "give me the skill for this prompt"
Context Engine: 1. RAG search over Skill collection (semantic match)
2. Graph traverse: skill → context builders → guardrails → templates → tools
3. Merge, enrich, tenant-filter
4. Return one enriched response
Caller sees: skill manifest + all dependencies resolvedCollections
Each collection stores a distinct knowledge type. Collections are never merged or blended — the CE decides which to query per API call.
| Collection | What it stores | Written by | Read by |
|---|---|---|---|
| Agent Registry | Agent manifests, capabilities (dense vectors) | ADK | /resolve/agent |
| Skill collection | Skill manifests (dense vectors per skill) | ADK | /resolve/skill, Phase 2C |
| Context Builder collection | Context builder specs | ADK | /resolve/context |
| Tool collection | Tool metadata, tool classes | ADK | /resolve/tools |
| Guardrail collection | Safety rules per skill/domain/global | ADK | Formula execution |
| Template collection | Output rendering templates | ADK | UI Agent |
| Domain Lens collection | Expert domain knowledge documents | ADK | Advanced tier only |
| Domain Expert Graph | Control relationship graphs | ADK | Advanced tier only |
| Playbook collection | Playbook manifests | ADK | /resolve/playbook |
Tenancy model
Tenant collection: tenant_id = "tenant-xyz" (customer-specific assets)
Global collection: tenant_id = null (platform-wide assets)
Resolution order: tenant → global fallbackGuardrail exception: Both global and tenant guardrails always apply. Tenant guardrails add to global — they never replace them.
What the Context Engine does NOT own
| Concern | Owner | Reason |
|---|---|---|
| Estate data | Context Manager (client) | Never leaves the customer's machine |
| Conversation history | Context Manager (client) | Session state is client-side |
| Credentials | OS Keychain (client) | Never enter the plugin layer |
| Artifacts and Evidence | Context Manager (client) | Persisted locally in serial DB |
| LLM API calls | Domain agents | CE builds context, agents call the LLM |
Full API reference
See Context Engine API for all endpoints with request/response schemas.
Next steps
- Context Manager — The client-side counterpart
- Context Engine API — Full endpoint reference
- agent.yaml Reference — What the ADK registers into the CE