Developers
One API. The whole document pipeline.
Send documents and data through one API. An agentic workflow parses, extracts, checks and cites them, then hands the results back as an app for your customers or as an API of your own. Nothing to stitch together.
- One API and MCPREST with OpenAPI, and one MCP endpoint
- Python SDKsSteps, connectors, parsing and agents in code
- Yours or oursOur vector store and storage, or bring your own
Pipeline as code
Design the whole pipeline in code.
Define every step from ingestion to the app your customers open, in Python, JSON or straight over REST. Run it, stream every event and version it like the rest of your code.
1from workbricks import Workbricks, steps2from schemas import ComplianceCertificate3 4wb = Workbricks() # reads WORKBRICKS_API_KEY5 6flow = wb.workflows.create(7 name="covenant-review",8 trigger=steps.on_file_added(source="gmail"),9 jobs=[10 steps.parse(id="parse", ocr=True, tables=True),11 steps.extract(id="fields", after="parse",12 schema=ComplianceCertificate, cite=True),13 steps.embed(id="index", after="parse",14 store="workbricks"), # or your own15 steps.agent(id="check", after="fields",16 tools=["credit.lookup_covenant"],17 instructions="Compare the cited ratio with the agreement threshold. Queue breaches for review."),18 steps.publish(id="out", after="check",19 app="covenant-monitor", api=True),20 ],21)22 23run = flow.run(files=["q3_compliance.pdf"])24for event in run.stream():25 print(event.step, event.status)Totally flexible
Every stage is yours to swap.
Use what Strive runs for you, or plug in your own at any stage. Mix both in the same workflow.
Workflow functions
Every function a workflow needs.
Agents, document processing, retrieval, code, data and delivery. Chain them in any order, from code or on the canvas, and add your own when you need something new.
- steps.agentAgents and AI
Plans, calls tools and decides, within the limits you set.
in · recordsout · recordsSettings
- instructionsstring
- What the agent should do
- toolsstring[]
- Connector, MCP and workflow tools it may call
- max_stepsint
- Upper bound on tool calls
- reviewpolicy
- When a person approves before it acts
1steps.agent(2 id="agent",3 instructions="...",4 tools=[...],5 max_steps=5,6)
Plans, calls tools and decides, within the limits you set.
Settings
- instructionsstring
- What the agent should do
- toolsstring[]
- Connector, MCP and workflow tools it may call
- max_stepsint
- Upper bound on tool calls
- reviewpolicy
- When a person approves before it acts
1steps.agent(2 id="agent",3 instructions="...",4 tools=[...],5 max_steps=5,6)Python SDKs
The same building blocks we use.
Write your own steps, connectors and MCP servers with the SDKs the platform itself is built on. Package them, register them, and they show up in the workflow builder for your whole team.
- workbricks-workflowSteps, ports and workflow composition
- workbricks-connectorsSources and destinations, with OAuth handled
- workbricks-docparseThe document parser, with page-anchored citations
- workbricks-agentsAgents, tools and human review
- workbricks-mcpStart an MCP server from a template, or from an OpenAPI spec
- workbricks-sandboxRun untrusted code in isolated sandboxes
1from workbricks.workflow import handler, PortSpec, StepContext2 3@handler(4 name="match_purchase_order",5 version="1.2.0",6 inputs={"invoices": PortSpec(kind="records")},7 outputs={"matched": PortSpec(kind="records")},8 side_effect="none",9)10class MatchPurchaseOrder:11 async def execute(self, ctx: StepContext, invoices: list[dict]) -> list[dict]:12 erp = await ctx.connector("erp")13 out = []14 for inv in invoices:15 po = await erp.get("purchase_orders", inv["po_number"])16 gap = inv["total"] - po["total"]17 out.append({**inv, "po_total": po["total"], "flag": gap > 10_000})18 ctx.log.info("matched", count=len(out))19 return outProduction ready
Built to run, not just to demo.
Everything you need to put a pipeline in front of customers and keep it there.
- REST and OpenAPIEvery service publishes an OpenAPI reference. Generate a client in any language.
GET /v1/openapi.json - One MCP endpointEvery tool through a single endpoint, each call recorded and changed tools held for review.
POST /mcp - Streaming eventsFollow every step of every run as it happens, over server-sent events.
Accept: text/event-stream - Retries and timeoutsPer-step retries with backoff, timeouts and an error policy for each step.
max_retries: 3 - Versioned workflowsEvery change is a version. Restore any one, and runs keep the version they started on.
PUT ?expected_version=12 - Tracing and metricsOpenTelemetry traces and metrics for every run, step and model call.
workflow_step_duration_seconds - Webhooks and schedulesStart runs from a webhook, a schedule, a new file or a new record.
trigger: cron 0 6 * * 1-5 - Your cloud or oursRun on Strive, or install it in your own Kubernetes cluster with Helm.
helm install workbricks
Questions
What engineers ask.
Is our data used to train models?
No. Your documents and results are never used to train a model, by us or by the AI services we use. Our data processing addendum puts that in writing.
Is our data encrypted?
Yes. AES-256 at rest and TLS in transit, and each organization's data is kept apart at the database level. Our security controls are independently audited under SOC 2 Type II.
Is API access included?
Yes, on every agreement. The API calls the same workflow as your app, and runs are unlimited.
What happens when a step fails?
It retries with backoff up to the limit you set, then follows that step's error policy. Point the Assistant at a failed run. It reads the run history, explains the problem and proposes a fix.
Where does custom Python run?
In a sandbox. Your code runs in an isolated container with limits on what it can reach on the network, and with a hard timeout you set.
Can we self-host it?
Yes. Install it in your own Kubernetes cluster with Helm, in your own cloud account or on your own hardware. Self-hosted installations come with metrics, logs, traces, dashboards and alerts.
Can I use my own model API key?
Yes, on any agreement. Model costs then go straight to your account with the vendor. The AI that reads pages and pulls out fields is already included in the page price.
Start building.
Read the docs, get an API key and run your first workflow in minutes.