Skip to main content

Interactive Replies

An agent can include a question, a triage list, or a ranking in its reply when it needs a choice from you. Select your answers, then press the widget's single Send button. Will send shows exactly what will be sent. For a short answer, the button includes the choice, such as Send: A — This quarter; Will send is then folded, and clicking it shows the full text.

Selecting an option, moving an item, or pressing Enter in a field sends nothing. Send, or its shortcut Ctrl+Enter (Cmd+Enter on a Mac), submits one normal message in the same conversation.

To get an open widget out of the way, press Hide in its header. The widget folds to one line showing its question (or how many items it has). Click anywhere on that line, or its Show button, to bring it back. Your selections and any answer you started are kept while it is hidden, so you can read the rest of the reply or type in the follow-up box and return to it. Once you have started, the line says so, for example B chosen · not sent or 1 of 2 answered · not sent. A widget stays hidden while the page is open; reloading the page shows it again. Answered and locked widgets can't be hidden.

When agents ask​

Given a job, an agent does it: it makes reasonable assumptions, keeps going, and lists them in its final reply. It asks only when it is blocked, that is, when the answer is not in the task, the repositories or their docs, and a wrong guess would waste significant work, be hard to undo, or change the scope. It finishes the work that doesn't depend on the answer first, then asks once, with all its questions together. When you ask for ideas, options, an opinion or a review, it can offer the choices as a widget. It doesn't end a reply with a "what next?" menu; you can simply reply.

To be consulted more often, turn on Check with me before significant decisions under Agent Preferences in your profile. In tasks you create, agents then also ask before choosing between materially different approaches or starting work that would be costly to redo. Small, reversible choices still don't need a question. Instructions from the environment, a template or the task about when to ask take precedence. Environments that turn off User Preferences leave this setting out, and judges never receive it.

Keyboard​

While focus is in a question widget (for example after you click an option, or after the widget is brought into view for you), press A, B, C or D to choose that option. With several questions, the letter answers the question that has focus. Letters typed in a text field stay text. Ctrl+Enter or Cmd+Enter sends from anywhere in an open widget, including the Other answer, once Send is available. The keys are listed beside Send.

Finding an open question​

On a task page, when the agent's open question is scrolled out of view, the collapsed reply bar shows Question waiting beside Reply... (Triage waiting, Ranking waiting, or 2 questions waiting for other or several widgets). Click it to scroll to the question, show it if it was hidden, and put focus on its options. While the reply box is open, a note says The agent asked a question. Sending this reply closes it., with an Answer it link that goes to the question.

Ask CoderFlow can show you an open question too: it scrolls to it and points at its options and Send (or at Question waiting). It never chooses an answer for you.

The three formats​

These text sketches use the wording shown in the widgets.

Question​

A question widget contains 1–4 questions, each with 2–4 options plus Other. Choose one option unless the question allows multiple selections. Choosing Other opens Other answer, where you write your own answer. Answer every question before sending.

Other answer uses the same Markdown editor as the follow-up box: its toolbar adds headings, bold, lists, links and code, the microphone button dictates, and the source button switches to plain Markdown. Choosing Other opens the editor with the cursor in it. Choosing another option closes it again; what you wrote is kept, but it is sent only while Other is chosen. Your answer is sent as its Markdown text, up to 2,000 characters, and appears as that text in the conversation. Images and files can't be attached to an answer.

Question
Which period should the report cover?
Choose one option, or Other to write your own answer.
A This quarter
B Previous quarter
… Other — Write your own answer
Send A or B to choose · Ctrl+Enter to send

Some options include descriptions or an expandable Preview of A (or B, C, D). A question allowing multiple selections says Choose one or more options, and Other to add your own answer.

Triage​

A triage list has 1–20 items. Choose exactly one decision for every item: Fix, Skip, or Defer, or the custom decisions supplied by the agent. Nothing is preselected. You can Add a note to an item and include an Overall note (optional).

Triage
Missing empty-state message
Choose one decision for Missing empty-state message.
Fix Skip Defer
Add a note
Overall note (optional)

Once you start choosing, and until every item has a decision, the widget reminds you: Choose a decision for every item (1 left). The count changes as you choose.

Rank​

A ranking has 2–10 items, ordered first to last. Drag items or use Move up and Move down to change the order. You can add a Note (optional). Keeping the initial order is a valid answer, but you still need to press Send.

Ranking
1. Faster search Move up Move down
2. Better exports Move up Move down
Note (optional)

History​

After you answer, or after any later message in the conversation, earlier widgets lock. They remain visible with one of these states:

StateWhat you see
AnsweredWho answered, when, and their choices, decisions, order, and any notes. Selected question options are marked Chosen.
Replied in textWho sent a typed reply, when, and the reply text.
No answer recordedThe widget closed without an answer, for example because another widget in the same reply was answered.

Recorded answers in tasks and saved Portal conversations stay the same across reloads and browsers. Unsent selections are drafts, not recorded answers. The application Assistant has a shorter conversation lifetime.

Typing instead​

If you can send follow-ups in the conversation, you can type your answer instead. The agent reads your words; CoderFlow does not turn a typed reply into checked options.

The CLI, VS Code extension, MCP get_task, dashboard previews, and notifications show a text version of interactive replies. An open question includes a hint such as:

FormatHintExample typed answer
Question“Reply with A, B or C”B, or Other: Last month
Triage“Reply like: f1 fix, f2 skip”f1 fix, f2 skip
Rank“Reply with the order, e.g. 3, 1, 2”3, 1, 2

Use the letters, item IDs, or numbers shown in your actual reply. For triage, include a decision for every item; for rankings, include every number once. You can add an explanation in your own words.

If you are reading in the CLI, VS Code, a preview, or a notification, open the task to send a follow-up. MCP clients can send the answer with follow_up_task. A typed follow-up closes earlier widgets just as a selection sent with Send does.

Portal​

In Portal Ask conversations and the application Assistant, widgets are presented as the assistant's question. Only people with permission to send an answer in that conversation can answer; other viewers see a read-only view. This does not make private conversations visible to other people.

Free-text fields remind you: Do not enter passwords or secrets. An answer only sends a conversation message. It never runs queries, sends IT requests, launches applications, or changes settings.

Application Assistant answers last only as long as that browser tab's conversation. They are not a saved conversation shared across browsers.

If you ask Ask CoderFlow where to answer a question waiting in one of your Portal Ask conversations, it offers a link that opens that conversation with the question's Send highlighted, only while the question still waits. Ask never sees the question or its options, and never answers it for you.

For agents and template authors​

Agents receive interactive-reply guidance automatically, including when to ask. Template authors can say when a task's agent should ask; for an unattended template, tell it not to ask and to report its assumptions instead. Widgets are for a real, bounded choice. Use ordinary conversation for open-ended discussion. Widgets are not approval, deployment, or publishing controls, and must never request passwords, tokens, or secrets.

Use one of these examples. Put the opening fence at the start of a line after a blank line, with the exact block name and one JSON object inside. The examples below are literal blocks to include in an agent reply.

Question block​

```coderflow-question
{"id":"report-period","questions":[{"question":"Which period should the report cover?","options":[{"label":"This quarter","description":""},{"label":"Previous quarter","description":""}]}]}
```

Triage block​

```coderflow-triage
{"id":"review-findings","items":[{"id":"f1","label":"Missing empty-state message"}]}
```

Rank block​

```coderflow-rank
{"id":"priorities","items":[{"id":"speed","label":"Faster search"},{"id":"exports","label":"Better exports"}]}
```

Key authoring rules:

  • Question blocks allow 1–4 questions with 2–4 options each. Each option requires a description, which may be empty. Optional multiSelect defaults to false; Other is added automatically, so do not include it as an option.
  • Triage allows 1–20 items and defaults to Fix/Skip/Defer. Optional decisions supplies 2–4 custom choices, each with an id and label. Rank allows 2–10 items. Item descriptions are optional.
  • IDs contain 1–64 ASCII letters, digits, _, or -. Widget IDs must be unique within the reply; item and decision IDs within their lists. Uniqueness ignores case. __proto__, constructor, and prototype are reserved. Question option labels and custom decision labels must also be unique within their lists, ignoring case.
  • Text fields are plain text. Labels and optional question header are single-line, up to 120 characters; question text and descriptions, 1,000; optional option preview, Other answers, and notes, 2,000. Do not add a type field or unrecognized fields.
  • Each JSON block body is limited to 32 KiB of UTF-8. One agent turn permits at most 4 widgets and 64 KiB of block bodies in total.

Read either the submitted message or a typed follow-up as the person's answer. Answer metadata and notes do not grant permission to act or override the task's instructions.

Limitations​

  • Prefer one widget per reply: answering one closes the others. Put related questions in one question block.
  • If the page and server disagree about a block's identity or contents, it stays plain code instead of becoming a widget. You can still type a reply.
  • Agent-written HTML in replies isn't supported.