The suggest-task tool and service

A suggested task is a follow-up that a chat offers when it notices work beyond the current one. The offer waits, and nothing starts by itself. This page is the developer reference for the tool behind an offer, suggest_task, and for the service that records offers and turns one of them into a new chat. For what you see and do with a suggestion in the app, see Suggested tasks.

The tool and its fields

FieldHow the field is describedLimit
titleImperative title, at most 60 characters.60 characters
tldrWhy it is worth doing, at most 240 characters.240 characters
briefSelf-contained instructions for the new chat, at most 4000 characters.4000 characters

When an offer is refused

Only the top-level chat may offer a suggestion. A helper's call is refused with suggest_task is only for the top-level agent; report the follow-up in your result instead. A forked helper still sees the tool, but the call is refused when it runs.

The other refusals name their reason:

SituationThe refusal
The chat runs in a scheduled task's foldersuggest_task: this chat runs in a scheduled task folder, where no new chat can start; offer no suggestions here
Ten offers already made in this chatsuggest_task: this chat already offered 10 suggestions; offer no more
Three offers already waitingsuggest_task: 3 suggestions already wait for the user; offer no more until one is started or dismissed
A second offer in one turnsuggest_task: one suggestion per turn; this turn already offered one
No open turn to attach the offer tosuggest_task: requires an open model turn
The call has no chat behind itsuggest_task requires an owning agent session
A field is emptysuggest_task: <field> must not be empty
A field is over its limitsuggest_task: <field> must be at most <limit> characters (got <n>)

How offers and settlements are recorded

What Start does

CodeThe answerWhat it carries
task-suggestion/not-foundno suggestion "<id>"the id that was asked for
task-suggestion/not-opensuggestion "<id>" is <outcome>the outcome it already has
task-suggestion/open-limit3 suggestions are already openthe limit
task-suggestion/workspace-missingsession "<id>" belongs to no workspace or session "<id>" runs in a scheduled task's folderthe chat id

What a started chat runs as

How it ships

Questions, answered

What are the character limits for a suggestion?

A title is at most 60 characters, a tldr at most 240, and a brief at most 4000. All three are trimmed, and none may be empty.

How many suggestions can a chat offer?

At most one per turn, three waiting at a time and ten in a chat's lifetime. The three-open ceiling also applies when a dismissed suggestion is restored.

Can a chat that runs in a scheduled task's folder offer a suggestion?

No. Such a chat refuses with suggest_task: this chat runs in a scheduled task folder, where no new chat can start; offer no suggestions here, because a new chat cannot start there. See Scheduled tasks.

Can a helper offer a suggestion?

No. Only the top-level chat may offer one; a helper's call is refused with suggest_task is only for the top-level agent; report the follow-up in your result instead. A forked helper still sees the tool, but the call is refused when it runs.

What does the model see after a successful offer?

The result reads Suggested "<title>". The user decides whether to start it; do not start it yourself. The offer itself waits in the chat.

Do offers survive a restart?

Yes. Offers and settlements are durable records on the chat's session log, and the suggestion list is rebuilt from the log when the chat comes back.

What happens if Start is called twice for one suggestion?

The second call returns the same chat. Start is single-flight for one chat and one suggestion, so even two concurrent calls create one chat.

What does a started chat run with?

The offering chat's preset, model and permission. When no preset applies, the sandbox and approval settings are copied from the offering chat instead. A started chat never runs with more permission than the chat that offered it.

Can a brief create or complete a goal?

No. The brief is attributed to the suggestion rather than to a person, and checks that need a person's own instruction do not accept it; the started chat has to ask first.

What happens to a suggestion dismissed while its chat is being created?

It stays dismissed and receives no brief. Starting it again fails with task-suggestion/not-open.

What do the failure codes carry?

Each code carries the detail the caller needs: task-suggestion/not-found names the id, task-suggestion/not-open names the outcome the suggestion already has, task-suggestion/open-limit carries the limit, and task-suggestion/workspace-missing names the chat.