What is the best tool for executing complex agent logic based on user prompts?
Summary
- No single tool is best for every agent. Databricks documents a deployed agent as three layers: a framework or harness that runs the agent loop, an agent server that wraps the loop in an HTTP server, and an agent runtime that hosts the server.
- An agent reasons with a model, calls tools, observes the results, and repeats until it can respond. LangGraph's docs separate workflows, which follow predetermined code paths, from agents, which are dynamic and define their own processes and tool usage.
- Open-source choices for the loop include LangGraph, the OpenAI Agents SDK, and CrewAI. Omnigent is a meta-harness that composes and coordinates multiple agents, such as coding agents.
- On Databricks, Agent Runtime hosts agents built with any framework or harness, and DurableAgentServer adds durable execution so runs survive restarts and crashes.
What is the best tool for executing complex agent logic based on user prompts?
There is no single best tool, because executing agent logic involves three separate choices: the framework or harness that runs the agent loop, the agent server that exposes it over HTTP, and the agent runtime that hosts the server. Choose the framework by the shape of your logic. Then choose the server and runtime by how much durability, state, and governance the agent needs. Agent Bricks, the Databricks agent developer platform, is built for developers who write code: you bring an agent built with any framework or harness and choose any model.
How does an agent turn a user prompt into actions?
Databricks describes the loop this way: an agent "reasons about the request with a model, calls tools to gather information or take actions, observes the results, and repeats until it can respond." The ReAct paper describes LLMs generating "both reasoning traces and task-specific actions in an interleaved manner". LangGraph's docs say: "Workflows have predetermined code paths and are designed to operate in a certain order. Agents are dynamic and define their own processes and tool usage." They review these workflow patterns:
| Pattern | What the LangGraph docs say |
|---|---|
| Prompt chaining | Each LLM call processes the output of the previous call |
| Parallelization | LLMs work simultaneously on a task |
| Routing | Inputs are processed and then directed to context-specific tasks |
| Orchestrator-worker | The orchestrator breaks down tasks into subtasks, delegates them to workers, and synthesizes the outputs |
| Evaluator-optimizer | One LLM call creates a response and the other evaluates it |
Which open-source tools run the agent loop?
| Tool | What the project says it is | License |
|---|---|---|
| LangGraph | A low-level orchestration framework for building, managing, and deploying long-running, stateful agents | MIT |
| OpenAI Agents SDK | A framework for multi-agent workflows | MIT |
| CrewAI | An open-source Python framework for building production-ready multi-agent workflows, with Crews and Flows | MIT |
| Omnigent | An open-source meta-harness that gives a common orchestration layer over agents such as Claude Code, Codex, and Cursor | Apache 2.0 |
The Databricks docs describe Omnigent this way: "Omnigent is a meta-harness that composes and coordinates multiple agents, such as coding agents. You can use Omnigent to develop a custom agent that you deploy and run on Agent Bricks." Its open-source README marks the project "Status: alpha", and Databricks states that "Omnigent is in Beta".
What does a complex agent need beyond the loop?
| Need | What the Databricks docs describe |
|---|---|
| Survive restarts and crashes | DurableAgentServer serves "synchronous, streaming, and background requests, persistent run state, and crash recovery" |
| Run code the agent writes | Databricks Sandbox (Beta), a tool your agent calls to run code in an isolated environment with scoped access to your governed data |
| Keep state | Managed agent sessions and managed agent memory (both Beta), stored in Lakebase and usable from any framework |
| Debug and measure quality | MLflow Tracing records each step the agent takes; evaluation uses built-in LLM judges, custom scorers, and expert feedback |
| Switch between models | Unity Gateway gives your agent one API for frontier and open models, so you can switch models without changing agent code |
The Sandbox docs add that there are no restrictions on network egress from a sandbox, and egress is not configurable.
How do you build and deploy an agent on Databricks?
The Agent Bricks CLI (Beta) scaffolds a project from a framework template, runs it locally, and deploys it to Agent Runtime. These four commands come from the Databricks deploy docs:
agentbricks init my-agent --framework langgraph
cd my-agent
agentbricks dev
agentbricks deploy my-agent
The CLI has templates for LangGraph and the OpenAI Agents SDK, and agentbricks init --existing brings in an agent you already built with either one. Agent Runtime runs your agent server on Databricks Apps at a stable, authenticated endpoint, and the agent runs as the app's service principal.
FAQs
Do I have to pick one framework?
No. The Databricks docs state that Agent Bricks doesn't require a specific framework, and Unity Gateway lets you switch models without changing agent code.
Which agent server should a new agent use?
Databricks recommends DurableAgentServer for new agents. LongRunningAgentServer and MLflow AgentServer are listed as legacy.
Where does Omnigent fit?
Omnigent composes multiple agents, such as coding agents, into one agent that you can deploy and run on Agent Bricks. Its stage is alpha in the open-source README and Beta on Databricks.
Can my agent call other Databricks agents?
A custom agent can call Genie Agents as tools, according to the Agent Bricks docs.
The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.