Synthetic Filesystem Overlay
Mount every enterprise data source (Slack, Notion, GitHub, Drive) under a unified Unix-like path tree — the agent navigates with `list`, `find`, `cat`, `search` instead of learning a new API per source.
Intent & Description
🎯 Intent
Give the agent one consistent mental model for all data sources so cross-source tasks are path concatenation, not ID translation.
📋 Context
Your enterprise agent reads across Notion, Slack, Google Drive, GitHub, Linear, Jira, email, and internal databases. Each has its own auth, pagination, search dialect, and result shape. Cross-source tasks (Slack thread + linked Notion doc + related PR) are the norm.
💡 Solution
Mount each connector under a deterministic path: /slack/<workspace>/<channel>/<date>/<message>.md, /notion/<workspace>/<page-path>.md, /github/<org>/<repo>/.... Expose five primitives: list (enumerate children), find (path-pattern matching), cat (fetch a node’s content), search (full-text, optionally scoped), locate_in_tree (resolve an opaque ID to its path). Nodes are virtual until cat — lazy hydration bounds per-call cost.
Real-world Use Case
- Agent must read across many heterogeneous enterprise data sources.
- Cross-source joins are common and ID translation between sources is painful.
- Tool count is climbing past what the model handles cleanly.
- Source data is mostly tree- or document-shaped.
Source
📌 TL;DR
Mount everything under one filesystem tree. Agent uses list, find, cat, search. Cross-source joins become path ops. One mental model, any data source.
Advantages
- One mental model across all sources — new connectors add a subtree, not a new API vocabulary.
- Reuses the model’s filesystem priors instead of training new tool affordances.
- Cross-source traversal becomes path concatenation rather than ID translation.
- Small primitive set keeps the tool surface tiny even as data grows.
Disadvantages
- Graph-heavy or time-series data doesn’t map cleanly to trees — must be flattened or hidden.
- Path stability is a contract — upstream renames break agent memory of paths.
- Unified namespace must still enforce per-source ACLs, which differ per connector.
- Listing very large directories needs careful pagination defaults.