bots-garden/mini-mepublic Fork
⑂ feature/go-1.27.3
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 7087d46 · on feature/go-1.27.3 · k33g · 2d ago
manage-plans-and-tasks.md · 65 lines · 4.0 KBmarkdown
Blame HistoryOpen raw

How to manage plans and tasks

This guide shows how to have the agent work through a list of tasks with its plan tool, and how to follow its progress. The tool is on by default (planTool: true).

Give the agent a list

Ask for several things at once, as a list:

Do these 2 things: 1. create a file a.txt containing A, 2. create a file b.txt containing B.

The model creates a plan from the list, works through it, and updates each task's status as it goes. Small models do it more reliably when you say so: "Use the plan tool. Do these…".

Follow the progress

mm shows where the plan is after every plan action that changes or reads its state (create, update, next, status) — whether or not the model mentions it in its answer.

  • Line mode (mm agent.yaml, mm -p): one line before each call, one line after it. Measured on Qwen3.5 4B with the request above:

    📋 plan: create
    📋 [1/2] ⏳ Task 1: Create a file a.txt containing A (open)
    💾 write_file: a.txt (1 bytes)
    💾 write_file: b.txt (1 bytes)
    📋 plan: update user-request-1
    📋 [2/2] ⏳ Task 2: Create a file b.txt containing B (open)
    📋 plan: update user-request-1
    📋 [2/2] All tasks complete!
    
  • Window (mm -tui): each call is a tool call in the conversation, and the 📋 [C/N] … line follows it as a notice.

  • Editor (mm -acp): each call is a tool call; the status line is inside its result.

The status line shows the task being worked on — the first one in progress, else the first one still open: [C/N] <icon> Task C: <description> (<status>). Icons: ⏳ open, 🔄 in progress, ✅ done, ❌ failed. When every task is over it says [N/N] All tasks complete!, or [N/N] Plan finished: D done, F failed if some failed.

Steer the plan

The model decides when to call the tool; you steer it in your own words:

  • Where are we? "What's the status of the plan?" — the model calls status and mm shows the line.
  • Skip a task. "Skip the tests and go on." — the model can mark it and move on with next.
  • A task failed. The model can mark it failed, with a note; the status line then moves to the next open task.
  • Drop the plan. "Forget this plan." — the model can call delete.

There is no slash command for plans: they are the model's tool.

Variants

  • Several conversations in an editor. Each thread has its own plans: a plan made in one Zed thread is not visible in another.
  • Starting over. /new and /resume forget the plans in every front end; an editor's reload (session/load, session/resume) starts the thread with no plan. Plans are kept in memory only, never in the session file, and are lost when mm stops.
  • The plan-manager skill. skills/plan-manager tells the model when to make a plan and how to move through it. Put it in the agent's skillsDir for a model that does not use the tool by itself. It also asks the model to repeat the status line in its answer; mm shows it anyway.
  • An agent that does not need plans. Set planTool: false: the tool is not declared. Do it for an agent whose job is a single answer (writing a document, answering questions), where a small model may otherwise loop on plan calls.

Troubleshooting

  • The agent does not create a plan. Give a numbered list, and say "use the plan tool". With a small model, add the plan-manager skill.
  • The agent keeps calling plan update. update changes the status of ONE task; it cannot change a plan's tasks. A call without a valid status gets an answer that quotes the call back, names the missing field and gives a valid call. If a small model still repeats it, set planTool: false for that agent.

See also

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# How to manage plans and tasks

This guide shows how to have the agent work through a list of tasks with its `plan` tool, and how to follow its progress. The tool is on by default (`planTool: true`).

## Give the agent a list

Ask for several things at once, as a list:

```text
Do these 2 things: 1. create a file a.txt containing A, 2. create a file b.txt containing B.
```

The model creates a plan from the list, works through it, and updates each task's status as it goes. Small models do it more reliably when you say so: "Use the plan tool. Do these…".

## Follow the progress

mm shows where the plan is after every plan action that changes or reads its state (`create`, `update`, `next`, `status`) — whether or not the model mentions it in its answer.

- **Line mode** (`mm agent.yaml`, `mm -p`): one line before each call, one line after it. Measured on Qwen3.5 4B with the request above:

  ```text
  📋 plan: create
  📋 [1/2] ⏳ Task 1: Create a file a.txt containing A (open)
  💾 write_file: a.txt (1 bytes)
  💾 write_file: b.txt (1 bytes)
  📋 plan: update user-request-1
  📋 [2/2] ⏳ Task 2: Create a file b.txt containing B (open)
  📋 plan: update user-request-1
  📋 [2/2] All tasks complete!
  ```

- **Window** (`mm -tui`): each call is a tool call in the conversation, and the `📋 [C/N] …` line follows it as a notice.
- **Editor** (`mm -acp`): each call is a tool call; the status line is inside its result.

The status line shows the task being worked on — the first one in progress, else the first one still open: `[C/N] <icon> Task C: <description> (<status>)`. Icons: ⏳ open, 🔄 in progress, ✅ done, ❌ failed. When every task is over it says `[N/N] All tasks complete!`, or `[N/N] Plan finished: D done, F failed` if some failed.

## Steer the plan

The model decides when to call the tool; you steer it in your own words:

- **Where are we?** "What's the status of the plan?" — the model calls `status` and mm shows the line.
- **Skip a task.** "Skip the tests and go on." — the model can mark it and move on with `next`.
- **A task failed.** The model can mark it `failed`, with a note; the status line then moves to the next open task.
- **Drop the plan.** "Forget this plan." — the model can call `delete`.

There is no slash command for plans: they are the model's tool.

## Variants

- **Several conversations in an editor.** Each thread has its own plans: a plan made in one Zed thread is not visible in another.
- **Starting over.** `/new` and `/resume` forget the plans in every front end; an editor's reload (`session/load`, `session/resume`) starts the thread with no plan. Plans are kept in memory only, never in the session file, and are lost when mm stops.
- **The `plan-manager` skill.** `skills/plan-manager` tells the model when to make a plan and how to move through it. Put it in the agent's `skillsDir` for a model that does not use the tool by itself. It also asks the model to repeat the status line in its answer; mm shows it anyway.
- **An agent that does not need plans.** Set `planTool: false`: the tool is not declared. Do it for an agent whose job is a single answer (writing a document, answering questions), where a small model may otherwise loop on plan calls.

## Troubleshooting

- **The agent does not create a plan.** Give a numbered list, and say "use the plan tool". With a small model, add the `plan-manager` skill.
- **The agent keeps calling `plan update`.** `update` changes the status of ONE task; it cannot change a plan's tasks. A call without a valid `status` gets an answer that quotes the call back, names the missing field and gives a valid call. If a small model still repeats it, set `planTool: false` for that agent.

## See also

- [Tools reference — `plan`](../reference/tools.md#plan): every action, field, result and error
- [Configuration reference](../reference/configuration.md): `planTool`
- [Slash commands reference](../reference/slash-commands.md): `/new`, `/resume`
- `demos/plans/` — a measured demo: a Go program built in four planned steps, and a plan that ends with a failed task