Agentic Thinking
Create powerful tools, not MORE tools
Make querying tools capable of more, instead of different querying tools. For example, allow getTransactions to filter by date range, by id, by text content and amount, instead of multiple tools for each. Agents are good at managing tool args, but not that good at managing multiple tools. They fail at choosing the right one or fail to use it at all.
Enforce tool usage
Set explicit and concise tool usage criteria by describing every param accurately. Don't over-explain but provide enough context to the agent to make the right decision.
Suggest tool usage for taken action verification
Provide the tools to let the agent verify previously taken actions. For example, if the agent has created a new transaction, or has edited an existing one, propose to use the getTransactions tool to verify the action and get fresh data. This creates a feedback loop that helps the agent identify errors and correct themselves.
What should you store?
You don't need to be restrictive about how much data you store, but be restrictive about how much data you load into the context. You can store the full conversation, each tool call input and output, metadata, etc. But then be selective about what does persist on the next message, keep the message window relatively small and only load relevant data from previous toolcalls into the context. The bigger the context, the harder it is for the agent to reason about the current state and the next action.