<?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: UiPath</title>
    <description>The latest articles on DEV Community by UiPath (uipath).</description>
    <link>https://dev.to/uipath</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%2Forganization%2Fprofile_image%2F3278%2F54a7a2e2-f933-423f-90ce-05b817dfe1ee.png</url>
      <title>DEV Community: UiPath</title>
      <link>https://dev.to/uipath</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uipath"/>
    <language>en</language>
    <item>
      <title>Everything Is an Agent Now, and they are arguing with me</title>
      <dc:creator>Cobus Bernard 🌩🥑🇿🇦 in 🇺🇸</dc:creator>
      <pubDate>Tue, 18 Aug 2026 19:58:34 +0000</pubDate>
      <link>https://dev.to/uipath/everything-is-an-agent-now-and-they-are-arguing-with-me-5fpa</link>
      <guid>https://dev.to/uipath/everything-is-an-agent-now-and-they-are-arguing-with-me-5fpa</guid>
      <description>&lt;p&gt;I joined UiPath in July 2026 after 7+ years as a Developer Advocate at AWS. Just over a month in, and I've had to unlearn something I've depended on when building automations most of my career: that some of my steps in my code now have &lt;strong&gt;&lt;em&gt;opinions&lt;/em&gt;&lt;/strong&gt;. This is where &lt;em&gt;non-deterministic&lt;/em&gt; has been creeping into the way I build things.&lt;/p&gt;

&lt;p&gt;First, a confession: I spent the better part of a decade building systems whose entire appeal was that they did &lt;em&gt;exactly&lt;/em&gt; what I told them to. &lt;a href="https://github.com/cobusbernard/hashitalks-africa-demo/blob/master/environments/Makefile" rel="noopener noreferrer"&gt;Terraform plans&lt;/a&gt;. &lt;a href="https://builder.aws.com/content/2hsUp8ZV7UoQpVCApnaTOBljCai/building-a-serverless-web-scraper-with-a-little-lot-of-help-from-amazon-q-part-1" rel="noopener noreferrer"&gt;Lambda functions&lt;/a&gt;. Pipelines that either went green or red and produced the same output every single time given the same input. Determinism was the whole product. &lt;em&gt;Enter stage-left: non-determinism.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; the word "agent" has been stretched so thin it's basically transparent, and the most useful thing I've learnt isn't a product, it's a line: &lt;em&gt;Work is now split into steps for known work (deterministic) and ones that benefit from judgement (non-deterministic)&lt;/em&gt;. Almost everything in the UiPath agentic stack makes sense the moment you know which side of that line a given piece is standing on. These are my notes from figuring that out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The line
&lt;/h2&gt;

&lt;p&gt;Here's the trap I walked straight into: I assumed "agentic" meant &lt;em&gt;"put an LLM in the middle and let it sort things out"&lt;/em&gt;. So my first instinct was to reach for an agent for everything, including the parts that were an &lt;code&gt;if&lt;/code&gt; statement wearing a very expensive hat.&lt;/p&gt;

&lt;p&gt;Non-determinism is a cost, not a feature. You pay for it in latency, in tokens, and in the thing that actually matters at enterprise scale: &lt;em&gt;explainability&lt;/em&gt;. When the finance team asks &lt;em&gt;"why invoice #4471 got rejected"&lt;/em&gt;, &lt;del&gt;"it worked on my computer"&lt;/del&gt; &lt;em&gt;"the model felt strongly about it"&lt;/em&gt; is not an answer anyone accepts. So the question for every step in a process becomes: &lt;strong&gt;does this step genuinely need judgement, or do I just not want to write the rules down?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This the the decision tree I ended up with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    Does this step need judgement?
                                   │
                 ┌─────────────────┴─────────────────┐
                NO                                  YES
                 │                                   │
         Is there an API?                    Can it be wrong?
                 │                                   │
        ┌────────┴────────┐                 ┌────────┴─────────┐
       YES               NO            low stakes         high stakes
        │                 │                 │                  │
 Coded Function    RPA process        Coded Agent      Coded Agent
 Python, typed,    .xaml - drives     LLM + tools,     + human approval
 no LLM            the UI of that     fully traced     (Action Center)
                   1997 ERP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you noticed the right-most branch for &lt;em&gt;"Can it be wrong?"&lt;/em&gt; doesn't have the usual "Yes" / "No" branching, &lt;strong&gt;there is no option for "No"&lt;/strong&gt;, LLMs will always have a non-zero change of getting it wrong, this is the &lt;em&gt;non-deterministic&lt;/em&gt; nature again. I keep coming back to this: "Agentic" in an enterprise doesn't mean "no humans." It means the human moves from &lt;em&gt;doing the work&lt;/em&gt; to &lt;em&gt;approving the interesting 4% of it where an incorrect decision has a high stakes impact&lt;/em&gt;, and the platform's job is to make that handoff a first-class node rather than a Slack message someone forgets to read.&lt;/p&gt;

&lt;h2&gt;
  
  
  The map
&lt;/h2&gt;

&lt;p&gt;Now that we've covered the mental model, here's roughly how I've mapped out the different UiPath products. This is my mental version, not an org chart:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌────────────────────────────────────────────────────────────┐
│ Studio Web · Agent Builder · your own editor + the uip CLI │ build
├────────────────────────────────────────────────────────────┤
│                                                            │
│                   M A E S T R O   F L O W                  │ orchestrate
│       the conductor - what runs, when, in what order,      │
│             and what happens when it goes wrong            │
│                                                            │
│ ┌───────────┐  ┌────────────┐  ┌──────────┐  ┌───────────┐ │
│ │   Coded   │  │   Coded    │  │  Human   │  │    RPA    │ │ do the 
│ │  Agents   │  │ Functions  │  │ approval │  │ processes │ │ work
│ │   (LLM)   │  │  (no LLM)  │  │  (HITL)  │  │  (.xaml)  │ │
│ └───────────┘  └────────────┘  └──────────┘  └───────────┘ │
│                                                            │
├────────────────────────────────────────────────────────────┤
│ Orchestrator · Integration Service · Data Fabric · IXP     │ ground 
│ jobs, queues, assets · SaaS connectors · entities · docs   │ floor
├────────────────────────────────────────────────────────────┤
│ AI Trust Layer + Governance - policies, guardrails, audit  │ the adults
└────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The part that surprised me is the bottom two layers. I came in expecting the agent frameworks to be the interesting bit, and they're genuinely good, but they're also the bit anyone can &lt;code&gt;pip install&lt;/code&gt;. What you can't &lt;code&gt;pip install&lt;/code&gt; is twenty years of &lt;em&gt;"this &lt;a href="https://docs.uipath.com/integration-service/automation-cloud/latest/user-guide/introduction?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;connector&lt;/a&gt; handles the fact that integration Z's session tokens expire weirdly on Tuesdays"&lt;/em&gt;. The ground floor is the moat, and the agentic layer is what finally makes it addressable by something other than a human clicking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coded Functions: the code you mostly know
&lt;/h2&gt;

&lt;p&gt;A &lt;a href="https://docs.uipath.com/functions/automation-cloud/latest/user-guide/about-functions?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;Coded Function&lt;/a&gt; is a deterministic unit of Python. Typed input, typed output, no LLM, no agent loop. You scaffold it with &lt;code&gt;uip functions new &amp;lt;name&amp;gt; -l py&lt;/code&gt;, and it looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pydantic&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BaseModel&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;uipath.tracing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;traced&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;invoice_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BaseModel&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;is_valid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
    &lt;span class="n"&gt;error_type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;      &lt;span class="c1"&gt;# populated on failure, empty on success
&lt;/span&gt;    &lt;span class="n"&gt;error_message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;

&lt;span class="nd"&gt;@traced&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;validate_invoice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;run_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;uipath&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;validate_invoice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Output&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_valid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;matches_purchase_order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;invoice_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;exc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;FAILED&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error_message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;exc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two things to notice, because I used them incorrectly on my first attempts. First, &lt;strong&gt;errors are returned, not raised&lt;/strong&gt;, you populate those &lt;code&gt;error_*&lt;/code&gt; fields rather than letting the exception escape, because the caller might be a flow that needs to route on the failure rather than just die. Second, the &lt;code&gt;@traced&lt;/code&gt; decorator: it makes the function show up in the platform's trace view alongside the LLM calls.&lt;/p&gt;

&lt;p&gt;Similar to how you specify function name as the entrypoint for a Lambda function, set the filename + function name in &lt;code&gt;uipath.json&lt;/code&gt;. This is used when deploying the solution to indicate it is a Function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"functions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"main"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"main.py:validate_invoice"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What is so special about a function: a Python Coded Function gets &lt;strong&gt;real job semantics&lt;/strong&gt;: an &lt;a href="https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/introduction?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;Orchestrator&lt;/a&gt; job ID, retries, scheduling, an audit trail. It's not a helper buried inside an agent's context window where nobody can see it fail. It's a first-class citizen that a flow, an agent, a BPMN process, or a plain API call can all invoke. Every time I've been tempted to give an agent "just one more tool," the better answer has usually been a function.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coded Agents: your framework, someone else's ops problem
&lt;/h2&gt;

&lt;p&gt;When the step &lt;em&gt;does&lt;/em&gt; need judgement, you write an actual &lt;a href="https://docs.uipath.com/agents/automation-cloud/latest/user-guide/about-coded-agents?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;coded agent&lt;/a&gt; in Python with the &lt;a href="https://docs.uipath.com/sdk/other/latest/developer-guide/using-agents-sdks?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;framework&lt;/a&gt; you'd have picked anyway: LangGraph, LlamaIndex, or OpenAI Agents. There's no proprietary DSL to learn. Your LangGraph graph is a LangGraph graph.&lt;/p&gt;

&lt;p&gt;The interesting part is what your agent reaches for at runtime:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              your Python agent (e.g. a LangGraph graph)
                              │
       ┌──────────────┬───────┴────────┬────────────────┐
       ▼              ▼                ▼                ▼
  LLM Gateway    Coded Function   IS connector     Context
  model access,  deterministic    Salesforce,      Grounding
  keys, policy,  helper you       NetSuite, SAP,   your indexed
  BYO models     already trust    Workday, …       documents
       │              │                │                │
       └──────────────┴───────┬────────┴────────────────┘
                              ▼
            every hop traced, every call governed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You never put a model key in your code, you go through the &lt;a href="https://docs.uipath.com/automation-cloud/automation-cloud/latest/admin-guide/about-ai-trust-layer?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;gateway&lt;/a&gt;, which is also where BYO-model configs and policies live. Tools come from the same catalogue the rest of the platform uses, so &lt;code&gt;create_process_tool&lt;/code&gt; lets an agent kick off an existing RPA process, and &lt;code&gt;create_escalation_tool&lt;/code&gt; lets it hand a decision to a human in &lt;a href="https://docs.uipath.com/action-center/automation-cloud/latest/user-guide/introduction?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;Action Center&lt;/a&gt; without you hand-rolling a task queue.&lt;/p&gt;

&lt;p&gt;And then there's the part that made me genuinely happy, because it's the part everyone skips: &lt;code&gt;uip codedagent eval&lt;/code&gt; runs your agent against an eval set with real evaluators before you ship it. The workflow assumes you'll write a smoke set. Tests for the non-deterministic parts, treated as table stakes rather than a blog post someone means to write. Coming from infrastructure, where "did the plan apply cleanly" was the whole test suite, I find this a healthy amount of paranoia.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flow: where it stops being a demo
&lt;/h2&gt;

&lt;p&gt;An agent on its own is a demo. A &lt;em&gt;process&lt;/em&gt; is a sequence of steps with branching, retries, humans, deadlines, and a nasty legacy system at the end of it. That's &lt;a href="https://docs.uipath.com/maestro/automation-cloud/latest/user-guide/overview?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;Maestro Flow&lt;/a&gt;: a &lt;code&gt;.flow&lt;/code&gt; project (JSON on disk, visual in &lt;a href="https://docs.uipath.com/studio-web/automation-cloud/latest/user-guide/overview?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;Studio Web&lt;/a&gt;, either way it's a real artifact you can diff) that wires everything above into something a business will actually run on a Tuesday.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  ┌─────────┐
  │ Trigger │  new mail lands in invoices@
  └────┬────┘
       ▼
  ┌──────────────────┐
  │ IXP extraction   │  pull the fields out of the attached PDF
  └────┬─────────────┘
       ▼
  ┌──────────────────┐
  │ Coded Function   │  validate + normalise
  │ validate_invoice │  no LLM - same input, same answer, always
  └────┬─────────────┘
       ▼
       ◆ amount &amp;gt; 10k or PO mismatch?
       │
   yes │                          no
  ┌────▼───────────┐               │
  │ Human approval │               │
  │ (Action Center)│               │
  └────┬───────────┘               │
       └──────────┬────────────────┘
                  ▼
  ┌──────────────────────────────────────┐
  │ Coded Agent: reconcile_discrepancies │
  │ LangGraph - reasons about the messy  │
  │ cases, escalates when unsure         │
  └────┬─────────────────────────────────┘
       ▼
  ┌──────────────────┐
  │ RPA process      │  keys it into the ERP that has no API
  │  (.xaml)         │  and, let's be honest, never will
  └──────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look at the mix in that diagram: exactly one node has an LLM in it. That's not me being conservative, that's the shape most real processes take. The agent earns its place on the messy branch, and everything else stays boring on purpose.&lt;/p&gt;

&lt;p&gt;The bit that isn't visible in a diagram is what happens when it breaks. A running flow is an &lt;em&gt;instance&lt;/em&gt; you can pause, resume, cancel or retry. Failures land as incidents with traces attached. The whole thing packages into a &lt;a href="https://docs.uipath.com/solutions-management/automation-suite/2.2510/user-guide/solution-components?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;solution&lt;/a&gt; (&lt;code&gt;.uipx&lt;/code&gt;) so the flow, its functions, its agents and their resource bindings are versioned and deployed together, instead of the alternative I know far too well, which is six repos, a Confluence page, and &lt;a href="https://www.hopedrivendevelopment.com/" rel="noopener noreferrer"&gt;hope driven development&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm poking at next
&lt;/h2&gt;

&lt;p&gt;I'm just over one month in, so treat all of the above as field notes rather than doctrine, I'm still finding the sharp edges (and cheerfully filing feedback about them). Next on my list: pushing much harder on evals, because "how do you know your agent still works after you changed the prompt" is the question I think the whole industry is currently &lt;del&gt;ignoring&lt;/del&gt; getting to, and &lt;a href="https://docs.uipath.com/agents/automation-cloud/latest/user-guide/mcp-servers?utm_source=devto&amp;amp;utm_medium=organic_social&amp;amp;utm_campaign=awareness&amp;amp;utm_team=devrel&amp;amp;utm_team_geo=global&amp;amp;utm_term=cb_20260818" rel="noopener noreferrer"&gt;MCP servers&lt;/a&gt; via AgentHub, where the tool-catalogue story gets a lot more interesting.&lt;/p&gt;

&lt;p&gt;If you're a cloud/DevOps person eyeing this space and wondering whether the "agentic" hype is real: it is, but not in the way the marketing implies. It's not that everything becomes an agent. It's that you finally get to put judgement &lt;em&gt;in&lt;/em&gt; a process without giving up the determinism of everything around it, and the interesting engineering is in drawing that line well.&lt;/p&gt;

&lt;p&gt;Come tell me where I've got it wrong. I'll be in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>llm</category>
    </item>
    <item>
      <title>Robotic Process Automation (RPA)</title>
      <dc:creator>Truong</dc:creator>
      <pubDate>Sat, 07 Nov 2020 13:57:58 +0000</pubDate>
      <link>https://dev.to/uipath/robotic-process-automation-rpa-29dn</link>
      <guid>https://dev.to/uipath/robotic-process-automation-rpa-29dn</guid>
      <description>&lt;p&gt;&lt;a href="https://www.uipath.com/" rel="noopener noreferrer"&gt;UiPath&lt;/a&gt; - It can handle complex processes. This tool is ideal for businesses of all sizes.&lt;br&gt;
UiPath pros:&lt;br&gt;
-no programming skills required;&lt;br&gt;
-easy to use with drag and drop capability;&lt;br&gt;
-it provides useful features for free.&lt;br&gt;
-Large marketplace applications&lt;br&gt;
UiPath minus:&lt;br&gt;
-limited coding functionality.&lt;br&gt;
I can personally suggest you to go for &lt;a href="https://academy.uipath.com/" rel="noopener noreferrer"&gt;UiPath Platform course&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>uipath</category>
      <category>rpa</category>
      <category>roboticprocessautomation</category>
    </item>
  </channel>
</rss>
