Hi Everyone,
When creating an agent in UiPath, you need analyze files tool if you want agent to read files.
It is ok till here.
Problem is Analyze Files have a whole different subagent.
You can manage this via instructions only but not certainly.
The main agent creates this field based on your instruction input.
This creates consistency problem.
Why do we rely on agent to fill it?
A perfect agent just fails because main agent sends missing instructions to analyze files agent.
There is zero benefit for us here. I have already created a system prompt and analyze files agent never see it.
Main agent also uses system prompt only based on analyze files output and there is no double check or validation possibility for this part.
Please give control of this field to developer.
If i cant control this, there is no meaning of using UiPath agent.
Hey @Nurullah_Kus_Dogus_Teknol totally feel your frustration, and you’re not wrong. This is a real gap.
What’s actually happening: Analyze Files is a built-in subagent. The main agent dynamically generates the analysisTask string at runtime based on the conversation context. That subagent then runs with only that generated task + the file contents — it never sees your main agent’s system prompt, seed memory, or any carefully crafted instructions. So yes, the main agent acts like a “lossy translator” between your intent and the file analysis. When it paraphrases poorly or drops key constraints, the whole thing falls apart. Zero developer control over that handoff today.
Workarounds that actually work right now:
-
Lock down the main agent’s instructions — Add explicit rules in your main agent’s system prompt like: “When calling Analyze Files, pass the user’s exact question verbatim in the analysisTask. Do not summarize or rephrase.” This reduces (but doesn’t eliminate) the translation risk.
-
Create multiple specialized Analyze Files tools — You can add several analyze-attachments resources with different names and descriptions. For example, name one ExtractInvoiceFields with a description like “Use this to extract invoice number, date, and total from PDFs. The analysisTask must request these three fields specifically.” The main agent picks the tool based on description, which nudges it toward more consistent task generation.
-
Wrap it in a custom API workflow — Build a lightweight API workflow that accepts the file, has a hardcoded prompt template inside it, and returns the result. Your agent calls this as a process tool instead of the built-in. You get full control over the instructions sent to the LLM. More setup, but bulletproof consistency.
-
Go coded (Python/LangGraph) — If this predictability is critical for production, a coded agent lets you programmatically construct every subagent call. You explicitly build the prompt for file analysis — no hidden translation layer.
The real fix: The product needs a way to template or lock the subagent instructions (e.g., an instructionTemplate field on the built-in tool resource). I’d strongly recommend filing this as product feedback so it gets on the roadmap — this is a legitimate control gap, not a user error.
Hope this helps in the meantime.