Mistral Vibe Built-in Agents
On this page
Lesson rewritten on November 2, 2026 based on Vibe Code documentation. The previous version listed four agents, including
defaultandplan:defaultis nowask, the default agent isaccept-edits, andsmart-approveandleanhave been added. There is no longer a built-inplanagent. Sources: Agents · Safety, approvals, and permissions. Update November 3: Verified onmistral-vibe3.0.4. Theleanagent only supports thelabs-leanstral-1-5model, which Mistral’s model table shows was retired on September 30, 2026. It can no longer respond.
What Is an Agent in Vibe?
In Vibe, an agent is a set of configurations layered on top of your global settings: a system prompt, a model, a tool selection, and approval rules. The question isn’t just “What am I asking Vibe to do?” but also “Which agent am I using, and therefore what permissions does it have?” Choosing the right agent means balancing your control against the tool’s speed. Sticking to manual approval all day wastes time on low-risk actions, but letting everything through on a critical repository is a recipe for disaster.
Agents Provided with Vibe
| Agent | Approval Behavior | Use Case |
|---|---|---|
ask | Asks before every tool (formerly default) | Exploring an unknown repository; verifying everything |
accept-edits | Default agent. Auto-approves file edits in the working directory; asks for everything else, including shell commands | Daily work; scoped refactorings |
smart-approve | Classifies each tool call: executes those it deems safe, asks for risky ones | Daily work with fewer interruptions |
auto-approve | Approves everything, including shell commands | Trusted, isolated environments only |
lean | Specialized agent for the Lean 4 proof assistant, installed via /leanstall. In Vibe 3.0.4, it only accepts one model, Leanstral 1.5 (labs-leanstral-1-5), which Mistral’s model table lists as retired on September 30, 2026, with no replacement | Formal proofs, if a Leanstral model becomes available again |
ask: The Most Cautious
Every tool requires your validation: file reads, writes, and commands. This is the safe choice for picking up a repository written by someone else or working with sensitive code. You keep total control, at the cost of a slower pace.
accept-edits: The Default Setting
This is the active agent when you run vibe without options. It modifies files in the working directory without asking, but consults you before running a shell command or performing a sensitive action. Regardless of the agent (unless using full auto-approval), Vibe also asks before any tool reads, writes, or executes anything outside the working directory, and before reading or modifying .env or .envrc files.
smart-approve: Automatic Triage
Many approval requests involve actions you would have accepted anyway. smart-approve first applies your permission rules and reuses approvals already granted in the session. Then, it has a model classify each call: what it judges safe executes immediately; what it judges risky is submitted to you. The documentation is clear about its limitation: it is a classifier, not a sandbox. A call deemed safe executes with the same rights as your user account. For untrusted code or secrets, stick with ask or an isolated environment.
auto-approve: Full Autonomy
Everything executes without confirmation, including rm -rf on any path Vibe can reach. Reserve this for disposable environments: containers, virtual machines, or ephemeral branches in continuous integration. An administrator can disable it for the entire organization (enable_auto_approve = false).
Choosing and Switching Agents
vibe --agent ask # at launch
vibe --agent smart-approve # or vibe --smart-approve
In an interactive session, Shift+Tab cycles through agents without quitting Vibe. To change the default agent, add one line to config.toml:
default_agent = "ask"
This setting also applies to programmatic mode (vibe --prompt …). Be careful with this mode: no one is there to answer an approval request, so Vibe refuses any tool call that requires one. For unattended execution, pass --auto-approve (alias --yolo), and only in an isolated environment.
What About “Plan” Mode?
Vibe has no built-in plan agent. If your configuration contains default_agent = "plan" without a custom agent of that name, Vibe displays a warning and starts with ask. However, the “explore and plan, then execute” workflow remains excellent: the documentation shows how to create your own read-only plan agent, which the next lesson covers.
Subagents
An agent can also delegate part of the work to subagents, for example, to explore a large repository without filling its own context. Without a custom subagent, it can launch a generic subagent with the same instructions and tools as itself. You don’t select subagents with --agent: the agent launches them (Lesson 5).
Project Instructions: AGENTS.md
Regardless of the agent, Vibe loads AGENTS.md files: first from your Vibe directory (~/.vibe/AGENTS.md), then from the project, starting from the working directory up to the root of the trusted folder. In case of conflict, the file closest to the working directory wins. This is the place for conventions that apply to all agents: test commands, style guides, and files never to touch.
Key Takeaways
- Built-in agents:
ask,accept-edits(default),smart-approve,auto-approve, andlean(installable, but lacks a model since Leanstral 1.5 was retired on September 30, 2026) smart-approvereduces interruptions but remains a classifier, not a sandbox- Use
Shift+Tabto switch agents in a session; setdefault_agentfor the default - In programmatic mode, any call requiring approval is refused, unless
--auto-approveis used - There is no longer a built-in
planagent: create your own (Lesson 2)