An agent with tools
An agent with a closed tool list, confirmation before a side effect, and a stop condition.
When to use it
Use when the model must read or act (a file, an API, MCP), not only talk. If the answer is plain text, use the chatbot prompt.
Variables
[AGENT_NAME][GOAL][TOOLS][SIDE_EFFECTS][STOP_WHEN]
Copy prompt
Implement an agent named [AGENT_NAME]. Goal: [GOAL] Allowed tools (name, input, output): [TOOLS] Actions that require a human yes before they run: [SIDE_EFFECTS] Stop when: [STOP_WHEN] Design - The model may only call a tool listed in [TOOLS]. If it needs another, it says it cannot and stops. It does not improvise curl, a free shell, or an MCP I did not name. - Each call records the name, the arguments (no secrets), and a short result. That shows up in the UI or a local log. - Before any item in [SIDE_EFFECTS], show what will happen in one sentence and wait for an explicit yes. An autopilot "continue" does not count. - Cap of 8 tool calls per goal. If that cap hits without [STOP_WHEN], stop and hand back what you already know. - A tool error is not a reason to retry the same call in a loop. At most one retry, then stop. - Do not tell the model to be "autonomous" or to "not stop until it is done" if that breaks the cap or the confirmation. If [TOOLS] names MCP, connect only the named servers. Do not add a public server on your own. Document the config file (for example .cursor/mcp.json or the stack's equivalent) and which variables it reads. Deliver 1. The agent loop and the tool definitions. 2. A fake confirmation example (the text the human sees). 3. A test where [STOP_WHEN] happens, and one where the tool fails and the agent stops. If [GOAL] can be done with a single function, without an agent, say so and do not build the loop.
How to run this prompt
- Close the list. Each tool has a name, an input, and what it returns. What is not on the list does not exist.
- Mark the side effect. Sending email, writing a file, and paying are SIDE_EFFECTS.
- Give it an end. STOP_WHEN is observable: a file created, valid JSON, a passing test.
Where this breaks
An open tool list becomes the agent deleting a file. TOOLS is the closed list. SIDE_EFFECTS says what needs a human confirmation.
Result
Slot for a screenshot or demo. No result is published yet.