<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marc Duiker</title>
    <description>The latest articles on DEV Community by Marc Duiker (@marcduiker).</description>
    <link>https://dev.to/marcduiker</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F220922%2Fb486eebe-5f4a-4d1d-8239-693aababb16a.png</url>
      <title>DEV Community: Marc Duiker</title>
      <link>https://dev.to/marcduiker</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marcduiker"/>
    <language>en</language>
    <item>
      <title>10 LangGraph Alternatives for Building Agentic Workflows in 2026</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Sat, 08 Aug 2026 11:00:00 +0000</pubDate>
      <link>https://dev.to/diagrid/10-langgraph-alternatives-for-building-agentic-workflows-in-2026-261k</link>
      <guid>https://dev.to/diagrid/10-langgraph-alternatives-for-building-agentic-workflows-in-2026-261k</guid>
      <description>&lt;p&gt;&lt;a href="https://www.langchain.com/langgraph" rel="noopener noreferrer"&gt;LangGraph&lt;/a&gt; is a good answer when your agent naturally looks like a graph. It gets harder to defend when your team does not want that graph to become the shape of the whole application.&lt;/p&gt;

&lt;p&gt;None of the alternatives below are LangGraph clones. Each one asks you to think about agents differently.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want a smaller abstraction
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The &lt;a href="https://developers.openai.com/api/docs/guides/agents" rel="noopener noreferrer"&gt;OpenAI Agents SDK&lt;/a&gt; gives you agents, tools, handoffs, guardrails, sessions, and tracing, without asking you to draw an explicit graph for every application.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pydantic.dev/docs/ai/overview/" rel="noopener noreferrer"&gt;Pydantic AI&lt;/a&gt; is worth a look if you write typed Python services. You get structured outputs, validation, and dependency injection.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://strandsagents.com/" rel="noopener noreferrer"&gt;Strands Agents&lt;/a&gt; runs a model-driven loop with tools and keeps the developer experience short.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  If you want multi-agent concepts first
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://crewai.com/" rel="noopener noreferrer"&gt;CrewAI&lt;/a&gt; models role-based agents, tasks, and crews. When collaboration is the main thing you are describing, that can read better than wiring nodes together.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learn.microsoft.com/en-us/agent-framework/overview/?pivots=programming-language-csharp" rel="noopener noreferrer"&gt;Microsoft Agent Framework&lt;/a&gt; deserves a place on the shortlist if your team is Microsoft-oriented and you are building agents and multi-agent workflows across .NET and Python.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://adk.dev/" rel="noopener noreferrer"&gt;Google ADK&lt;/a&gt; supports modular agents, tools, and composition, and it lines up with Google's models and cloud.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  If you want distributed-systems primitives
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://docs.dapr.io/developing-ai/dapr-agents/" rel="noopener noreferrer"&gt;Dapr Agents&lt;/a&gt; puts agent development on top of Dapr's state, messaging, service invocation, and workflow foundation.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://restate.dev/" rel="noopener noreferrer"&gt;Restate&lt;/a&gt; is not only an agent framework. It is a durable application runtime that can wrap your agent logic and your SDKs. Look at it when resilient execution matters more to you than taking on another high-level agent abstraction.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  If you want long-horizon or provider-specific tooling
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://docs.langchain.com/oss/python/deepagents/overview" rel="noopener noreferrer"&gt;Deep Agents&lt;/a&gt; aims at longer and more complex work through planning, sub-agents, and context-management patterns.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://code.claude.com/docs/en/agent-sdk/overview" rel="noopener noreferrer"&gt;The Claude Agent SDK&lt;/a&gt; fits teams building tool-rich agents around Claude's ecosystem and its coding-agent patterns.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Framework choice is not runtime choice
&lt;/h2&gt;

&lt;p&gt;Some of these change how you author the agent. Others change how the agent survives failure. The two decisions are related, but they are not the same decision, and it is easy to shop for one while thinking you are solving the other.&lt;/p&gt;

&lt;p&gt;If you like LangGraph's programming model and what you actually need is production durability, you may not have to replace LangGraph at all. &lt;a href="https://www.diagrid.io/catalyst" rel="noopener noreferrer"&gt;Diagrid Catalyst&lt;/a&gt;, for example, ships a LangGraph runner as part of its bring-your-own-framework approach, and other durable runtimes integrate with agent SDKs too.&lt;/p&gt;

&lt;p&gt;My short version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stay on LangGraph when explicit state and graph control are the strengths you want&lt;/li&gt;
&lt;li&gt;pick CrewAI when roles and collaboration match the problem&lt;/li&gt;
&lt;li&gt;pick the OpenAI Agents SDK or Pydantic AI when you want fewer orchestration concepts&lt;/li&gt;
&lt;li&gt;pick an ecosystem-native framework when organizational alignment matters&lt;/li&gt;
&lt;li&gt;add a durable execution layer when the real problem is recovery rather than authoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pick the one whose mental model your team can still explain a few months after the demo has become a production service. That test tells you more than how new the framework is.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>langchain</category>
    </item>
    <item>
      <title>Inngest or Diagrid Catalyst: From a TypeScript AI Workflow to an Enterprise Agent Platform</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Fri, 07 Aug 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/diagrid/inngest-or-diagrid-catalyst-from-a-typescript-ai-workflow-to-an-enterprise-agent-platform-54p0</link>
      <guid>https://dev.to/diagrid/inngest-or-diagrid-catalyst-from-a-typescript-ai-workflow-to-an-enterprise-agent-platform-54p0</guid>
      <description>&lt;p&gt;A five-person team usually picks the infrastructure it never has to think about, and that is the right call. It stops being the right call on the day the first enterprise customer asks where the agent runs and who is allowed to authorize its tools.&lt;/p&gt;

&lt;p&gt;At prototype stage, Inngest is easy to understand. You write functions in TypeScript, Python, or Go, split durable work into steps, and let the platform deal with state, retries, flow control, and observability. Its current durable-agent model uses step-level memoization, so completed LLM calls and tool invocations are not repeated during a replay. It can also wait for events and invoke sub-agents.&lt;/p&gt;

&lt;p&gt;That suits a web team stretching background jobs into longer AI workflows. The agent stays next to the application code, and there is not much infrastructure to run.&lt;/p&gt;

&lt;h2&gt;
  
  
  When the decision changes
&lt;/h2&gt;

&lt;p&gt;The architecture conversation usually shifts in stages.&lt;/p&gt;

&lt;p&gt;First you ship the feature. A TypeScript workflow calls an LLM, enriches some data, and writes a result. Developer experience decides the winner.&lt;/p&gt;

&lt;p&gt;Then you have to survive failure. Tool calls need to resume at the right step. Inngest and Catalyst both handle that, through different execution models.&lt;/p&gt;

&lt;p&gt;Then a second and a third agent stack show up. A Python team picks LangGraph, a .NET team picks Microsoft Agent Framework, and another group uses Google ADK. Catalyst's bring-your-own-framework model starts to matter here, because the platform standard can sit below those framework choices instead of competing with them.&lt;/p&gt;

&lt;p&gt;Then you go through enterprise review. Customers ask for workload identity, deny-by-default access, private deployment, MCP governance, and evidence of what each agent did. That is where Catalyst's wider governance model can justify running a larger platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would compare
&lt;/h2&gt;

&lt;p&gt;Retries and dashboards are the least interesting part of this comparison. I would look at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which languages and agent frameworks are supported&lt;/li&gt;
&lt;li&gt;what happens to completed steps and side effects during recovery&lt;/li&gt;
&lt;li&gt;who operates the workers, the state, and the execution plane&lt;/li&gt;
&lt;li&gt;how agent-to-tool access is authenticated and authorized&lt;/li&gt;
&lt;li&gt;which self-hosted, private, or air-gapped topologies exist&lt;/li&gt;
&lt;li&gt;how several teams share one platform without sharing permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inngest can stay the best choice for developer-first durable functions, background jobs, and AI workflows, as long as its language and deployment model fit the team. Catalyst fits better once the requirement has grown from "make this function durable" into "run and govern many kinds of agents across the enterprise."&lt;/p&gt;

&lt;p&gt;Both mistakes are common, and they are the same mistake pointed in opposite directions: buying the stage-four platform while you are still at stage one, and refusing to reopen a stage-one decision after the organization around it has changed. Let the architecture follow the risk you are actually carrying.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/getting-started/quickstarts/ai-agents/?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid Catalyst Quickstarts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/ai-agents/?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid agent docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.inngest.com/docs/learn/durable-agents" rel="noopener noreferrer"&gt;Inngest durable agents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Restate or Diagrid Catalyst for Durable Tool Calls?</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Thu, 06 Aug 2026 08:00:00 +0000</pubDate>
      <link>https://dev.to/diagrid/restate-or-diagrid-catalyst-for-durable-tool-calls-36b8</link>
      <guid>https://dev.to/diagrid/restate-or-diagrid-catalyst-for-durable-tool-calls-36b8</guid>
      <description>&lt;p&gt;"Retry the tool call" sounds harmless until the tool issues a refund. Then durability, identity, and evidence stop being three concerns owned by three different teams and turn into one incident.&lt;/p&gt;

&lt;p&gt;Take a support system built out of several agents. A triage agent classifies the ticket. An account agent retrieves customer state. A policy agent decides whether a refund is allowed. A human approves the recommendation. An action agent calls the refund tool. Then the process loses its connection before the response is recorded.&lt;/p&gt;

&lt;p&gt;Retrying is the easy part. What matters is whether the platform and your own code can work out what already happened, without sending a second refund.&lt;/p&gt;

&lt;h2&gt;
  
  
  Restate: durable code and journaled steps
&lt;/h2&gt;

&lt;p&gt;Restate is a runtime that sits in front of your services and records execution in a journal. Its AI documentation shows LLM calls and tool executions wrapped as durable steps. After a crash, completed results are replayed from the journal and execution continues from the first step that never finished. Restate supports services, virtual objects, and workflows, and runs through Restate Cloud or a server you host yourself.&lt;/p&gt;

&lt;p&gt;That is a good model if you want resilient functions and services with built-in state, reliable communication, and durable execution written into ordinary code. It also integrates with agent SDKs rather than asking you to adopt one agent framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Catalyst: durable agents plus a shared trust layer
&lt;/h2&gt;

&lt;p&gt;Catalyst also persists workflow activity results and resumes failed executions. Around that it adds App ID-based workload identity, access policies, mTLS-backed communication, MCP governance, and a single operational surface for agents and applications. Diagrid positions verifiable execution, meaning history, lineage, signing, and attestation, as an additional trust layer.&lt;/p&gt;

&lt;p&gt;Once money is involved, a security review will want more than proof that the run recovered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which workload identity invoked the refund tool?&lt;/li&gt;
&lt;li&gt;Which policy authorized the call?&lt;/li&gt;
&lt;li&gt;Can you show that the execution history was not altered?&lt;/li&gt;
&lt;li&gt;Can you revoke access without editing the agent prompt?&lt;/li&gt;
&lt;li&gt;Does the same control apply across cloud, on-premises, and isolated deployments?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where each one fits
&lt;/h2&gt;

&lt;p&gt;Restate is the better fit when what you need is a lightweight durable runtime for services, stateful entities, workflows, and agents, and you want to express resilience directly in normal application code.&lt;/p&gt;

&lt;p&gt;Catalyst is the better fit when durable execution has to arrive together with organization-wide agent identity, policy-controlled tool access, verifiable evidence, and governance across several frameworks and deployment environments.&lt;/p&gt;

&lt;p&gt;Neither one takes your application off the hook once the outcome is unknown. A payment or refund integration still needs idempotency keys, reconciliation, and explicit compensation logic. Durable execution preserves progress. It cannot tell you whether an external system committed a request when the response was lost.&lt;/p&gt;

&lt;p&gt;So run the test you would rather skip. Fail the action at the worst possible moment, then check whether it recovered, whether you can prove who did what, and whether the same refund can go out twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.restate.dev/ai/patterns/durable-agents" rel="noopener noreferrer"&gt;Restate durable agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.restate.dev/use-cases/ai-agents" rel="noopener noreferrer"&gt;Restate AI agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.diagrid.io/catalyst?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid Catalyst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/ai-agents?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid AI agents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Kestra or Diagrid Catalyst for AI Workflow Orchestration?</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Wed, 05 Aug 2026 09:00:00 +0000</pubDate>
      <link>https://dev.to/diagrid/kestra-or-diagrid-catalyst-for-ai-workflow-orchestration-nen</link>
      <guid>https://dev.to/diagrid/kestra-or-diagrid-catalyst-for-ai-workflow-orchestration-nen</guid>
      <description>&lt;p&gt;"One orchestrator for everything" sounds like a clean platform strategy. It also packs three different execution problems into one word. A data pipeline, an infrastructure rollout, and an AI agent all have steps in them. That does not mean they want the same authoring model, the same recovery semantics, or the same governance boundary.&lt;/p&gt;

&lt;p&gt;That gap is what to look at when you compare &lt;a href="https://kestra.io/" rel="noopener noreferrer"&gt;Kestra&lt;/a&gt; and &lt;a href="https://www.diagrid.io/?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid Catalyst&lt;/a&gt;. Kestra is a declarative orchestration platform that covers data, infrastructure, business, and AI workflows. Catalyst is a durable execution and governance platform for applications, workflows, agents, and MCP servers, built on Dapr. They overlap, and they start from different places.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the shape of the workload
&lt;/h2&gt;

&lt;p&gt;For scheduled ETL, infrastructure automation, or a business flow that crosses several tools, a declarative control plane is an advantage rather than a tax. Kestra defines workflows in YAML, has a large plugin ecosystem, and manages flows through a UI and Git. Its documentation now also covers AI workflows and AI Agent tasks that can use memory and tools and pick actions at runtime.&lt;/p&gt;

&lt;p&gt;The calculation changes when the agent already exists. If it is written in LangGraph, CrewAI, Microsoft Agent Framework, Google ADK, or another supported framework, then rewriting it as a platform-specific flow is a rewrite nobody asked for. Catalyst's pitch is that you keep the framework and wrap durable workflow execution, identity, policy, and observability around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Does it support AI" is the wrong row in the table
&lt;/h2&gt;

&lt;p&gt;Both products support AI use cases, so the answer is yes twice so this question does not bring you closer to the perfect product fit. These questions separate them better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the agent authored inside the orchestration platform, or does it arrive from an external framework?&lt;/li&gt;
&lt;li&gt;What is the durable unit: a task, a workflow activity, an agent step, or a tool call?&lt;/li&gt;
&lt;li&gt;How does a dynamic decision get reconstructed after a failure?&lt;/li&gt;
&lt;li&gt;How are agent-to-tool permissions enforced?&lt;/li&gt;
&lt;li&gt;Who runs the control plane, the data plane, the workers, and the state stores?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those answers shape the developer experience and your Day-2 operations far more than an AI checkbox does.&lt;/p&gt;

&lt;h2&gt;
  
  
  One platform strategy, more than one abstraction
&lt;/h2&gt;

&lt;p&gt;Kestra is the better fit when teams want declarative orchestration across data, scripts, APIs, and infrastructure, with a central catalog of flows and plugins to look at.&lt;/p&gt;

&lt;p&gt;Catalyst is the better fit when the agent frameworks in use are a deliberate developer choice, and the platform team wants durability, identity, and governance to come from one layer without replacing those frameworks.&lt;/p&gt;

&lt;p&gt;Running both is a legitimate answer. A general-purpose orchestrator can trigger a durable agent as a bounded service, or a Catalyst workflow can call an external data pipeline. Draw that boundary where ownership and failure semantics put it, and ignore where a vendor would prefer it.&lt;/p&gt;

&lt;p&gt;The feature table does not decide this. Ask which execution model makes each of your workloads easier to build, recover, secure, and explain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/ai-agents/?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid AI agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kestra.io/docs/ai-tools/ai-agents" rel="noopener noreferrer"&gt;Kestra AI agents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Orkes Conductor or Diagrid Catalyst for Multi-Agent Workflows?</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Tue, 04 Aug 2026 12:25:58 +0000</pubDate>
      <link>https://dev.to/diagrid/orkes-conductor-or-diagrid-catalyst-for-multi-agent-workflows-1gjc</link>
      <guid>https://dev.to/diagrid/orkes-conductor-or-diagrid-catalyst-for-multi-agent-workflows-1gjc</guid>
      <description>&lt;p&gt;A multi-agent support flow is still a distributed system. You can make it sound less scary by giving the components friendlier names but the timeouts and the duplicate calls remain part of the system, and so does the question of who owned the handoff that failed.&lt;/p&gt;

&lt;p&gt;For example; A triage agent reads a ticket, an account agent fetches customer context, a policy agent checks entitlements, and an action agent calls the order service. Somewhere between the policy decision and the refund API, a worker dies.&lt;/p&gt;

&lt;p&gt;At 2 a.m. I care about a couple of things: which step completed, whether the refund can safely repeat, who owned the failed handoff, what an operator can do next, and whether the agent was allowed to make that call at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Orkes Conductor's operating model
&lt;/h2&gt;

&lt;p&gt;Orkes Conductor coordinates tasks and workers through workflow definitions stored as JSON, and you can author those definitions in code, through the API, or in a visual builder. The documentation covers static and dynamic workflows, human tasks, event-driven flows, AI tasks, agentic orchestration, and MCP exposure. Orkes also positions Conductor as a platform where existing agents and workflows can invoke one another.&lt;/p&gt;

&lt;p&gt;If your platform is already organized around microservice workers and explicit task definitions, that model makes sense. The workflow is a visible coordinator, workers can stay polyglot, and retries and state are handled centrally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Catalyst's operating model
&lt;/h2&gt;

&lt;p&gt;Catalyst builds on Dapr and treats workflows, agents, MCP servers, and services as workloads on one execution and governance plane. Agents can stay in the frameworks they already run in, while durable runners turn reasoning and tool operations into workflow activities. App identities and policies control which workloads may call other applications or MCP servers.&lt;/p&gt;

&lt;p&gt;The interesting part is not the diagram. It is what ends up inside a single runtime boundary: recovery, communication, identity, policy, and operational inspection work the same way for agent and non-agent components.&lt;/p&gt;

&lt;h2&gt;
  
  
  Walk the failure, not the feature list
&lt;/h2&gt;

&lt;p&gt;Run the same scenario on both platforms.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Complete triage and account lookup.&lt;/li&gt;
&lt;li&gt;Let the policy agent approve a refund.&lt;/li&gt;
&lt;li&gt;Kill the action worker during the refund call.&lt;/li&gt;
&lt;li&gt;Restore service and watch what recovers.&lt;/li&gt;
&lt;li&gt;Inspect the execution record and the authorization path.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then ask whether completed steps replay or re-execute, how the refund call is made idempotent, how an operator retries or terminates the run, and how credentials are scoped. A product page that says "durable" will not answer any of that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where each may fit
&lt;/h2&gt;

&lt;p&gt;Orkes is a strong candidate if you want Conductor's task-and-worker model stretched across microservices, APIs, humans, and AI, with workflows managed visually and as JSON.&lt;/p&gt;

&lt;p&gt;Catalyst is worth evaluating if you already run Dapr, or several agent frameworks, and you want workload identity, policy-controlled communication, durable execution, and deployment governance to come from one platform.&lt;/p&gt;

&lt;p&gt;Do not pick on the number of built-in tasks. Pick on the failure contract and the operating contract, because what saves you at 2 a.m. is an on-call engineer who can repair the run without guessing which agent did what.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/architecture/?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid Catalyst architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/ai-agents/?utm_source=dev-to&amp;amp;utm_medium=article" rel="noopener noreferrer"&gt;Diagrid Catalyst agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://orkes.io/content/developer-guides/workflows" rel="noopener noreferrer"&gt;Orkes workflow overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://orkes.io/content/ai-orchestration" rel="noopener noreferrer"&gt;Orkes AI orchestration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Camunda or Diagrid Catalyst for AI Workflows With Human Approval?</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Mon, 03 Aug 2026 12:42:17 +0000</pubDate>
      <link>https://dev.to/diagrid/camunda-or-diagrid-catalyst-for-ai-workflows-with-human-approval-36j6</link>
      <guid>https://dev.to/diagrid/camunda-or-diagrid-catalyst-for-ai-workflows-with-human-approval-36j6</guid>
      <description>&lt;p&gt;In a regulated workflow, "the agent made a reasonable decision" does not count as an audit trail. Someone still has to show who authorized the action, which controls applied, and where a human could have stepped in.&lt;/p&gt;

&lt;p&gt;So Camunda and Diagrid Catalyst are not two versions of the same workflow product, and comparing them that way leads to the wrong choice. Camunda starts from end-to-end process orchestration and BPMN. Catalyst starts from durable, governed execution for applications, workflows, agents, and MCP servers. Both address AI now, but they enter the problem at different control boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Different approaches
&lt;/h2&gt;

&lt;p&gt;Take an insurance claim. Deterministic steps validate coverage and fetch policy data. An AI agent summarizes the evidence and flags anomalies. A human approves or rejects the recommendation. Then a payment service does something that changes state.&lt;/p&gt;

&lt;p&gt;Camunda is strong at making that whole process explicit. Its agentic orchestration documentation describes AI agents inside BPMN workflows, next to human tasks, deterministic rules, and AI-driven decisions. That is worth a lot when business and technology teams need one process model they both work from.&lt;/p&gt;

&lt;p&gt;Catalyst treats agents as durable workflows and puts the weight on recovery, identity, policy, and observability in the execution layer. That fits better when the AI part is not one boxed task but an agent that may call tools, delegate to other agents, or run in a different environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four questions that decide the fit
&lt;/h2&gt;

&lt;p&gt;Who owns the process model? If business analysts and process owners have to see and change an end-to-end BPMN model, Camunda has the natural advantage. If developers own the agent code in frameworks they already use, a runtime that preserves those frameworks probably fits better.&lt;/p&gt;

&lt;p&gt;Where does the non-determinism live? A bounded AI task inside a stable process is a different design problem from an agent that chooses its next step at runtime. Settle that question before you pick the orchestration layer.&lt;/p&gt;

&lt;p&gt;What do you have to prove? An audit may want more than a diagram and some logs. It may want execution history, identity, the authorization decisions that were made, lineage, and evidence that the records were not altered afterwards. Diagrid's verifiable execution positioning is worth checking against the specific compliance requirement in front of you rather than accepting it as a generic checkbox.&lt;/p&gt;

&lt;p&gt;Where does it have to run? Camunda and Catalyst both offer deployment choices, but the real constraint is which topology your organization has already approved: SaaS, your own infrastructure, private connectivity, or a fully isolated environment. Confirm the exact edition and who is responsible for what.&lt;/p&gt;

&lt;h2&gt;
  
  
  You may not have to pick one
&lt;/h2&gt;

&lt;p&gt;An enterprise does not always need a single product to own every layer. Camunda can coordinate the formal business process while a durable agent runtime executes a complicated AI task behind a service boundary. It works the other way too. Catalyst workflows can model human approval without bringing BPMN into it, when the process is mostly owned by developers.&lt;/p&gt;

&lt;p&gt;Choose Camunda when BPMN, human work, and process transparency are the center of the design. Evaluate Catalyst when agent durability, framework choice, workload identity, tool policy, and governance across environments are what you spend your time on.&lt;/p&gt;

&lt;p&gt;Whichever you pick, the useful test is whether the control boundary is obvious afterwards: an auditor can find the evidence, an operator knows what can be resumed, a developer knows where side effects belong, and everyone knows the point at which the machine is allowed to act on its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.camunda.io/docs/components/agentic-orchestration/agentic-orchestration-overview/" rel="noopener noreferrer"&gt;Camunda agentic orchestration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/ai-agents/" rel="noopener noreferrer"&gt;Diagrid AI agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/operate/" rel="noopener noreferrer"&gt;Operating Catalyst&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Durable Execution, Now Built for Agents</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Tue, 28 Jul 2026 15:38:38 +0000</pubDate>
      <link>https://dev.to/diagrid/what-verifiable-execution-adds-on-top-of-durable-execution-24k1</link>
      <guid>https://dev.to/diagrid/what-verifiable-execution-adds-on-top-of-durable-execution-24k1</guid>
      <description>&lt;p&gt;Durable execution has become an expectation for agent workloads. If the process dies halfway through a refund, the run resumes at the last completed step instead of re-issuing it. What it does not give you is proof. Replaying a run is not the same as proving what ran.&lt;/p&gt;

&lt;h3&gt;
  
  
  The missing piece is verifiability
&lt;/h3&gt;

&lt;p&gt;Verifiable execution is a record of what ran, in what order, and what it produced, where every LLM call, tool call and decision is cryptographically signed and traceable to its source. Durability keeps work alive. Verifiability makes it checkable by someone who was not there.&lt;/p&gt;

&lt;h3&gt;
  
  
  More autonomy, less reproducibility
&lt;/h3&gt;

&lt;p&gt;In a deterministic workflow the steps live in your code. You can diff them and point at the line that made a decision. As you hand control to the model, that structure moves out of the code and into the run itself. The model picks which tools to call and in what order, so two runs on the same input can take different paths, and nothing in your repository records which path a given run took.&lt;/p&gt;

&lt;p&gt;Most teams make that trade on purpose. The flexibility is what lets an agent settle a messy dispute that no if-statement anticipated. The cost arrives later, when someone asks why a particular refund was denied. A stack trace tells you what your code did. It cannot tell you why the model chose one tool over another, and re-running the agent produces a fresh set of decisions rather than the ones you need to account for.&lt;/p&gt;

&lt;p&gt;So the structure you take out of your code has to reappear underneath it, as a record rather than as more branching logic: every call the agent made, in order, with the inputs and outputs that led to the next step, each entry signed so it can be verified later.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Catalyst is built for
&lt;/h3&gt;

&lt;p&gt;Declarative workflow engines, where the flow lives outside your code, do not integrate natively with agent frameworks. Code-first engines integrate, but leave the run unverifiable, so you can resume it without being able to prove it. Agentic durable execution takes a third route: keep the framework you already use and make its execution durable and verifiable.&lt;/p&gt;

&lt;p&gt;That is what Diagrid Catalyst is built for. Add a package to LangGraph, Microsoft Agent Framework, Google ADK, AWS Strands, OpenAI Agents SDK or CrewAI, and you get durable and verifiable execution through workflows, attestation, cryptographic signing, and SPIFFE-based workload identity.&lt;/p&gt;

&lt;p&gt;Durable execution is becoming table stakes for agents. Verifiable execution is what makes them trusted.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.diagrid.io/blog/what-is-agentic-durable-execution?utm_source=devto&amp;amp;utm_campaign=catalyst-2-0-release" rel="noopener noreferrer"&gt;full post&lt;/a&gt; on diagrid.io to learn more.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Durable execution for LangGraph agents: resuming from the exact failed step</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Tue, 28 Jul 2026 13:30:22 +0000</pubDate>
      <link>https://dev.to/diagrid/durable-execution-for-langgraph-agents-resuming-from-the-exact-failed-step-e0a</link>
      <guid>https://dev.to/diagrid/durable-execution-for-langgraph-agents-resuming-from-the-exact-failed-step-e0a</guid>
      <description>&lt;p&gt;LangGraph checkpointing lets an agent resume from saved state. In production that leaves a gap: when a model call times out or a tool fails mid-run, something has to notice, decide where to restart, and finish the run. That is usually code you wrote.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where checkpointing stops
&lt;/h3&gt;

&lt;p&gt;A checkpoint records what the graph completed before the failure. It does not retry the failed step, know which side effects already ran, or restart a process that died. That logic becomes your own layer of retry wrappers and status flags.&lt;/p&gt;

&lt;h3&gt;
  
  
  What durable execution adds
&lt;/h3&gt;

&lt;p&gt;Diagrid Catalyst records each step durably, so the runtime owns recovery:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the run resumes at the failed step, not at the start of the graph&lt;/li&gt;
&lt;li&gt;completed steps are not re-executed, so you skip repeat model calls&lt;/li&gt;
&lt;li&gt;every step lands in a signed record you can audit&lt;/li&gt;
&lt;li&gt;one reliability layer covers cloud, edge, and on-prem&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What the webinar covers
&lt;/h3&gt;

&lt;p&gt;On Aug 11 we take a working LangGraph agent, force a failure mid-run, then add Catalyst and trigger the same failure. This time it resumes and finishes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.diagrid.io/webinars/durable-langgraph-agents?utm_source=dev-to&amp;amp;utm_medium=social&amp;amp;utm_campaign=webinars" rel="noopener noreferrer"&gt;Save your seat at www.diagrid.io/webinars/durable-langgraph-agents&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>Temporal vs. Diagrid Catalyst: Which Durable Execution Approach Fits a Long-Running AI Research Agent?</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Tue, 28 Jul 2026 12:59:17 +0000</pubDate>
      <link>https://dev.to/diagrid/temporal-vs-diagrid-catalyst-which-durable-execution-approach-fits-a-long-running-ai-research-37j7</link>
      <guid>https://dev.to/diagrid/temporal-vs-diagrid-catalyst-which-durable-execution-approach-fits-a-long-running-ai-research-37j7</guid>
      <description>&lt;p&gt;Getting a research agent to call three tools in a demo is easy. The hard part starts when the seventh tool call times out and the first six have already spent money and changed state somewhere.&lt;/p&gt;

&lt;p&gt;So this is a question about recovery, not about AI frameworks. Temporal and &lt;a href="https://www.diagrid.io/catalyst" rel="noopener noreferrer"&gt;Diagrid Catalyst&lt;/a&gt; both do durable execution, and both position themselves for AI workloads. What separates them is what each one asks you to build and operate around your agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the failure contract
&lt;/h2&gt;

&lt;p&gt;Say your agent searches internal documents, calls an external research API, asks an LLM to synthesize the evidence, and then waits for a human to approve the result. Before that design goes to production, you need answers to four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Which completed steps will not run again after a crash?&lt;/li&gt;
&lt;li&gt;How do you stop non-idempotent tool calls from firing twice?&lt;/li&gt;
&lt;li&gt;Can the agent wait for hours without holding a process open?&lt;/li&gt;
&lt;li&gt;Can an operator reconstruct what the agent did, and why?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Temporal treats failure-prone work as activities, coordinated by durable workflows. It persists workflow state and rebuilds it by replaying history. You can self-host Temporal or use Temporal Cloud, and Temporal's current materials cover agentic applications and framework integrations directly.&lt;/p&gt;

&lt;p&gt;Catalyst builds on Dapr Workflows. Your agent runs as a durable workflow, and Catalyst ships runners for established agent frameworks. Diagrid's documentation describes a shared runtime layer that handles durability, workload identity, policy enforcement, and operational visibility across agents, workflows, MCP servers, and applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the approaches diverge
&lt;/h2&gt;

&lt;p&gt;Temporal fits when you want your application logic written in its workflow-and-activity model. The conceptual model is mature, language support is broad, and there is a large body of distributed-systems guidance to learn from. The cost is fluency. Someone on your team has to understand Temporal's execution semantics well enough to reason about replay, and you still decide separately where agent identity, access policy, and platform governance live.&lt;/p&gt;

&lt;p&gt;Catalyst fits when your agents already exist in LangGraph, CrewAI, Microsoft Agent Framework, Google ADK, OpenAI Agents, or another supported framework, and you want to keep that choice. It sits underneath those frameworks as a shared execution and governance layer rather than replacing them.&lt;/p&gt;

&lt;p&gt;That difference grows with the number of agent teams you have. A single research-agent project can standardize on a workflow SDK and be done. A platform team supporting Python, .NET, and TypeScript agents at the same time will care more about a framework-agnostic layer and policies it can set in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would take to architecture review
&lt;/h2&gt;

&lt;p&gt;Pick Temporal if workflow-as-code is the application model you actually want, you are willing to build around its abstractions, and its ecosystem and operating model match your platform strategy.&lt;/p&gt;

&lt;p&gt;Select Catalyst if keeping your agent-framework choice matters, if you need workload identity and policy applied to tool calls, or if you have to govern agents across several deployment environments.&lt;/p&gt;

&lt;p&gt;Neither choice saves you from designing idempotent side effects or deciding when a human gets pulled in. Durable execution changes what happens after a failure. It does not make a dangerous tool call safe.&lt;/p&gt;

&lt;p&gt;Then run an experiment with either platform. Kill the agent after an expensive model call but before a state-changing tool call, and look at what resumes, what runs twice, and what evidence is left behind. Whichever platform makes that behavior easiest to explain to your developers, your operators, and your security reviewers is the one to pick.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.diagrid.io/catalyst" rel="noopener noreferrer"&gt;Diagrid Catalyst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/durable-execution/" rel="noopener noreferrer"&gt;Diagrid durable execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/verifiable-execution/" rel="noopener noreferrer"&gt;Diagrid verifiably execution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diagrid.io/concepts/ai-agents/" rel="noopener noreferrer"&gt;Diagrid AI agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://temporal.io/" rel="noopener noreferrer"&gt;Temporal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>A free, open-source Dev Dashboard for local Dapr development</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Mon, 20 Jul 2026 15:25:25 +0000</pubDate>
      <link>https://dev.to/diagrid/a-free-open-source-dev-dashboard-for-local-dapr-development-11ip</link>
      <guid>https://dev.to/diagrid/a-free-open-source-dev-dashboard-for-local-dapr-development-11ip</guid>
      <description>&lt;p&gt;Developing Dapr applications means you're dealing with multiple apps and sidecars, looking at several terminals for log output and component files. There is now a free, open-source Dev Dashboard that brings it together in one live view. It runs as a single binary and auto-discovers apps started with dapr run, .NET Aspire, Docker Compose, or Testcontainers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F56mtaqemtqyxfe14x534.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F56mtaqemtqyxfe14x534.png" alt="Application overview" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  See everything Dapr at a glance
&lt;/h2&gt;

&lt;p&gt;The dashboard shows your running apps with health, ports, and process IDs, plus their loaded components, actor types, and pub/sub subscriptions. You can also tail sidecar and application logs in the same window, with level coloring and keyword highlighting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debug workflows without guesswork
&lt;/h2&gt;

&lt;p&gt;For Dapr Workflows you can list executions across your apps, inspect event history and input/output per step, and terminate or purge instances. The data is read straight from your local state store, so you see the real state rather than a copy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffp4svcpzbevs2dp3dr04.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffp4svcpzbevs2dp3dr04.png" alt="Workflow overview" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrzbh8f2qz0r4ak2erpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrzbh8f2qz0r4ak2erpc.png" alt="Workflow detail" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build components and policies in a UI
&lt;/h2&gt;

&lt;p&gt;Two guided builders generate Dapr component and resiliency YAML from the full catalog, so you can skip hand-editing files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Download &amp;amp; Install
&lt;/h2&gt;

&lt;p&gt;You can view the project on GitHub: &lt;a href="https://github.com/diagridio/dev-dashboard" rel="noopener noreferrer"&gt;https://github.com/diagridio/dev-dashboard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can install the dashboard directly via the terminal:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Install (macOS / Linux)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sSL&lt;/span&gt; https://raw.githubusercontent.com/diagridio/dev-dashboard/main/scripts/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Install (Windows, PowerShell)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;iwr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-useb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/diagridio/dev-dashboard/main/scripts/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Give it a try when you're developing and testing your Dapr applications. Once you have it running, come share how it works for you in the &lt;a href="https://diagrid.ws/dapr-discord" rel="noopener noreferrer"&gt;Dapr Discord&lt;/a&gt;. If you hit a bug or have an idea to make it better, open an issue on the &lt;a href="https://github.com/diagridio/dev-dashboard/issues" rel="noopener noreferrer"&gt;dev-dashboard repository&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>dapr</category>
    </item>
    <item>
      <title>Making Microsoft Agent Framework agents durable with Dapr Workflow</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Tue, 07 Jul 2026 15:48:50 +0000</pubDate>
      <link>https://dev.to/diagrid/making-microsoft-agent-framework-agents-durable-with-dapr-workflow-48j0</link>
      <guid>https://dev.to/diagrid/making-microsoft-agent-framework-agents-durable-with-dapr-workflow-48j0</guid>
      <description>&lt;p&gt;LLM calls are slow, costly, and non-deterministic, so a multi-agent app that crashes halfway through wastes time and money re-running everything. Dapr Workflow turns a set of MAF agents into a durable, fault-tolerant app that resumes from saved state and replays completed agent calls instead of hitting the LLM again.&lt;/p&gt;

&lt;p&gt;There's a new free Dapr University track uses &lt;code&gt;PrDigest&lt;/code&gt;, a .NET Aspire app that triages open Dapr PRs. You'll inspect the AppHost configuration, MAF agent registration, and the agent orchestration.&lt;/p&gt;

&lt;p&gt;Try the track &lt;a href="https://www.diagrid.io/university/ai-agents-maf?utm_source=dev-to&amp;amp;utm_medium=social&amp;amp;utm_campaign=agents" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>dapr</category>
      <category>ai</category>
      <category>maf</category>
    </item>
    <item>
      <title>Keep your Dapr Agent's answers current with a Tavily web search tool</title>
      <dc:creator>Marc Duiker</dc:creator>
      <pubDate>Tue, 16 Jun 2026 13:46:15 +0000</pubDate>
      <link>https://dev.to/diagrid/keep-your-dapr-agents-answers-current-with-a-tavily-web-search-tool-30d0</link>
      <guid>https://dev.to/diagrid/keep-your-dapr-agents-answers-current-with-a-tavily-web-search-tool-30d0</guid>
      <description>&lt;p&gt;LLMs are frozen at training time, so they return confident answers that may already be out of date. &lt;a href="https://www.diagrid.io/university/dapr-agents-web-context?utm_source=dev-to&amp;amp;utm_medium=social&amp;amp;utm_campaign=agents" rel="noopener noreferrer"&gt;This free, self-paced Dapr University track&lt;/a&gt; shows you how to close that gap in Python by giving an agent access to the live web.&lt;/p&gt;

&lt;p&gt;You'll build an expert agent with Dapr Agents that calls a Tavily search tool to fetch current information, then reasons over those results through the provider-agnostic Dapr Conversation API. Combining tool calls with agent reasoning keeps answers grounded in today's data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This university track requires an OpenAI API key and a free Tavily key.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Start the free &lt;a href="https://www.diagrid.io/university/dapr-agents-web-context?utm_source=dev-to&amp;amp;utm_medium=social&amp;amp;utm_campaign=agents" rel="noopener noreferrer"&gt;track here&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dapr</category>
    </item>
  </channel>
</rss>
