[{"data":1,"prerenderedAt":461},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fcore-concepts":81,"\u002Fdocs\u002Fcore-concepts-surround":456},[4,77],{"title":5,"_path":6,"children":7,"icon":76},"Docs","\u002Fdocs",[8,23,41,51,63,69],{"title":9,"_path":10,"children":11},"Getting Started","\u002Fdocs\u002Fgetting-started",[12,14,17,20],{"title":13,"_path":10},"Introduction to Datafuse",{"title":15,"_path":16},"Installation Guide","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":18,"_path":19},"5-Minute Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart",{"title":21,"_path":22},"5-Minute Quickstart with curl","\u002Fdocs\u002Fgetting-started\u002Fcurl",{"title":24,"_path":25,"children":26},"Core Concepts","\u002Fdocs\u002Fcore-concepts",[27,29,32,35,38],{"title":28,"_path":25},"Conceptual Landscape",{"title":30,"_path":31},"Adding Custom Integrations","\u002Fdocs\u002Fcore-concepts\u002Fcustom-integrations",{"title":33,"_path":34},"Managed Authentication","\u002Fdocs\u002Fcore-concepts\u002Fauthentication",{"title":36,"_path":37},"Bi-Directional Triggers","\u002Fdocs\u002Fcore-concepts\u002Ftriggers",{"title":39,"_path":40},"Observability & Auditing","\u002Fdocs\u002Fcore-concepts\u002Fobservability",{"title":42,"_path":43,"children":44},"Model Context Protocol","\u002Fdocs\u002Fmcp",[45,48],{"title":46,"_path":47},"Introduction to MCP","\u002Fdocs\u002Fmcp\u002Fintroduction",{"title":49,"_path":50},"Operating MCP Servers","\u002Fdocs\u002Fmcp\u002Fmcp-servers",{"title":52,"_path":53,"children":54},"Client SDKs","\u002Fdocs\u002Fsdks",[55,57,60],{"title":56,"_path":53},"Client Overview",{"title":58,"_path":59},"Python Client Guide","\u002Fdocs\u002Fsdks\u002Fpython",{"title":61,"_path":62},"TypeScript Client Guide","\u002Fdocs\u002Fsdks\u002Ftypescript",{"title":64,"_path":65,"children":66},"Self-Hosting & VPC","\u002Fdocs\u002Fself-hosting",[67],{"title":68,"_path":65},"Self-Hosting Guide",{"title":70,"_path":71,"children":72},"Comparisons","\u002Fdocs\u002Fcomparisons",[73],{"title":74,"_path":75},"Datafuse vs. Composio","\u002Fdocs\u002Fcomparisons\u002Fcomposio","i-heroicons-book-open",{"title":78,"_path":79,"icon":80},"Pricing","\u002Fpricing","i-heroicons-credit-card",{"_path":25,"_dir":82,"_draft":84,"_partial":84,"_locale":85,"title":28,"description":86,"body":87,"_type":450,"_id":451,"_source":452,"_file":453,"_stem":454,"_extension":455},{"_path":83,"title":24},"\u002Fdocs\u002Fcore-concepts\u002F_dir",false,"","Understand the foundational pillars that power the Datafuse Platform.",{"type":88,"children":89,"toc":443},"root",[90,98,103,239,243,250,255,260,263,269,274,303,306,312,317,329,332,338,350,362,365,371,376,437],{"type":91,"tag":92,"props":93,"children":94},"element","p",{},[95],{"type":96,"value":97},"text","Datafuse is engineered to act as a secure, high-performance integration and routing layers for AI agents. Rather than connecting agents directly to raw APIs, Datafuse creates a robust proxy boundary.",{"type":91,"tag":92,"props":99,"children":100},{},[101],{"type":96,"value":102},"To build powerful agentic applications with Datafuse, it is essential to understand our four foundational pillars:",{"type":91,"tag":104,"props":105,"children":108},"pre",{"className":106,"code":107,"language":96,"meta":85,"style":85},"language-text shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","  ┌─────────────────────────────────────────────────────────────┐\n  │                     CUSTOM INTEGRATIONS                     │\n  │  Ingest OpenAPI\u002FSwagger specs & compile unified integrations│\n  └──────────────┬───────────────────────────────┬──────────────┘\n                 ▼                               ▼\n  ┌──────────────────────────────┐ ┌────────────────────────────┐\n  │    MANAGED CREDENTIALS       │ │    BI-DIRECTIONAL TRIGGERS │\n  │  Secure user OAuth & vaults  │ │   Real-time event webhooks │\n  └──────────────┬───────────────┘ └─────────────┬──────────────┘\n                 ▼                               ▼\n  ┌─────────────────────────────────────────────────────────────┐\n  │                      LIVE OBSERVABILITY                     │\n  │     Session analytics, latencies & zero-retention logs      │\n  └─────────────────────────────────────────────────────────────┘\n",[109],{"type":91,"tag":110,"props":111,"children":112},"code",{"__ignoreMap":85},[113,124,133,142,151,160,169,178,187,196,204,212,221,230],{"type":91,"tag":114,"props":115,"children":118},"span",{"class":116,"line":117},"line",1,[119],{"type":91,"tag":114,"props":120,"children":121},{},[122],{"type":96,"value":123},"  ┌─────────────────────────────────────────────────────────────┐\n",{"type":91,"tag":114,"props":125,"children":127},{"class":116,"line":126},2,[128],{"type":91,"tag":114,"props":129,"children":130},{},[131],{"type":96,"value":132},"  │                     CUSTOM INTEGRATIONS                     │\n",{"type":91,"tag":114,"props":134,"children":136},{"class":116,"line":135},3,[137],{"type":91,"tag":114,"props":138,"children":139},{},[140],{"type":96,"value":141},"  │  Ingest OpenAPI\u002FSwagger specs & compile unified integrations│\n",{"type":91,"tag":114,"props":143,"children":145},{"class":116,"line":144},4,[146],{"type":91,"tag":114,"props":147,"children":148},{},[149],{"type":96,"value":150},"  └──────────────┬───────────────────────────────┬──────────────┘\n",{"type":91,"tag":114,"props":152,"children":154},{"class":116,"line":153},5,[155],{"type":91,"tag":114,"props":156,"children":157},{},[158],{"type":96,"value":159},"                 ▼                               ▼\n",{"type":91,"tag":114,"props":161,"children":163},{"class":116,"line":162},6,[164],{"type":91,"tag":114,"props":165,"children":166},{},[167],{"type":96,"value":168},"  ┌──────────────────────────────┐ ┌────────────────────────────┐\n",{"type":91,"tag":114,"props":170,"children":172},{"class":116,"line":171},7,[173],{"type":91,"tag":114,"props":174,"children":175},{},[176],{"type":96,"value":177},"  │    MANAGED CREDENTIALS       │ │    BI-DIRECTIONAL TRIGGERS │\n",{"type":91,"tag":114,"props":179,"children":181},{"class":116,"line":180},8,[182],{"type":91,"tag":114,"props":183,"children":184},{},[185],{"type":96,"value":186},"  │  Secure user OAuth & vaults  │ │   Real-time event webhooks │\n",{"type":91,"tag":114,"props":188,"children":190},{"class":116,"line":189},9,[191],{"type":91,"tag":114,"props":192,"children":193},{},[194],{"type":96,"value":195},"  └──────────────┬───────────────┘ └─────────────┬──────────────┘\n",{"type":91,"tag":114,"props":197,"children":199},{"class":116,"line":198},10,[200],{"type":91,"tag":114,"props":201,"children":202},{},[203],{"type":96,"value":159},{"type":91,"tag":114,"props":205,"children":207},{"class":116,"line":206},11,[208],{"type":91,"tag":114,"props":209,"children":210},{},[211],{"type":96,"value":123},{"type":91,"tag":114,"props":213,"children":215},{"class":116,"line":214},12,[216],{"type":91,"tag":114,"props":217,"children":218},{},[219],{"type":96,"value":220},"  │                      LIVE OBSERVABILITY                     │\n",{"type":91,"tag":114,"props":222,"children":224},{"class":116,"line":223},13,[225],{"type":91,"tag":114,"props":226,"children":227},{},[228],{"type":96,"value":229},"  │     Session analytics, latencies & zero-retention logs      │\n",{"type":91,"tag":114,"props":231,"children":233},{"class":116,"line":232},14,[234],{"type":91,"tag":114,"props":235,"children":236},{},[237],{"type":96,"value":238},"  └─────────────────────────────────────────────────────────────┘\n",{"type":91,"tag":240,"props":241,"children":242},"hr",{},[],{"type":91,"tag":244,"props":245,"children":247},"h2",{"id":246},"_1-custom-integrations-compile-integration",[248],{"type":96,"value":249},"1. Custom Integrations (Compile Integration)",{"type":91,"tag":92,"props":251,"children":252},{},[253],{"type":96,"value":254},"Datafuse makes adding custom integrations incredibly easy.",{"type":91,"tag":92,"props":256,"children":257},{},[258],{"type":96,"value":259},"Instead of writing bespoke boilerplate code for every new integration, you define your integration structure in YAML (or paste a standard OpenAPI\u002FSwagger JSON file). Datafuse parses the spec, automatically identifies actions and query variables, and outputs a highly optimized schema that AI models can immediately understand.",{"type":91,"tag":240,"props":261,"children":262},{},[],{"type":91,"tag":244,"props":264,"children":266},{"id":265},"_2-managed-credentials-vault",[267],{"type":96,"value":268},"2. Managed Credentials Vault",{"type":91,"tag":92,"props":270,"children":271},{},[272],{"type":96,"value":273},"Traditional applications store sensitive access tokens in their primary database, making them vulnerable to prompt injection attacks where malicious agent prompts trick the LLM into leaking raw credentials.",{"type":91,"tag":92,"props":275,"children":276},{},[277,279,285,287,293,295,301],{"type":96,"value":278},"Datafuse eliminates this risk with a ",{"type":91,"tag":280,"props":281,"children":282},"strong",{},[283],{"type":96,"value":284},"Decoupled Vault",{"type":96,"value":286},". End-users authenticate through high-fidelity, white-labeled OAuth login frames. Datafuse cryptographically vaults their access tokens. When your agent requests a tool call (e.g. ",{"type":91,"tag":110,"props":288,"children":290},{"className":289},[],[291],{"type":96,"value":292},"slack.post_message",{"type":96,"value":294},"), the agent simply invokes the gateway. Datafuse injects the authorization token ",{"type":91,"tag":296,"props":297,"children":298},"em",{},[299],{"type":96,"value":300},"at the proxy boundary",{"type":96,"value":302}," and strips it from the returning payload. Your LLMs never see or touch the raw keys.",{"type":91,"tag":240,"props":304,"children":305},{},[],{"type":91,"tag":244,"props":307,"children":309},{"id":308},"_3-bi-directional-event-triggers",[310],{"type":96,"value":311},"3. Bi-Directional Event Triggers",{"type":91,"tag":92,"props":313,"children":314},{},[315],{"type":96,"value":316},"AI agents shouldn't just run on demand — they need to react dynamically to real-world events.",{"type":91,"tag":92,"props":318,"children":319},{},[320,322,327],{"type":96,"value":321},"Datafuse includes a high-performance ",{"type":91,"tag":280,"props":323,"children":324},{},[325],{"type":96,"value":326},"Trigger Broker",{"type":96,"value":328},". When an external application fires an event (e.g., a new email in Gmail or a fresh issue on GitHub), Datafuse intercepts the webhook, normalizes the event payload, and propagates it directly back into your agent framework's listener loops.",{"type":91,"tag":240,"props":330,"children":331},{},[],{"type":91,"tag":244,"props":333,"children":335},{"id":334},"_4-live-observability-auditing",[336],{"type":96,"value":337},"4. Live Observability & Auditing",{"type":91,"tag":92,"props":339,"children":340},{},[341,343,348],{"type":96,"value":342},"Agent executions can be unpredictable. Datafuse provides deep ",{"type":91,"tag":280,"props":344,"children":345},{},[346],{"type":96,"value":347},"Session-Level History",{"type":96,"value":349}," tracking.",{"type":91,"tag":92,"props":351,"children":352},{},[353,355,360],{"type":96,"value":354},"Every tool invocation, API status code, network latency, and payload size is captured in a real-time streaming console. Furthermore, we offer a dedicated ",{"type":91,"tag":280,"props":356,"children":357},{},[358],{"type":96,"value":359},"Zero-Retention Mode",{"type":96,"value":361}," ensuring raw query payloads never persist on physical disks, complying with strict HIPAA and SOC-2 data boundaries.",{"type":91,"tag":240,"props":363,"children":364},{},[],{"type":91,"tag":244,"props":366,"children":368},{"id":367},"next-steps",[369],{"type":96,"value":370},"Next Steps",{"type":91,"tag":92,"props":372,"children":373},{},[374],{"type":96,"value":375},"Explore each core pillar in detail:",{"type":91,"tag":377,"props":378,"children":379},"ul",{},[380,396,409,423],{"type":91,"tag":381,"props":382,"children":383},"li",{},[384,386,394],{"type":96,"value":385},"Deep dive into tool creation in ",{"type":91,"tag":280,"props":387,"children":388},{},[389],{"type":91,"tag":390,"props":391,"children":392},"a",{"href":31},[393],{"type":96,"value":30},{"type":96,"value":395},".",{"type":91,"tag":381,"props":397,"children":398},{},[399,401,408],{"type":96,"value":400},"Understand credential protection in ",{"type":91,"tag":280,"props":402,"children":403},{},[404],{"type":91,"tag":390,"props":405,"children":406},{"href":34},[407],{"type":96,"value":33},{"type":96,"value":395},{"type":91,"tag":381,"props":410,"children":411},{},[412,414,422],{"type":96,"value":413},"Configure webhook notifications in ",{"type":91,"tag":280,"props":415,"children":416},{},[417],{"type":91,"tag":390,"props":418,"children":419},{"href":37},[420],{"type":96,"value":421},"Event Triggers",{"type":96,"value":395},{"type":91,"tag":381,"props":424,"children":425},{},[426,428,436],{"type":96,"value":427},"Track agent performance in ",{"type":91,"tag":280,"props":429,"children":430},{},[431],{"type":91,"tag":390,"props":432,"children":433},{"href":40},[434],{"type":96,"value":435},"Live Observability",{"type":96,"value":395},{"type":91,"tag":438,"props":439,"children":440},"style",{},[441],{"type":96,"value":442},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":85,"searchDepth":126,"depth":126,"links":444},[445,446,447,448,449],{"id":246,"depth":126,"text":249},{"id":265,"depth":126,"text":268},{"id":308,"depth":126,"text":311},{"id":334,"depth":126,"text":337},{"id":367,"depth":126,"text":370},"markdown","content:1.docs:2.core-concepts:1.index.md","content","1.docs\u002F2.core-concepts\u002F1.index.md","1.docs\u002F2.core-concepts\u002F1.index","md",[457,459],{"_path":22,"title":21,"description":458},"Run the same Datafuse v1 flow from the terminal with raw HTTP calls.",{"_path":31,"title":30,"description":460},"Ingest OpenAPI specs and add custom third-party integrations as secure agent tools.",1780069615249]