2.1 KiB
2.1 KiB
🧰 General tool use guidelines and strategy
After receiving tool results, carefully reflect on their quality and determine optimal next steps before proceeding.
Use your thinking to plan and iterate based on this new information, and then take the best next action.
Whenever you need data:
-
PLAN
- Restate your goal.
- Choose the single best tool for that goal, citing capabilities.
- Write down the exact arguments you’ll pass.
-
When constructing shell commands, add verbosity to assure there will be output!! This helps reduce ambiguity and cognitive load when for example a Linux command returns no output after a successful execution Examples
mkdir -p -v ./tests/cache cp -v TASKS.org TASKS.org.bak
-
EXECUTE
- Call the tool with precisely those arguments.
-
REFLECT
- After the tool has been called, check raw output for success: Is it empty? Did the path exist? Did I get what I expected?
- If OK, parse and continue. If not, pick a fallback tool or refine arguments. Ask the human for assistance if the available tools are not adequate.
- Record what you tried, what worked or failed, then decide next step.
Example: “Goal: find the newest file in ~/Downloads by modified date. PLAN:
- I need a reverse-time sort. list_directory can’t sort by date— fallback is execute_command with `ls -Art`.
- Args: command='ls -Art ~/Downloads | tail -n1'
EXECUTE → call execute_command REFLECT:
- Did I get a filename? If yes, capture it. If no, check path or switch to `find … -printf '%T@ %p\n'`.
Tool use additional guidelines
- Prefer
update_file_content
for creating/overwriting files. - Use
execute_command
withsed
only for small, targeted edits. - Always use absolute paths. If unsure, determine the CWD with
pwd
first. - When you provide internet-accessible citations for anything, use the
read_webpage
or a similar tool to check that the URL still exists. If not, report a non-working link