{{$launchVariables->topic}}, not {{topic}}. Plain {{name}} is a runtime/interactive variable and silently resolves to undefined on API runs — the agent returns generic output with no error.Symptom
An agent works perfectly in the MindStudio editor, but when called via POST https://api.mindstudio.ai/developer/v2/apps/run with a variables object, output reads like the brief was empty ("brief incomplete", generic filler). No error is returned.
The correct call
POST /developer/v2/apps/run
Authorization: Bearer <key>
{ "appId": "<UUID from GET /developer/v2/apps — NOT the URL slug>",
"variables": { "topic": "..." } }
...and in the Generate Text block: {{$launchVariables->topic}}. The agent must be published before API runs work.
How we hit it
A four-stage content agent chain for a client platform: interactive tests passed, API runs produced garbage for hours until the variable namespace difference surfaced.
Also worth knowing
Put brand voice in the System Prompt tab (persistent) and the task in the Generate Text block; a too-strong system prompt makes agents acknowledge the voice and ignore the task. Budget for ~1-3% JSON-parse failures on structured outputs — wrap calls with a retry/review queue.
Related landmines
We build MindStudio agent systems white-label for agency platforms. What we build →