Continue in a new conversation
const url = 'https://api.asklucy.eu/v1/conversations/example/continue';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.asklucy.eu/v1/conversations/example/continue \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{}'A long conversation re-reads all its earlier messages on every
answer. This starts a new conversation of yours that carries on from
a short summary of this one instead: Lucy writes the summary (what
you are trying to do, what was decided, found or produced, the files
used, what is still open) and reads it in every answer of the new
conversation (carried_summary). The new conversation has no
messages yet; its title is this one’s with (continued), and it
keeps this one’s model while you may still choose it. The files
of this conversation are not attached to the new one.
The summary is charged to you like an answer, and refused like one
when a usage limit is reached (429 …/errors/quota-exceeded). Only
your own conversations can be continued (404 otherwise), not while
Lucy is answering (409 …/errors/answer-in-progress), and never an
agent run (409 …/errors/not-continuable). 502
…/errors/summary-unavailable when the summary couldn’t be written:
nothing is made or charged, try again; 503 with the same type when
continuing is not configured.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Any unique string (a UUID works). Retries with the same key return the first result.
Request Body
Section titled “Request Body”Nothing to send (an empty object is accepted).
object
Example generated
{}Responses
Section titled “Responses”The new conversation, with carried_from and carried_summary.
object
Set by the user, or by Lucy after the first answer.
Last message or change.
object
Zitadel user ID.
service is a customer system’s Zitadel service user; agent is a service agent (its ID is the agt_ ID), the author of its runs’ messages.
The answer Lucy is writing right now, if any.
When the retention policy deletes it.
The computer this conversation’s folders are on (one of the person’s devices), if any.
The folders of the person’s computer (local_device_id) added to
this conversation in the desktop app, by name (never their paths).
Lucy reaches them only for messages sent from the desktop app on
that computer.
object
The model chosen for this conversation’s answers (a Model.id);
null is Auto. It stays when the person can no longer choose,
but then answers use Auto.
How long Lucy’s sandbox keeps what it saved: a paused workspace (the files of a conversation after a few idle minutes) and published pages. Days; a field that is null or absent is inherited. The organization’s value is the default and the ceiling: a person or a conversation can only choose a shorter time. The effective value is the shortest that applies, within the platform’s maximum.
object
0 keeps no paused workspace (an idle sandbox is deleted with its files).
The agent run a conversation belongs to.
object
Whom the agent acts as.
owner: its creator, with exactly their access (their memory, their Microsoft 365, their quotas). Its runs are their conversations: they can read and continue them as themselves.service: itself (its ID is its principal). It reaches only what it was given: its knowledge files and the tools below, never anyone’s Microsoft 365. Only org_admins create and see service agents; their runs are read-only.
True for service runs, which nobody can continue.
The summary of the earlier conversation this one starts from:
Lucy reads it in every answer here. Plain text with short
headings. Only when one conversation is returned (GET /conversations/{id}, and the responses that create or change
one); null in lists, and for a conversation that continues none.
Only in search results (GET /conversations?q=…), where the search found it.
object
How the search found the conversation: words (in the title or the
messages), meaning (a passage close to q), or both.
The message that matches best, to open the conversation at. Null when only the title matched.
A few lines of that message, as plain text (no Markdown), with …
where it was cut: around the words found, or, found only by
meaning, the start of the passage that matched (no highlights then).
Null when only the title matched.
The words found in snippet, in order, as [start, end) offsets in
UTF-16 code units (JavaScript string indices). Empty when there is no
snippet.
object
Example
{ "id": "conv_2YgP0x", "created_by": { "kind": "person" }, "local_folders": [ { "name": "Contracts" } ], "model": "mistral-large-4-0", "agent_run": { "identity": "owner" }, "match": { "found_by": [ "words" ], "message_id": "msg_9Qa1Zt", "role": "user", "snippet": "… the invoices for March are due on the 15th, and the …" }}Missing, expired or invalid token.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
No such object in your organization.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
The object isn’t in a state that allows this (e.g. Lucy is already answering).
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
Rate limit (problem type …/errors/rate-limited, retry after
Retry-After) or quota used up (…/errors/quota-exceeded, with
quota saying which limit and when it resets). A message or a
continuation refused for a quota also emails the person, once per
window (unless their email_limits is false), and, when it is the
organization’s budget, its admins once a month.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
Seconds to wait before retrying.
Another service Lucy needed didn’t answer as it should (the problem’s type says which).
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
Storage for this isn’t configured on the server (e.g. …/errors/desktop-unavailable).
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
/conversations/{conversationId}/continue curl -X POST "https://api.asklucy.eu/v1/conversations/conv_7Hq2mKx9Rt/continue" \
-H "Authorization: Bearer $LUCY_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'