- Overview
- Getting Started with UiPath Agents
- Introduction
- Set up your environment
- Build the agent
- Test the agent
- Getting Started with UiPath Agents using LangGraph
- Building a Low-Code Agent in Studio Web
- Adding Tools to Your UiPath Agent
Validate the agent configuration, deploy to Studio Web, and run end-to-end tests in the debug panel.
With the agent validated locally, you are ready to upload it to Studio Web and run a live test.
Step 7 - Upload to Studio Web
Upload the solution to Studio Web from the solution directory:
uip solution upload .
uip solution upload .
A successful upload returns "Status": "Uploaded successfully" along with a SolutionId and a DesignerUrl you can open directly in a browser. Your agent now exists as an editable project in Studio Web.
Upload vs. deploy. uip solution upload sends the solution to Studio Web as an editable source project: the right target for development and testing. When you are ready to run the agent in production, you would instead use uip solution pack + uip solution publish to build a versioned package and deploy it to Orchestrator. This lab uses upload.
Step 8 - Test the agent in Studio Web
-
Log in to UiPath Automation Cloud and open Studio Web from the side navigation.
-
Find your MonsterSelector project in the project list and select it to open it.
-
Studio Web opens the agent in Agent Builder. Confirm you can see:
- The system prompt in the right panel
questDescriptionandmonsterslisted as inputsmonsterIndexlisted as the output
-
Select Debug in the top toolbar. In the input panel, paste the following JSON:
{ "questDescription": "A wealthy merchant's caravan has been attacked near the harbor. Eyewitnesses report tentacles, hypnotic powers, and strange psychic disturbances for miles around.", "monsters": [ {"index": "aboleth", "name": "Aboleth"}, {"index": "kraken", "name": "Kraken"}, {"index": "giant-octopus", "name": "Giant Octopus"}, {"index": "sea-hag", "name": "Sea Hag"}, {"index": "dryad", "name": "Dryad"} ] }{ "questDescription": "A wealthy merchant's caravan has been attacked near the harbor. Eyewitnesses report tentacles, hypnotic powers, and strange psychic disturbances for miles around.", "monsters": [ {"index": "aboleth", "name": "Aboleth"}, {"index": "kraken", "name": "Kraken"}, {"index": "giant-octopus", "name": "Giant Octopus"}, {"index": "sea-hag", "name": "Sea Hag"}, {"index": "dryad", "name": "Dryad"} ] } -
Select Save & Debug to run the agent.
-
Review the result in the Output panel. Verify that
monsterIndexcontains"aboleth"or"kraken"— both are defensible picks for a tentacled, mind-controlling aquatic horror. If you see"giant-octopus", the prompt may need tightening.
Agents are non-deterministic. Even with temperature: 0, the model can produce different outputs across runs. The goal is a defensible pick, not a specific string. Use the next two examples to develop a feel for how the agent reasons; consistent wrong answers are a signal to refine the prompt.
Try these additional inputs:
"questDescription": "Clear out the moon-worshipping coven abducting village children under the full moon"with candidates"sea-hag","night-hag","green-hag","dryad"; should return a hag variant"questDescription": "Slay the beast terrorizing the northern kingdoms with fire and ancient cruelty"with candidates"ancient-red-dragon","young-red-dragon","hell-hound","salamander"; should return"ancient-red-dragon"
What you built
You built and published a low-code agent using the UiPath CLI:
- Scaffolded a solution and agent project from the terminal.
- Configured the system prompt, input schema, and output schema by editing
agent.jsonandentry-points.jsondirectly. - Validated the project locally before uploading.
- Uploaded to Studio Web and ran a live test.
Key commands from this lab:
| Command | What it does |
|---|---|
uip solution init <name> | Create a new solution (the deployable container) |
uip agent init <path> | Scaffold a new low-code agent project and register it with the solution |
uip agent validate <path> | Validate the agent schema locally before upload |
uip solution upload . | Upload the solution to Studio Web as an editable project |
What's next
- Adding Tools to Your UiPath Agent - extend Monster Selector with a tool that calls the D&D 5e API directly, removing the
monsters[]input and letting the agent decide what to search for. - Orchestration patterns (future lab): your agent is callable from UiPath Flow projects, API workflows, and other agents.
- UiPath Agents documentation - full reference for low-code and coded agent capabilities.
- UiPath Community - forums, how-tos, and developer discussion
Next time, skip to the end. Now that you understand what each command does, your coding agent can run the entire sequence from a single prompt. With UiPath skills installed (Step 2), the skills carry the CLI knowledge, and your prompt only needs to supply what they cannot know: the agent name, inputs, outputs, and system prompt.
"Create a low-code UiPath agent named [AgentName]. Input schema: [list each field with name, type, and description]. Output schema: [list each field]. System prompt: '[your prompt]'. Validate and upload."
For example, to recreate the Monster Selector agent you built in this lab:
"Create a low-code UiPath agent named MonsterSelector. Input schema: questDescription (string, "Description of the quest") and monsters (array, "Candidate monsters from the D&D 5e API"). Output schema: monsterIndex (string, "The index slug of the chosen monster"). System prompt: 'You are an RPG game master helping to select the most thematically appropriate monster for a quest. Given a quest description and a list of candidate monsters (each with a name and an index slug), pick the ONE monster whose lore, environment, or threat level best fits the quest. Return ONLY the index slug of your chosen monster. Do not return the full object or any commentary - just the string slug. If multiple candidates fit, favor the most iconic or thematically resonant choice.' Validate and upload."