Summary
Add AgentEvolution as a new ServiceType in the haystack architecture, enabling agents to search their prior lessons and memories as part of domain knowledge retrieval.
Approach
- Add
AgentEvolution variant to ServiceType enum in crates/terraphim_config/src/lib.rs
- Implement
IndexMiddleware that searches persisted LessonsState and MemoryState, returns matching entries as Document
- Add match arm in
search_haystacks() for the new service type
- Add
knowledge_haystacks and max_knowledge_items to AgentDefinition config
- Extend
spawn_agent() to search haystacks with task as needle, prepend results to prompt
TOML Config Example
[[agents]]
name = "product-development"
max_knowledge_items = 5
[[agents.knowledge_haystacks]]
location = "product-development"
service = "AgentEvolution"
[[agents.knowledge_haystacks]]
location = "~/.config/terraphim/kg/projects/terraphim-ai/"
service = "Ripgrep"
Critical Files
crates/terraphim_config/src/lib.rs:273 -- ServiceType enum
- New:
crates/terraphim_middleware/src/haystack/agent_evolution.rs -- IndexMiddleware impl
crates/terraphim_middleware/src/indexer/mod.rs -- search_haystacks() match arm
crates/terraphim_orchestrator/src/config.rs -- AgentDefinition fields
crates/terraphim_orchestrator/src/lib.rs -- spawn_agent() enrichment
Acceptance Criteria
Dependencies
Summary
Add
AgentEvolutionas a newServiceTypein the haystack architecture, enabling agents to search their prior lessons and memories as part of domain knowledge retrieval.Approach
AgentEvolutionvariant toServiceTypeenum incrates/terraphim_config/src/lib.rsIndexMiddlewarethat searches persistedLessonsStateandMemoryState, returns matching entries asDocumentsearch_haystacks()for the new service typeknowledge_haystacksandmax_knowledge_itemstoAgentDefinitionconfigspawn_agent()to search haystacks with task as needle, prepend results to promptTOML Config Example
Critical Files
crates/terraphim_config/src/lib.rs:273-- ServiceType enumcrates/terraphim_middleware/src/haystack/agent_evolution.rs-- IndexMiddleware implcrates/terraphim_middleware/src/indexer/mod.rs-- search_haystacks() match armcrates/terraphim_orchestrator/src/config.rs-- AgentDefinition fieldscrates/terraphim_orchestrator/src/lib.rs-- spawn_agent() enrichmentAcceptance Criteria
cargo test --workspacepassesDependencies