
Harness
A headless TypeScript framework for durable, deployable autonomous agents. No TUI, no GUI — just an SDK and a CLI.
npm install -g @fabric-harness/cliDatabricks · first-party
Build governed agents on Databricks
One databricks() call wires the agent's brain (Mosaic AI Model Serving), tools (governed SQL, Unity Catalog, AI Functions, Genie, Lakeflow, Vector Search, Feature Serving), durable state (Lakebase), and cost controls — all under a single Unity Catalog principal. Layered on top of UC; it never re-implements your permissions.
1import { agent } from '@fabric-harness/sdk';2import { databricks } from '@fabric-harness/databricks';34// One call wires the brain, tools, governance, and state — under one UC principal.5const dbx = databricks({6 host: process.env.DATABRICKS_HOST!,7 principal: { kind: 'service-principal', /* clientId, clientSecret, host */ },8 model: 'databricks-meta-llama-3-3-70b-instruct', // Mosaic AI Model Serving9 warehouseId: process.env.DATABRICKS_WAREHOUSE_ID!, // governed SQL10 vectorSearch: { index: 'main.kb.docs', textColumn: 'chunk' }, // RAG11 genie: { spaceId: 'space-123' }, // NL → SQL analytics12 governance: { stewardAudience: 'data-steward' }, // Unity Catalog + approvals13});1415export default agent({16 run: async ({ init }) => {17 const fabric = await init({ modelProvider: dbx.modelProvider, tools: dbx.tools, policy: dbx.policy });18 return (await fabric.session()).prompt('How many orders shipped last week?');19 },20});
Unity Catalog governance, RAG, deploy to Databricks Apps / Agent Bricks · full Databricks guide →
Databricks is first-party — Fabric also speaks every major model provider: Anthropic, OpenAI, Azure OpenAI, Bedrock, Google Vertex, Cohere, Mistral, Groq, and Cloudflare Workers AI. Model providers →
Authoring
Start fast. Go strict when you need to.
The bare @fabric-harness/sdk import gives you a working agent in 8 lines — headless defaults injected on every init(). Switch to @fabric-harness/sdk/strict for Temporal-backed durability or compliance workloads where every option must be declared.
1import { agent } from '@fabric-harness/sdk';23export default agent<{ message: string }>({4 name: 'echo',5 triggers: { webhook: true },6 run: async ({ init, input }) => {7 const session = await (await init()).session();8 return { reply: await session.prompt<string>(input.message) };9 },10});
Defaults injected on every init(): runtime: stateless, sandbox: virtual, loopRuntime: pi-agent-core, compaction: { enabled: true }. Override any value per call.
Sandboxes
Same agent code, swap the sandbox
One init({ sandbox }) call picks where the shell, filesystem, and tools execute. Edge, durable workflow, hosted, remote dev box, GPU — pick what fits.
1import { agent } from '@fabric-harness/sdk';2import { getCloudflareSandbox } from '@fabric-harness/cloudflare';34export default agent({5 run: async ({ init, env }) => {6 const sandbox = await getCloudflareSandbox(env.SANDBOX, 'session-1');7 const session = await (await init({ sandbox })).session();8 return await session.prompt('hello edge');9 },10});
edge worker · full Cloudflare guide →
Use Cases
Built for the SDLC
Ten production-shaped agents, each with a runnable scaffold.
Deploy
Author once, deploy anywhere
In-workspace on Databricks, on the edge, as a durable workflow, straight from your CI/CD pipeline, or any Node runtime — fabric-harness build --target emits the artifact, the runtime is pluggable.
Databricks
Run in-workspace as a Databricks App, or serve via MLflow for Agent Bricks / the Playground.
GitHub Actions
Run agents straight from your CI pipeline — triage, review, release notes on every push or PR.
GitLab CI/CD
Same agents in GitLab pipelines, gated by your existing CI rules and secrets.
Cloudflare Workers
Edge-deployed via @fabric-harness/cloudflare with R2 sources and KV/D1 stores.
Temporal
Long-running, retryable workflows that survive crashes and approval delays.
Node
Local dev, Docker images, AWS / GCP / Azure VMs, any Node 22+ runtime.
Docker
Sandboxed shell + filesystem isolation per agent. Useful for coding agents.
Render
One-command container deploy with a generated Blueprint and health checks.
Azure Foundry
Azure-managed hosted agent runtime, designed-for and rolling in.
Sources
Mount any knowledge base — no embeddings
Filesystem sources mount Markdown, MDX, or any text into a sandbox so the agent's built-in grep, glob, and read tools see it as ordinary files. Supports Fumadocs, Mintlify (local or hosted MCP), Cloudflare R2, S3, Azure Blob, and arbitrary HTTP.
1import { agent, fumadocsSource, withFilesystemSources } from '@fabric-harness/sdk';23export default agent<{ alert: string }>({4 name: 'runbook',5 triggers: { webhook: true },6 run: async ({ init, input }) => {7 const sandbox = withFilesystemSources('virtual', [8 { mountAt: '/workspace/runbooks', source: fumadocsSource('./runbooks') },9 ]);10 const session = await (await init({ sandbox })).session();11 return { plan: await session.prompt<string>(`Alert: "${input.alert}". Match a runbook.`) };12 },13});