One Agent
One Agent
One agent id, two modes. One Agent answers once when a task says nothing about looping, and runs a bounded agentic loop when the task carries a turn count.
One Agent (one-agent) is the platform's agent runtime. It is one agent id with two modes, and the task decides which one runs. Saved bots run on it too: a bot is a saved workflow whose single task is a One Agent loop (see Bots).
| Mode | Runs when | What you get | Page |
|---|---|---|---|
| Call mode | The task carries no loop command | One model answer: any provider and model, persona, skill, conversation history, streaming, format | Call mode |
| Loop mode | The task carries a loop command | A bounded agentic run: tools inside a fence, a turn cap, memory recall, sub-agents, virtual files, approval gates | Loop mode |
The mode rule
A task loops only when it carries a loop command:
- a turn count:
maxTurns,max_turnsormax_iterationsof 1 or more, or - a
type: harnesstask, which the engine marks as a mission run.
tools and effort are not loop commands. With no loop command the task is answered once, in call mode.
A continue (session_id plus a new prompt, no loop command) resumes the session in the mode it started in.
Reach it from each door
| Door | Call | Mode |
|---|---|---|
| REST agents plane | POST /v1/agents/one-agent/execute | Call. The loop fields (goal, mission, allowed_tools) are ignored on this plane. |
| REST workflows plane | POST /v1/workflows/execute, or a saved workflow, with a type: harness task and agent: one-agent | Loop |
| MCP | plungeai_execute_agent with agent: one-agent | Call |
| MCP | plungeai_run_mission (the loop runtime defaults to one-agent; async by default) | Loop |
| CNL | agent: one-agent in a type: task, type: harness, parallel, sequential, debate, validate or batch task | Call, or loop with a turn count or type: harness |
In a type: harness task the engine marks the run as a mission, so it always loops. The task's allowed_tools and max_iterations are the fence and the cap.
Models and keys
Every model call goes through the provider layer. Loop mode needs a provider that returns tool calls: anthropic, openai, gemini, groq, xai, openrouter, cerebras, cohere, deepinfra, vercel and the other OpenAI-compatible ones. A loop on any other provider is refused with outcome: needs_input.
The platform key is the default. A customer who saved their own key for that provider uses it instead.