What We Learned Building Heym for Production AI Workflows
AI workflow demos are easy.
Connect a model to a prompt, add a tool, run it once, and the result looks impressive.
Production is where the harder questions begin.
What happens when a document changes in your knowledge base? Can a second machine take over the heavy workflows? Can your team use its existing identity provider? When something fails after three retries, can you see what actually happened?
These are the questions shaping Heym, a source-available and self-hostable platform for building AI workflows on a visual canvas.
The latest set of releases make that direction clearer. We have been working on RAG synchronization, multi-instance execution, OIDC single sign-on, execution inspection, and more practical browser automation.
At the same time, our recent writing has focused on the less comfortable side of AI agents: governance, sandboxing, specifications, and the difference between having a feature and having evidence that it works.
What is Heym?
Heym is an AI-native workflow automation platform built around LLMs, agents, RAG, browser automation, and MCP.
You can connect nodes on a visual canvas, generate workflows with an AI assistant, attach tools and skills to agents, and run independent branches in parallel.
The same workflow can then be called from:
- The visual editor
- A REST endpoint
- An SSE streaming endpoint
- An MCP client
- A scheduled trigger
- A public chat portal
- Integrations such as Slack, Telegram, Discord, RabbitMQ, or email
The important part is not only building the graph. Heym also keeps the execution history, LLM traces, token usage, costs, logs, evaluations, and outputs around that graph.
We think an AI workflow should be inspectable after it leaves the demo environment.
Keeping RAG indexes synchronized
The newest RAG release adds Upsert and Delete operations to the RAG and Vector Store node.
A workflow can now address a document using an identifier from the source system, such as:
- A CRM record ID
- A product SKU
- A page slug
- An internal document key
This is different from depending on the vector database's internal point ID.
When an upsert runs, Heym removes the existing chunks associated with that document ID before writing the new version. This prevents an updated document from appearing beside its outdated chunks.
Delete uses the same external identifier and returns a normal result even when the document does not exist.
Metadata also supports expressions. A workflow can store values such as a source URL, customer ID, or category directly from an earlier node while preserving the original data type.
Both operations work with Qdrant and PostgreSQL with pgvector.
This turns RAG from a one-time ingestion task into a synchronization workflow.
You can read the RAG node documentation for the complete configuration.
Distributing workflows across worker instances
AI workflows tend to be uneven.
A webhook that transforms JSON may finish in milliseconds. A browser automation or multi-agent workflow can occupy a machine for much longer.
Heym can now distribute background executions across multiple instances connected to the same PostgreSQL database.
You can start another instance as a worker and assign execution weights from the settings panel. PostgreSQL carries the work, so workers do not need to expose a port or communicate directly with the main instance.
Placement is also explicit.
Workflows that depend on local files, installed plugins, coding-agent workspaces, or a fixed outbound IP remain on the main instance. Compute-heavy work that does not depend on local state can move to workers.
Execution history records which instance ran each workflow, and the history interface can filter runs by instance.
That makes horizontal scaling visible instead of turning it into infrastructure hidden behind the application.
More details are available in the load distribution documentation.
Signing in with an existing identity provider
Teams can now connect Heym to any OpenID Connect provider.
An administrator enters the issuer URL, and Heym discovers the provider's authorization, token, and signing-key endpoints.
The same configuration works with providers such as:
- Keycloak
- Okta
- Microsoft Entra ID
- Auth0
Administrators can restrict automatic account creation to approved email domains and test the connection before disabling password login.
We also keep workforce identity separate from agent credentials.
OIDC answers how a person signs in to Heym. It does not answer which credentials a workflow should use when calling a database, CRM, or external API. Those are separate security boundaries and should be managed separately.
The SSO documentation covers the setup and safety checks.
Inspecting executions without leaving the timeline
When a workflow fails, a red node is not enough.
The execution timeline now includes a span details inspector. Selecting a span shows:
- Status and duration
- Start and completion times
- Retry attempts
- Trace information
- The last error
- Node output
This keeps the investigation connected to the timeline. You can identify the slow or failed step, inspect its output, and follow its trace without reopening several different panels.
For AI workflows, observability is not an optional dashboard. Model calls are probabilistic, tool calls touch external systems, and retries can change both latency and cost.
The details are described in the execution history documentation.
Browser automation that explains itself
Heym's Playwright node supports deterministic steps and AI-generated browser actions.
Recent additions make those AI steps easier to operate:
- Plain-language browser instructions can be converted into Playwright actions
- Failed runs identify the step that was attempted
- Screenshots open in a full-size gallery
- Generated actions can be saved for future runs
- Failed selectors can be repaired through auto-healing
The design we prefer is hybrid.
Use deterministic browser steps for navigation and stable selectors. Use an AI step only for the part of the page that genuinely changes. Save the generated action, replay it, and validate the extracted result.
This idea is explored in our article, AI Web Scraping: Read the Page Once, Not Every Run.
The engineering lessons behind the features
Our recent blog posts are not release announcements. They document the questions that appeared while building the product.
Enterprise AI needs evidence
Every enterprise platform can say that it supports SSO, audit logs, and horizontal scaling.
The more useful questions are concrete:
- Which identity claims are rejected?
- What does one real audit record contain?
- Which workflows cannot leave the main machine?
- Which instance executed a specific run?
- Can an administrator recover from a broken SSO configuration?
In Enterprise AI Agents: Everyone Passes the Checklist, we applied that checklist to Heym and published the gaps as well as the capabilities.
Governance is more than counting agents
An agent inventory tells you how many agents exist. It does not tell you whether they are controlled.
Our AI Agent Governance article reduces the problem to four questions:
- Who owns the agent?
- What is its purpose?
- What is it allowed to touch?
- How can someone stop it?
The first two produce records. The last two require enforceable controls.
That distinction matters because a policy saying an agent should not delete production data is not the same as a system refusing the delete operation.
Specifications need enforcement points
We also reviewed how coding agents followed our own repository instructions across more than a thousand commits.
The result was not simply that longer specifications worked or failed.
Rules naming a specific file, a destination, and a forbidden pattern were followed much more consistently than broad rules such as keeping every component below a certain size.
The lesson from Spec Driven Development: What Our Agents Ignored was simple: if a rule cannot be evaluated during one edit, it probably needs an automated check.
A sandbox should be tested from the inside
Our article AI Agent Sandbox: We Shipped the Bug First came from an uncomfortable place.
After discovering that one code execution path did not use the isolation we expected, we stopped treating sandbox configuration as evidence.
For the Code node, we ran a probe through the real execution path and checked what the container could actually see:
- No backend secrets
- No Docker socket
- No application source
- A read-only filesystem
- No network access by default
- An unprivileged user
A sandbox controls where code can reach. It does not decide whether the action should have been allowed in the first place. Isolation, authorization, and human approval remain separate mechanisms.
Where Heym is heading
The direction is straightforward.
We want building an AI workflow to feel visual and fast, while operating it remains explicit.
That means combining:
- Natural-language workflow creation
- Visual multi-agent orchestration
- RAG and MCP
- Human review checkpoints
- Sandboxed code execution
- Execution history and traces
- Evaluations and cost tracking
- Identity, auditability, and workload placement
The goal is not to hide complexity behind an agent.
The goal is to make that complexity visible at the points where a developer or operator needs to make a decision.
Heym is self-hostable, and the repository is available on GitHub.
You can try it locally with:
bash
git clone https://github.com/heymrun/heym.git
cd heym
./run.sh