In the world of software development, complexity is the enemy. We strive to build systems that are modular, scalable, and easy to maintain. Yet, when it comes to automating business operations, we often fall back on brittle scripts and tangled processes. What if we could apply the same principles of modern software engineering to our workflows?
Enter Business-as-Code. At devs.do, we're pioneering this paradigm, allowing you to transform complex business logic into scalable, version-controlled Services-as-Software. The fundamental unit that makes this all possible is the .do Agent.
This post will dissect the anatomy of a .do agent, showing you how these powerful, single-purpose building blocks are the key to unlocking streamlined and robust agentic workflows.
Before we dive into the agent itself, let's quickly recap what we mean by an Agentic Workflow.
Think of it as a declarative to-do list for a team of specialized AI agents. Instead of writing complex imperative code that details how to perform every single step, you simply define what needs to be done by specifying a sequence of agents and the data to pass between them.
An Agentic Workflow:
This approach moves you from writing code to composing systems, which is where .do agents shine.
So, what exactly is a .do agent?
A .do agent is a single-purpose, autonomous, and platform-managed service that executes one specific task exceptionally well.
Imagine a well-organized workshop. You don't have one giant, clunky machine that does everything poorly. Instead, you have a set of specialized tools: a drill, a saw, a welder. Each one is designed for a specific job.
.do agents are your digital tools. They are the "verbs" in your workflow sentence, the individual functions in your larger application. An agent might clone a git repository, run a security scan, send a Slack message, or query a database.
Theory is great, but code makes it real. Let's look at the workflow definition inside a "Doer" (a complete Service-as-Software on devs.do). This example defines a service that analyzes a git repository.
// Define the agentic workflow
workflow: [
{ agent: 'git.clone', params: { url: '{{input.repoUrl}}' } },
{ agent: 'linter.run', params: { path: './cloned-repo' } },
{ agent: 'security.scan', params: { path: './cloned-repo' } },
],
Let's break this down step-by-step:
{ agent: 'git.clone', params: { url: '{{input.repoUrl}}' } }
{ agent: 'linter.run', ... }
{ agent: 'security.scan', ... }
In just three declarative lines, you've orchestrated a complex process that would have otherwise required scripting API calls, handling authentication, managing a file system, and chaining processes together manually.
Building with .do agents isn't just a different syntax; it's a fundamentally better way to build operational logic.
The .do agent is more than just a function call. It's a managed, resilient, and reusable building block for codifying your entire business. By chaining these agents together into Agentic Workflows, you can move from writing brittle automation scripts to engineering true Services-as-Software.
It's time to transform your operations into code.
Ready to start composing? Explore the devs.do platform and build your first agentic workflow today.