Building Synthetic Filesystems for AI Agent Navigation Across Enterprise Data Sources

dust.tt · Tech · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.5 (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-agent navigation

Dust found that agents needed structural navigation over company data, not just semantic search, because many enterprise questions require finding known locations, adjacent content, or subtrees across tools like Notion, Slack, GitHub, and Google Drive.

Constraints:

Architecture

Dust mapped enterprise data sources into synthetic filesystems backed by its content-nodes architecture, then exposed five Unix-inspired commands: list, find, cat, search, and locate_in_tree. Agents can navigate structure, inspect files in chunks with offset/limit/grep, search within subtrees, and combine path exploration with semantic search to solve multi-step knowledge tasks.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  enterprise-data-connectors["enterprise data connectors"] --> content-nodes-architecture["content nodes architecture"]
  content-nodes-architecture --> synthetic-filesystem-layer["synthetic filesystem layer"]
  synthetic-filesystem-layer --> list-command["list command"]
  synthetic-filesystem-layer --> find-command["find command"]
  synthetic-filesystem-layer --> cat-command["cat command"]
  synthetic-filesystem-layer --> search-command["search command"]
  synthetic-filesystem-layer --> locate-in-tree-command["locate_in_tree command"]
  cat-command --> context-window-controls["context window controls"]
  agent-planner["agent planner"] --> list-command
  agent-planner --> find-command
  agent-planner --> cat-command
  agent-planner --> search-command
  agent-planner --> locate-in-tree-command
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
enterprise data connectors Ingest and expose source-specific content from Slack, Notion, GitHub, Google Drive, Microsoft spreadsheets, and similar systems. content nodes architecture
content nodes architecture Provides the hierarchy used to build browseable and searchable synthetic structures. synthetic filesystem layer
synthetic filesystem layer Presents heterogeneous content as Unix-like files, folders, and dual file-directory objects. list command, find command, cat command, search command, locate_in_tree command
list command Shows folder contents for structural exploration. synthetic filesystem layer
find command Searches for files by name within hierarchies. synthetic filesystem layer
cat command Reads file contents with pagination, offsets, limits, and optional grep filtering. context window controls, synthetic filesystem layer
search command Runs semantic search inside a selected subtree. synthetic filesystem layer
locate_in_tree command Shows the complete path that leads to a file or search result. synthetic filesystem layer
context window controls Prevent full-file reads from overwhelming the model by limiting and offsetting content. cat command
agent planner Combines filesystem commands and semantic search into multi-step navigation workflows. list command, find command, cat command, search command, locate_in_tree command

Data flow

Connectors normalize Slack, Notion, GitHub, spreadsheets, and documents into content nodes; the synthetic filesystem layer presents those nodes as folders, files, or dual file-directories; agents call list/find/cat/search/locate_in_tree to narrow scope, read paginated content, or seed semantic search; the result is a navigation loop that alternates structure-aware browsing with meaning-based retrieval.

4 supporting quotes
“the abstraction that made sense for AI navigation: * Slack channels become directories that contain files for the threads. * Notion workspaces become root folders, databases become special directories (both a directory and a table). * GitHub repositories maintain their natural structure.”article, stated
“Notion workspaces become root folders, databases become special directories (both a directory and a table). * GitHub repositories maintain their natural structure. * Google and Microsoft spreadsheets become folders of tables. Fortunately, all of this work”article, stated
“Each operates on our synthetic filesystem, treating Notion pages, Slack messages, and Google Drive documents as if they were files or folders in a Unix system.”article, stated
“Navigation helps agents understand the structure and explore systematically. Semantic search finds specific information within that structure.”article, stated

Why this architecture

Dust chose a filesystem abstraction because agents were already trying to express path-like intent, while human information work naturally mixes browsing, adjacent exploration, and semantic retrieval. The architecture gives agents both structural and meaning-based primitives instead of forcing every task through global semantic search.

3 supporting quotes
“Our AI agents were inventing their own syntax for searching content — file:front/src/some-file-name.tsx, path:/notion/engineering/weekly-updates.”article, stated
“We weren't limited by how platforms organize data internally. We could create the abstraction that made sense for AI navigation:”article, stated
“We don't just search—we browse, we explore adjacent content, we build mental maps of where things live. By giving agents both tools, we enable them to develop similar contextual understanding. Agents were already trying to do this. They'd attempt semantic”article, stated

Scale

Alternatives considered (roads not taken)

Treat path-like agent behavior as an instruction bug.

Rejected because: Dust interpreted it as a signal that agents needed structural navigation primitives.

“What seemed at first to be a bug or a flaw in the agent’s instructions turned out to be a subtle hint at how agents behave instinctively.”article, stated

Use semantic search alone.

Rejected because: Semantic search finds meaning, but it does not support known-path navigation such as finding a section in recent team notes.

“search to find specific files by path or filename. We'd built semantic search to help agents find information based on meaning. But when you need "the TeamOS section of last week's team meeting notes," you're not searching for meaning, you're navigating structure. You know there's a meetings”article, stated
“But when you need "the TeamOS section of last week's team meeting notes," you're not searching for meaning, you're navigating structure.”article, stated

Dump entire files with Unix-style cat.

Rejected because: LLM context windows make full-file reads impractical, so Dust added limit, offset, and grep.

“In Unix, it dumps the entire file. But AI agents have context windows, which are hard limits on how much text they can process.”article, stated
“A naive implementation would have agents trying to read massive files and immediately failing. We added limit and offset parameters: the agent chooses to see a certain number of lines starting from a certain line number. ``` cat: { nodeId: string,”article, stated

Keep a strict file-versus-folder distinction.

Rejected because: Notion pages can contain sub-pages, so Dust allowed objects to be both readable and listable.

“Traditional filesystems are binary: something is either a file or a folder. Notion broke this assumption—documents can contain other documents, recursively.”article, stated
“A Notion page might be a file you can cat (show its content), but also a directory you can ls (list its children).”article, stated

Patterns

tool-use-orchestration (agent architecture)

Dust gives agents a small set of explicit filesystem commands for navigation, content inspection, and scoped search.

“beyond allowing users to select subsets of their knowledge base in the Agent Builder. ### The implementation We implemented five Unix-inspired commands: * list - Shows folder contents (like ls) * find - Searches for files by name within hierarchies * cat - Reads file contents”article, stated
“Each command is simple. Together, they let agents navigate organizational knowledge with the same fluency as a Unix expert navigates a filesystem.”article, stated

hybrid-search (retrieval)

The system combines structural filesystem navigation with semantic search inside narrowed subtrees.

“File system tools don't replace semantic search; they complete it.”article, stated
“Navigation helps agents understand the structure and explore systematically. Semantic search finds specific information within that structure.”article, stated

rag-retrieval (retrieval)

The agent retrieves content from enterprise knowledge sources, then reads specific files or sections to answer questions.

“Agents using codebases were constantly trying to 'hack' the semantic search to find specific files by path or filename.”article, stated
“Now they can actually execute that intent: navigate to the runbooks folder, then search within it.”article, stated

context-compaction (context management)

The cat command uses offset, limit, and grep to sample content without overflowing the LLM context window.

“This lets agents read documents in chunks, jump to specific sections, and filter content, all without exploding their context windows.”article, stated

Tradeoffs

Add structural navigation alongside semantic search.

Chose Synthetic filesystem commands plus semantic search over Semantic search only.

Rationale: Some questions are about known structure and adjacency, while others require meaning-based lookup; combining both supports multi-step work.

“File system tools don't replace semantic search; they complete it. Navigation helps agents understand the structure and explore systematically.”article, stated
“Together, they let agents narrow the scope, then search precisely. Consider a different workflow. An agent investigating why a feature is broken might:”article, stated

Create synthetic structures independent of source-platform organization.

Chose A logical filesystem abstraction over Native platform structure only.

Rationale: Dust could reshape connectors into a hierarchy that made sense for agent navigation even when platforms lacked one.

“We weren't limited by how platforms organize data internally. We could create the abstraction that made sense for AI navigation:”article, stated
“nothing blocks us from revamping the content node hierarchy of a connector that does not inherently have one”article, stated

Page large documents instead of reading them whole.

Chose cat with limit, offset, and grep over Full-document cat.

Rationale: Paged reads let agents inspect large documents within context windows while still jumping to sections and filters.

“This lets agents read documents in chunks, jump to specific sections, and filter content, all without exploding their context windows.”article, stated

Gotchas (what bit them)

Naive file reads can immediately exceed the context window.

Root cause: Unix cat semantics dump full files, but LLMs have hard input-size limits.

Resolution: Add offset, limit, and grep parameters so agents can inspect documents in chunks.

“A naive implementation would have agents trying to read massive files and immediately failing.”article, stated
“We added limit and offset parameters: the agent chooses to see a certain number of lines starting from a certain line number.”article, stated

Notion-like systems violate normal filesystem assumptions.

Root cause: Documents can recursively contain documents, so the object is both readable content and navigable container.

Resolution: Tell the model whether an item contains nested elements and allow it to be both cat-able and ls-able.

“Notion broke this assumption—documents can contain other documents, recursively.”article, stated
“We fixed this by telling the model whether a given file contains nested items or stands alone”article, stated

Synthetic navigation increases connector and reliability burden.

Root cause: Each command can translate into platform-specific API calls over dynamic third-party systems.

Resolution: The case implies this must be managed behind a consistent abstraction, but does not disclose detailed caching or reliability mechanisms.

“Slack channels become directories that contain files for the threads.”article, stated
“* Google and Microsoft spreadsheets become folders of tables. Fortunately, all of this work had already been done in the context of the migration to the so-called [content nodes architecture](https:”article, stated

Evaluation

The article evaluates behavior through production deployment examples and workflow demonstrations rather than quantitative accuracy metrics.

Metrics: Five Unix-inspired commands implemented · Observed in logs in April 2025 · Tools live as Advanced Search in Agent Builder · No formal latency or success-rate metric disclosed

3 supporting quotes
“"article_reader" --- # How We Taught AI Agents to Navigate Company Data Like a Filesystem In April 2025, something kept showing up in our logs. Our AI agents were inventing their own syntax for searching content — `file:”article, stated
“beyond allowing users to select subsets of their knowledge base in the Agent Builder. ### The implementation We implemented five Unix-inspired commands: * list - Shows folder contents (like ls) * find - Searches for files by name within hierarchies * cat - Reads file contents”article, stated
“### Two approaches, one system Here's what happened when we deployed. User asks: "What was in the TeamOS section of the last team weekly's notion doc?”article, stated

Outcomes

The article reports production deployment, five commands, multi-source coverage, context-window controls for arbitrarily large documents, and live availability in Agent Builder, but not usage volumes.

3 supporting quotes
“* Uses find to locate the team weeklies database * Calls list to see recent entries * Identifies the latest document * Uses cat with grep to find the TeamOS section This structure doesn't exist in Notion's API.”article, stated
“They develop contextual understanding, discover relationships between information, and tackle complex multi-step tasks that require both broad exploration and deep investigation.”article, stated
“The tools are live now as "Advanced Search" in the Agent Builder. Contact[support@dust.tt](mailto:support@dust.”article, stated