From 369fe497aef8bc431b2b00bc5e9615975e9f8710 Mon Sep 17 00:00:00 2001 From: amosblomqvist Date: Fri, 25 Sep 2026 04:22:20 +0300 Subject: [PATCH] =?UTF-8?q?question-tool=20semantics:=20the=20async-era=20?= =?UTF-8?q?'end=20turn=20and=20wait'=20doctrine=20dies=20=E2=80=94=20tools?= =?UTF-8?q?=20are=20ordinary=20tools=20now=20(owner=20ruling,=202026-09-26?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/agent/prompts/prober/10-probe-doctrine.md | 2 +- src/agent/prompts/shared/20-question-tools.md | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/agent/prompts/prober/10-probe-doctrine.md b/src/agent/prompts/prober/10-probe-doctrine.md index e78d82a..5083b1c 100644 --- a/src/agent/prompts/prober/10-probe-doctrine.md +++ b/src/agent/prompts/prober/10-probe-doctrine.md @@ -25,7 +25,7 @@ Find out what he actually wants taught. With a subject he doesn't know yet, the ## How your questions arrive -Your questions are the substance of the session right now: they **open instantly** in the learner's dock, front and center — that immediacy is exactly what probing needs. Ask freely (one at a time), follow up on every answer, and chase the edges of what he knows. The probe is working when the questions are getting sharper, not easier. +Your questions are the substance of the session right now: they **open instantly** in the learner's dock, front and center — that immediacy is exactly what probing needs. Ask freely — singly or batched, they reach him one at a time in the order you asked — follow up on every answer, and chase the edges of what he knows. The probe is working when the questions are getting sharper, not easier. ## Grounding — his material, not his description of it diff --git a/src/agent/prompts/shared/20-question-tools.md b/src/agent/prompts/shared/20-question-tools.md index c323b1f..3ef7ee4 100644 --- a/src/agent/prompts/shared/20-question-tools.md +++ b/src/agent/prompts/shared/20-question-tools.md @@ -2,8 +2,6 @@ `quiz` and `ask_user_question` are the two shared question instruments — precise, with distinct jobs. What follows is the mechanics: what each tool does and how to call it. What to ask, and why, is your phase's own doctrine — your own fragments own that. -**How answering works (both tools):** the question is displayed to him the moment the tool runs, and the tool returns immediately — so after calling `quiz` or `ask_user_question`, END YOUR TURN and wait. His answer arrives as the next user message, formatted with the grading result (for `quiz`). Do not call any other tool while a question is outstanding, and never stack multiple questions in one turn — ask, wait for the answer, then continue. There is nothing to "wait for" on your side: finish your turn with a short natural sentence (or nothing) and stop. - ### `quiz` — graded questions `quiz` asks a question with a KNOWN correct answer, grades his selection instantly, and shows tight feedback (✓/✗ + the correct answer + explanation) to both him and you. Options-only: single-select or multi-select, plus an automatic "I don't know" choice so he can signal a genuine gap instead of guessing. @@ -19,13 +17,11 @@ - Options are built by the construction procedure below: evenness is that procedure's outcome, never a post-hoc audit. - Set `multiSelect: true` only when more than one option is correct. - Options are shuffled before display by default, so don't worry about which position you list the correct answer in. Set `shuffle: false` only when option order is meaningful (ordered numeric values, or an 'All/None of the above' option that must stay last). -- Ask exactly one question per tool call. ### `ask_user_question` — ungraded questions `ask_user_question` asks him a single question and pauses until he answers. Use it when requirements are ambiguous, his preferences are needed, a decision would materially affect the lesson, or you need confirmation before proceeding. -- Ask exactly one question per tool call. - If you need answers to multiple questions, make multiple separate calls instead of combining them into one prompt. - He can always select "Other" to provide custom text input when options are provided. - Use `multiSelect: true` only when you need multiple answers to the same question.