Context Engineering for Agentic AI Systems
dropbox · Tech · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)
Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.
Problem
Domain: Enterprise knowledge-work AI assistant and agentic search
Dropbox needed Dash to evolve from a RAG search system into an agentic assistant that could interpret, summarize, and act on information. Adding tools and MCP-style capabilities created analysis paralysis, context-window cost, and degraded long-running accuracy because the model spent too much attention deciding how to search.
Constraints:
- The assistant must connect across many customer applications and enterprise data sources.
- Tool descriptions and parameters consume context-window tokens and affect cost and performance.
- Retrieved context must be relevant to the user and task, not merely available.
- Complex query construction needs enough instruction without crowding out the main planning task.
- The system must preserve security and relevance while integrating with MCP-compatible tools.
Architecture
Dropbox restructured Dash around context precision: consolidate retrieval through a universal Dash Search index, rank/filter results with a knowledge graph, and delegate complex search/query construction to a specialized agent so the main planning agent stays focused on execution.
Diagram confidence: explicit (topology described by the source).
flowchart LR dash-assistant["Dash assistant"] --> main-planning-agent["Main planning agent"] main-planning-agent --> universal-search-index["Universal search index"] universal-search-index --> knowledge-graph["Knowledge graph"] main-planning-agent --> specialized-search-agent["Specialized search agent"] specialized-search-agent --> universal-search-index dash-mcp-server["Dash MCP server"] --> universal-search-index dash-assistant --> dash-mcp-server
Components
| Component | Role | Interacts with |
|---|---|---|
Dash assistant |
User-facing AI assistant that plans, reasons, searches, summarizes, edits, and acts on workplace information. | Main planning agent, Dash MCP server |
Main planning agent |
Agent that decides what steps to take and when search is needed, while avoiding detailed query-construction burden. | Dash assistant, Universal search index, Specialized search agent |
Universal search index |
Single retrieval interface that searches across services instead of exposing many app-specific retrieval tools. | Main planning agent, Knowledge graph, Dash MCP server |
Knowledge graph |
Precomputed relationship layer connecting people, activity, and content so retrieved results can be ranked by task and user relevance. | Universal search index |
Specialized search agent |
Focused agent that handles query construction, rewriting, field mapping, typos, synonyms, and implicit context. | Main planning agent, Universal search index |
Dash MCP server |
MCP-compatible interface that exposes Dash retrieval to external apps like Claude, Cursor, and Goose. | Dash assistant, Universal search index |
Data flow
A user request reaches the main planning agent. When retrieval is needed, the agent uses a single Dash universal search interface rather than many app-specific tools; the index and knowledge graph rank relevant content, and a specialized search agent handles complex query construction before results return to the main agent.
Why this architecture
Dash's architecture reduces the model's decision space. One retrieval interface, pre-ranked context, and delegated query construction let the main agent spend attention on the user's task rather than choosing among tools or parsing complex tool schemas.
Models used: LLM planning agent · Specialized search agent · MCP-compatible clients including Claude, Cursor, and Goose
Scale
- Dash connects across many apps used by customers.“Dash connects to many of the apps our customers use to get work done, and each of those apps provides its own retrieval tools”article, stated
- The MCP server connects retrieval into multiple external AI apps.“brings Dash’s retrieval to MCP-compatible apps like Claude, Cursor, and Goose with just one tool.”article, stated
Alternatives considered (roads not taken)
Expose many app-specific retrieval tools directly to the model
Rejected because: The model often had to call all tools and did not reliably choose among them, creating slower and less accurate decision-making.
Send retrieved data from several tools without a relevance layer
Rejected because: Dropbox still needed ranking and filtering so only the most relevant information reached the model.
Keep complex Dash Search query construction inside the main planning agent
Rejected because: The search tool required so much instruction that it consumed context the main agent needed for planning and execution.
Patterns
rag-retrieval (retrieval)
Dash started as a RAG-style enterprise search system and retained retrieval as a core capability while making it more agent-aware.
tool-use-orchestration (orchestration)
Dropbox collapsed many app-specific retrieval tools into one universal search tool so the agent had fewer choices and a clearer action path.
retrieval-ranking (retrieval)
A knowledge graph ranks and filters retrieved content by user and query relevance before the model sees it.
multi-agent-orchestration (orchestration)
A specialized search agent handles complex query construction while the main planning agent stays responsible for the overall task.
query-rewriting (retrieval)
The specialized search agent handles user-intent mapping, semantic query rewriting, typo handling, synonyms, and implicit context.
Tradeoffs
Retrieval interface
Chose one universal search index over dozens of app-specific retrieval APIs.
Rationale: A single retrieval path reduced tool-selection burden and made plans clearer and more efficient.
Context filtering
Chose pre-ranked index plus knowledge graph over passing all retrieved data from multiple tools to the model.
Rationale: Filtering before generation makes every piece of context meaningful and avoids rebuilding context at runtime.
Complex search behavior
Chose a specialized search agent over teaching the main planning agent all search details.
Rationale: Separating search keeps the main agent focused on planning and execution while a focused prompt handles retrieval specifics.
Gotchas (what bit them)
Tool proliferation caused analysis paralysis.
Root cause: Each additional tool expanded the model's decision space, adding choices and room for confusion.
Resolution: Consolidate retrieval behind one universal search interface.
MCP tool definitions consumed context and degraded long-running jobs.
Root cause: Tool descriptions and parameters must fit in the context window and add context over time.
Resolution: Keep tool descriptions lean and reduce the number of exposed retrieval tools.
Complex query construction crowded out reasoning about the user's task.
Root cause: As Dash Search gained more capabilities, the main model needed more instruction just to use the search tool correctly.
Resolution: Move search into a dedicated agent with its own focused prompt.
Evaluation
Dropbox evaluates the design through observed decision speed, accuracy, token/cost pressure, and qualitative agent-flow quality rather than reporting a formal benchmark.
Metrics: decision speed · accuracy on longer-running jobs · token consumption · cost and performance impact
Outcomes
- Dash retrieval became simpler for the model through a single universal search interface.
- Knowledge-graph filtering made retrieved context more relevant before the model saw it.
- Specialized search delegation let the main planning agent stay focused on the user's task.
The case describes retrieval across many customer apps and MCP-compatible integrations, but does not give deployment volume or latency numbers.