Generated from the build.

Component model

The system has one root agent and N specialist agents, each with its own knowledge base. A single Claude model and a single embeddings node are shared across all agents.

Component Type (n8n node) Role
Concierge Router AI Agent Classifies and delegates to one specialist
Specialist agent (one per domain) AI Agent Tool Answers within one domain, from its KB only
Domain knowledge base (one per domain) Vector store (retrieve-as-tool) Semantic search over one domain's SOPs
Shared model Anthropic Chat Model Reasoning for the router and specialists
Shared embeddings OpenAI Embeddings Vectorizes queries and documents
Conversation memory Buffer window memory Short context per conversation

Routing model

The router's system prompt defines the domains and the rule: classify each message, delegate to exactly one specialist, never invent a policy, and cite the SOP title or section. The example configuration routes across Frontline Operations, People and HR, Finance and Procurement, and IT and Access. The domain set is configuration; the same router supports any role split.

Retrieval model

Two-workflow RAG. Ingestion: SOP file, recursive split (512-token chunks, 50-token overlap), embed, per-domain store. Query: each specialist retrieves from its own store as a tool, so retrieval happens only when the agent decides it is needed. Knowledge boundaries are enforced at the data layer, one store per domain.

Reply path

The webhook acknowledges Teams immediately (200), the agent runs asynchronously, and the answer is posted back as a proactive message via the Bot Framework Connector. This keeps the bot inside the Teams activity-response window.

Traceability

Claim Source
Router delegates to specialists as tools Concierge Router (AI Agent) plus the specialist AI Agent Tool nodes, one per domain, in ops-assistant.query.json
One knowledge base per domain the per-domain vector store nodes (retrieve-as-tool), one memoryKey each
Chunking 512 / 50 overlap Text Splitter node, ops-assistant.ingest.json
Immediate 200 then async reply Teams Messaging Endpoint (responseMode onReceived) and Reply via Bot Framework (HTTP), ops-assistant.query.json
Shared model and embeddings Claude (shared model) and Embeddings (OpenAI) nodes