Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/junior/src/chat/tools/runtime/report-blocked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export function createReportBlockedTool() {
readOnlyHint: false,
},
description:
"End this delegated task as blocked. Call this when missing access, credentials, input, or a decision stops the task, also when a search for the missing part found nothing. Do not guess, mock, or fake results to work around it.",
"End this delegated task as blocked. Call this instead of a final text reply when you cannot give the result that the task asks for because access, credentials, input, or a decision is missing, also when a search for the missing part found nothing. A reply that only says what is missing is not a result. Do not guess, mock, or fake results to work around it.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the final text reply i dont think you get a choice on do you? given the assistant api contracts that exist? i might be forgetting something

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You do get a choice here. reportBlocked ends the run on the tool call. Its tool result returns terminate: true in packages/junior/src/chat/agent/index.ts (the FINISH_AUTOMATION_RUN_TOOL_NAME || REPORT_BLOCKED_TOOL_NAME branch), so no model call and no text reply follow it. finishAutomationRun works the same way. In the last step, the model either ends with text, which becomes the "finished" result, or it calls reportBlocked, which makes the agent invocation blocked. "Instead of a final text reply" means that choice.

This wording did not fix the eval. The case still failed live on both pushes: in each run the child replied with one sentence about the missing region and called no tools. I will revert the extra prompt-line edit, so that I do not stack prose that does not help. The root cause is still open.

inputSchema: z
.object({
missing: z
Expand Down
Loading