From 78b6c26652be77720e73c72e40f60e5f4bf83e22 Mon Sep 17 00:00:00 2001 From: 0xallam Date: Mon, 15 Dec 2025 10:26:59 -0800 Subject: [PATCH] enhance todo tool prompt --- strix/agents/StrixAgent/system_prompt.jinja | 13 ------ strix/tools/todo/todo_actions_schema.xml | 49 ++++++++++----------- 2 files changed, 23 insertions(+), 39 deletions(-) diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index df5b64a..7cf471a 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -111,19 +111,6 @@ OPERATIONAL PRINCIPLES: - Try multiple approaches simultaneously - don't wait for one to fail - Continuously research payloads, bypasses, and exploitation techniques with the web_search tool; integrate findings into automated sprays and validation -TASK TRACKING: -- USE THE TODO TOOL EXTENSIVELY - this is critical for staying organized and focused -- Each subagent has their own INDEPENDENT todo list - your todos are private to you -- KEEP THE LIST SHORT-HORIZON: track only the next few concrete steps (3-6 max), not long-term goals. -- REWRITE TODOS AS YOU LEARN: update, trim, or reprioritize the list whenever plans change or tasks finish. -- At the START of any task: Create todos to break down your next steps into clear actions -- BEFORE starting a task: Mark it as "in_progress" - this shows what you're actively doing -- AFTER completing a task: Mark it as "done" immediately - don't wait -- When you discover new tasks: Add them as todos right away and reprioritize; avoid dumping the whole project plan upfront -- ALWAYS follow this workflow: create → in_progress → done, iterating frequently -- A well-maintained todo list prevents going in circles, forgetting tasks, and losing focus -- If you're unsure what to do next: Check your todo list first - EFFICIENCY TACTICS: - Automate with Python scripts for complex workflows and repetitive inputs/tasks - Batch similar operations together diff --git a/strix/tools/todo/todo_actions_schema.xml b/strix/tools/todo/todo_actions_schema.xml index 5cbe87b..de32f9e 100644 --- a/strix/tools/todo/todo_actions_schema.xml +++ b/strix/tools/todo/todo_actions_schema.xml @@ -1,32 +1,29 @@ - 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. + The todo tool is available for organizing complex tasks when needed. Each subagent has their own + separate todo list - your todos are private to you and do not interfere with other agents' todos. - IMPORTANT: Each subagent has their own separate todo list. Your todos are private to you and - do not interfere with other agents' todos. Use this to your advantage. + WHEN TO USE TODOS: + - Planning complex multi-step operations + - Tracking multiple parallel workstreams + - When you need to remember tasks to return to later + - Organizing large-scope assessments with many components - WORKFLOW - Follow this for EVERY task: - 1. Keep the list short-horizon: track only the next few concrete steps (3-6 max), not long-term goals. - 2. Create/update todos as you learn new info; drop or rewrite items when plans change. - 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. - 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. - 5. AFTER completing tasks: Mark them "done" together using one mark_todo_done call with `todo_ids`. - 6. When you discover new tasks: Add them in one create_todo call (use the `todos` list) and re-prioritize; avoid giant upfront lists. + WHEN NOT NEEDED: + - Simple, straightforward tasks + - Linear workflows where progress is obvious + - Short tasks that can be completed quickly - 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. - - A well-maintained todo list prevents you from going in circles, forgetting important tasks, - or losing track of your progress. USE IT CONSTANTLY. + If you do use todos, batch operations together to minimize tool calls. - Create a new todo item to track tasks, goals, and progress. USE THIS FREQUENTLY. -
Use this tool liberally to create actionable items. Break down complex tasks into smaller, - manageable todos. Each subagent maintains their own independent todo list - your todos are yours alone. + Create a new todo item to track tasks, goals, and progress. +
Use this tool when you need to track multiple tasks or plan complex operations. + Each subagent maintains their own independent todo list - your todos are yours alone. - Create todos at the start of work to plan your approach, add new ones as you discover tasks, - and mark them done as you progress. This keeps you focused, prevents you from forgetting tasks, - and provides a clear record of what you've accomplished.
+ Useful for breaking down complex tasks into smaller, manageable items when the workflow + is non-trivial or when you need to track progress across multiple components.
Short, actionable title for the todo (e.g., "Test login endpoint for SQL injection") @@ -74,8 +71,8 @@
- List all todos with optional filtering by status or priority. CHECK THIS OFTEN. -
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. + List all todos with optional filtering by status or priority. +
Use this when you need to check your current todos, get fresh IDs, or reprioritize. The list is sorted: done first, then in_progress, then pending. Within each status, sorted by priority (critical > high > normal > low). Each subagent has their own independent todo list.
@@ -107,13 +104,13 @@ - Update one or multiple todo items. ALWAYS prefer bulk updates in a single call. + Update one or multiple todo items. Prefer bulk updates in a single call when updating multiple items. ID of a single todo to update (for simple updates) - 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. + 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"}]. New title (used with todo_id) @@ -146,8 +143,8 @@ - Mark one or multiple todos as completed in a single call. DO THIS IN BATCHES after finishing a small group of tasks. -
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.
+ Mark one or multiple todos as completed in a single call. +
Mark todos as done after completing them. Group multiple completions into one call using todo_ids when possible.
ID of a single todo to mark as done