When nanobot runs tool calls, the final message tends to react to the last tool output rather than the user's original message. Results in single-word responses like 'Reverted.', 'Done.', 'Rule added.' that address the tool result, not what the user said.
Root cause
The model loses track of the user's original message across multiple tool calls. By the time it writes the final response, the most recent context is tool outputs, not the user's request.
Proposed fix
Before nanobot sends the final content message (detected when no more tool calls are present), inject the user's last message as a reminder:
[Responding to: "{last_user_message}"]
This re-anchors the model to what the user actually said before it writes its response.
Expected outcome
Final messages become complete standalone responses to the user's original message, not status reports on tool execution.
## Problem
When nanobot runs tool calls, the final message tends to react to the last tool output rather than the user's original message. Results in single-word responses like 'Reverted.', 'Done.', 'Rule added.' that address the tool result, not what the user said.
## Root cause
The model loses track of the user's original message across multiple tool calls. By the time it writes the final response, the most recent context is tool outputs, not the user's request.
## Proposed fix
Before nanobot sends the final content message (detected when no more tool calls are present), inject the user's last message as a reminder:
`[Responding to: "{last_user_message}"]`
This re-anchors the model to what the user actually said before it writes its response.
## Expected outcome
Final messages become complete standalone responses to the user's original message, not status reports on tool execution.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
When nanobot runs tool calls, the final message tends to react to the last tool output rather than the user's original message. Results in single-word responses like 'Reverted.', 'Done.', 'Rule added.' that address the tool result, not what the user said.
Root cause
The model loses track of the user's original message across multiple tool calls. By the time it writes the final response, the most recent context is tool outputs, not the user's request.
Proposed fix
Before nanobot sends the final content message (detected when no more tool calls are present), inject the user's last message as a reminder:
[Responding to: "{last_user_message}"]This re-anchors the model to what the user actually said before it writes its response.
Expected outcome
Final messages become complete standalone responses to the user's original message, not status reports on tool execution.