Skip to content

Commit 78b6c26

Browse files
committed
enhance todo tool prompt
1 parent d649a7c commit 78b6c26

File tree

2 files changed

+23
-39
lines changed

2 files changed

+23
-39
lines changed

strix/agents/StrixAgent/system_prompt.jinja

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,6 @@ OPERATIONAL PRINCIPLES:
111111
- Try multiple approaches simultaneously - don't wait for one to fail
112112
- Continuously research payloads, bypasses, and exploitation techniques with the web_search tool; integrate findings into automated sprays and validation
113113

114-
TASK TRACKING:
115-
- USE THE TODO TOOL EXTENSIVELY - this is critical for staying organized and focused
116-
- Each subagent has their own INDEPENDENT todo list - your todos are private to you
117-
- KEEP THE LIST SHORT-HORIZON: track only the next few concrete steps (3-6 max), not long-term goals.
118-
- REWRITE TODOS AS YOU LEARN: update, trim, or reprioritize the list whenever plans change or tasks finish.
119-
- At the START of any task: Create todos to break down your next steps into clear actions
120-
- BEFORE starting a task: Mark it as "in_progress" - this shows what you're actively doing
121-
- AFTER completing a task: Mark it as "done" immediately - don't wait
122-
- When you discover new tasks: Add them as todos right away and reprioritize; avoid dumping the whole project plan upfront
123-
- ALWAYS follow this workflow: create → in_progress → done, iterating frequently
124-
- A well-maintained todo list prevents going in circles, forgetting tasks, and losing focus
125-
- If you're unsure what to do next: Check your todo list first
126-
127114
EFFICIENCY TACTICS:
128115
- Automate with Python scripts for complex workflows and repetitive inputs/tasks
129116
- Batch similar operations together

strix/tools/todo/todo_actions_schema.xml

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
11
<tools>
22
<important>
3-
YOU MUST USE THE TODO TOOL EXTENSIVELY — AND DO SO IN BATCHES. Minimize the number of tool calls by grouping creations and status changes together.
3+
The todo tool is available for organizing complex tasks when needed. Each subagent has their own
4+
separate todo list - your todos are private to you and do not interfere with other agents' todos.
45

5-
IMPORTANT: Each subagent has their own separate todo list. Your todos are private to you and
6-
do not interfere with other agents' todos. Use this to your advantage.
6+
WHEN TO USE TODOS:
7+
- Planning complex multi-step operations
8+
- Tracking multiple parallel workstreams
9+
- When you need to remember tasks to return to later
10+
- Organizing large-scope assessments with many components
711

8-
WORKFLOW - Follow this for EVERY task:
9-
1. Keep the list short-horizon: track only the next few concrete steps (3-6 max), not long-term goals.
10-
2. Create/update todos as you learn new info; drop or rewrite items when plans change.
11-
3. Batch operations: when setting statuses or priorities for multiple items, use ONE call with the bulk parameters (`updates` or `todo_ids`) instead of one call per todo.
12-
4. BEFORE starting a task (or a small set of tasks): Mark them "in_progress" together using a single update_todo call with an `updates` array.
13-
5. AFTER completing tasks: Mark them "done" together using one mark_todo_done call with `todo_ids`.
14-
6. When you discover new tasks: Add them in one create_todo call (use the `todos` list) and re-prioritize; avoid giant upfront lists.
12+
WHEN NOT NEEDED:
13+
- Simple, straightforward tasks
14+
- Linear workflows where progress is obvious
15+
- Short tasks that can be completed quickly
1516

16-
ALWAYS mark the current task(s) as in_progress before working on them. This shows what you're actively doing. Then mark them done when finished. Do these status updates in batches to avoid excessive tool calls.
17-
18-
A well-maintained todo list prevents you from going in circles, forgetting important tasks,
19-
or losing track of your progress. USE IT CONSTANTLY.
17+
If you do use todos, batch operations together to minimize tool calls.
2018
</important>
2119

2220
<tool name="create_todo">
23-
<description>Create a new todo item to track tasks, goals, and progress. USE THIS FREQUENTLY.</description>
24-
<details>Use this tool liberally to create actionable items. Break down complex tasks into smaller,
25-
manageable todos. Each subagent maintains their own independent todo list - your todos are yours alone.
21+
<description>Create a new todo item to track tasks, goals, and progress.</description>
22+
<details>Use this tool when you need to track multiple tasks or plan complex operations.
23+
Each subagent maintains their own independent todo list - your todos are yours alone.
2624

27-
Create todos at the start of work to plan your approach, add new ones as you discover tasks,
28-
and mark them done as you progress. This keeps you focused, prevents you from forgetting tasks,
29-
and provides a clear record of what you've accomplished.</details>
25+
Useful for breaking down complex tasks into smaller, manageable items when the workflow
26+
is non-trivial or when you need to track progress across multiple components.</details>
3027
<parameters>
3128
<parameter name="title" type="string" required="false">
3229
<description>Short, actionable title for the todo (e.g., "Test login endpoint for SQL injection")</description>
@@ -74,8 +71,8 @@
7471
</tool>
7572

7673
<tool name="list_todos">
77-
<description>List all todos with optional filtering by status or priority. CHECK THIS OFTEN.</description>
78-
<details>Use this when you need fresh IDs or to reprioritize. Avoid spamming list_todos; prefer to keep a local view of the list and only refresh when state may be stale or after bulk changes.
74+
<description>List all todos with optional filtering by status or priority.</description>
75+
<details>Use this when you need to check your current todos, get fresh IDs, or reprioritize.
7976
The list is sorted: done first, then in_progress, then pending. Within each status, sorted by priority (critical > high > normal > low).
8077
Each subagent has their own independent todo list.</details>
8178
<parameters>
@@ -107,13 +104,13 @@
107104
</tool>
108105

109106
<tool name="update_todo">
110-
<description>Update one or multiple todo items. ALWAYS prefer bulk updates in a single call.</description>
107+
<description>Update one or multiple todo items. Prefer bulk updates in a single call when updating multiple items.</description>
111108
<parameters>
112109
<parameter name="todo_id" type="string" required="false">
113110
<description>ID of a single todo to update (for simple updates)</description>
114111
</parameter>
115112
<parameter name="updates" type="string" required="false">
116-
<description>Bulk update multiple todos at once. JSON array of objects with todo_id and fields to update: [{"todo_id": "abc", "status": "done"}, {"todo_id": "def", "priority": "high"}]. USE THIS INSTEAD OF multiple single-item calls.</description>
113+
<description>Bulk update multiple todos at once. JSON array of objects with todo_id and fields to update: [{"todo_id": "abc", "status": "done"}, {"todo_id": "def", "priority": "high"}].</description>
117114
</parameter>
118115
<parameter name="title" type="string" required="false">
119116
<description>New title (used with todo_id)</description>
@@ -146,8 +143,8 @@
146143
</tool>
147144

148145
<tool name="mark_todo_done">
149-
<description>Mark one or multiple todos as completed in a single call. DO THIS IN BATCHES after finishing a small group of tasks.</description>
150-
<details>Mark todos as done right after completing them - group multiple completions into one call using todo_ids. Avoid one-call-per-item to save tool calls. This keeps your list accurate and gives you a clear picture of progress.</details>
146+
<description>Mark one or multiple todos as completed in a single call.</description>
147+
<details>Mark todos as done after completing them. Group multiple completions into one call using todo_ids when possible.</details>
151148
<parameters>
152149
<parameter name="todo_id" type="string" required="false">
153150
<description>ID of a single todo to mark as done</description>

0 commit comments

Comments
 (0)