Skip to main content
This guide creates an agent that answers an HTTP request. It walks the dashboard from the New Agent page to a curl call that returns the model’s reply, then shows the same job done from a config file. Use it when you have a running instance and want your first agent, or a new one. The example is a two-stage pipeline named Question answerer. The first stage answers a question sent in a JSON body and the second rewrites the answer as one paragraph.

Before you begin

  • A running instance with the dashboard open. See Install ServFlow.
  • On a self-hosted instance, an LLM provider. In the sidebar under Configure, open Providers and add one if the list is empty. See Manage LLM providers. On ServFlow Cloud with a Starter or Pro plan, or with bought credit, you can skip this: a sub-agent with no provider uses built-in model access.

Create an agent in the UI

Create the agent

1

Open the Agents page and click New Agent

In the sidebar under Build, open Agents. Click New Agent in the top right. The New Agent page opens.
The Agents page with the New Agent button in the top right
2

Choose Start from scratch

Under How to start, choose Start from scratch. The Name and description section appears below it.
The How to start section with three cards: Start from scratch, Use a template, Import a config
Use a template installs a ready-made agent. Import a config takes a config you already have. Both leave you in the same editor as the rest of this guide.
3

Name the agent and choose an architecture

Enter a Name, for example Question answerer. The Architecture section appears.Choose Sequential pipeline and set Pipeline stages to 2 sub-agents. Each section keeps a summary of your answer on its right edge, so you can change an earlier choice at any point.
The New Agent page with the name filled in and Sequential pipeline selected
4

Click Create Agent

Click Create Agent. The editor opens on a canvas with four nodes from top to bottom: the entry, labelled Manual trigger, the sub-agents Analyze request and Compose response, and Final response. The agent is saved, and its id, question-answerer, is derived from the name.
The editor canvas showing the entry, two sub-agent nodes, and the final response

Set the entry

The entry decides how a run starts. A new agent starts as a trigger that runs by hand or on a schedule. To make it answer HTTP requests:
1

Open the entry panel

Click the Manual trigger node. The Entry panel opens on the right.
2

Choose the webhook entry type

Under Entry type, choose Webhook — a plain HTTP request starts the agent. A Path field appears.
3

Enter a path

Enter /ask. The entry node on the canvas relabels to /ask. The agent answers POST requests on that path.
The Entry panel set to Webhook with the path /ask
The other entry types connect the agent to GitHub, Telegram, or Discord, and each has its own fields. See Entry handlers.

Configure the sub-agents

1

Open the first sub-agent

Click the Analyze request node. Its panel opens.
2

Choose a provider

Under Provider, choose your provider. The panel confirms with “Calls” and the provider’s name. On ServFlow Cloud, you can leave it empty to use built-in model access.
3

Write the prompts

Under Instructions, enter a System prompt:
Enter a User prompt that reads the request body:
The body function reads a field from a JSON request body.
The Analyze request panel with a provider chosen and both prompts filled in
4

Configure the second sub-agent

Click the Compose response node. Choose the same provider and enter a System prompt:
Leave its User prompt empty. In a pipeline, a stage receives the previous stage’s reply.
5

Save

Click Save in the top bar. The button reads Saved, and the running server picks up the agent without a restart.

Verify

Test the agent from the editor first:
1

Click Run

Click Run in the top bar. The run dialog asks for a Request body.
2

Enter a request body and run

Enter the body and click Run:
The Run dialog with a JSON request body entered
3

Read the result

The Run panel shows Completed, a log of each sub-agent’s turn, and a Final response block with the reply and duration. New payload runs it again with a different body.
The Run panel showing a completed run and the final response
Then call it from outside. In a local servflowai instance the webhook is served at the entry path itself, so the response body is the agent’s reply:
In the hosted cloud, the agent has its own address. Open the entry panel and copy the full URL from the Path field. The body function only reads requests sent with Content-Type: application/json.

Create an agent from the CLI or MCP

If you keep agents in files, describe the agent in a JSON or YAML document and create it with the resource command. It writes to the same store the dashboard uses, and a running server starts serving the change without a restart.
The agent from the first section, reduced to one sub-agent, looks like this. Replace providerID with a provider id from servflowai resource provider list.
For every command, the shape of an agent, and the MCP management server, see the CLI reference.

Available entry handlers

Every entry type, its fields, and the variables it injects.

Agents

What an agent is made of: entries, their steps, and sub-agents.

Dynamic content

Template functions such as body, param, and secret.

Install ServFlow

Get a running instance if you do not have one yet.