You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(sdk,core,webapp): chat sessions accept concurrencyKey and trigger-time named limits
Chat agents already accept the task-level concurrency option, but the
session trigger path had no way to scope runs: SessionTriggerConfig now
carries concurrencyKey and up to two named limits, threaded through the
session run trigger (initial, continuation, and upgrade re-triggers) and
forwarded by all three session starters (createStartSessionAction, the
AgentChat client, and handover). Keys are never defaulted from the chat
ID; a session without one shares the task's keyless pool. Named limits
are validated client-side with the same rules as tasks.trigger.
Chat agents can now scope concurrency per session. Pass `concurrencyKey` (for example your chat or tenant ID) and trigger-time named limits via `triggerConfig.concurrency` when starting a chat session, from `chat.createStartSessionAction`, the `AgentChat` client, or a handover. Keys are never defaulted, so a session without one shares the task's keyless pool.
Copy file name to clipboardExpand all lines: docs/ai-chat/client-protocol.mdx
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -206,6 +206,8 @@ Pick `"preload"` when the UI has rendered but the user hasn't typed (warms the a
206
206
|`expiresAt`|`string` (ISO date) | Retention cap. |
207
207
|`triggerConfig.machine`|`string`| Machine preset (`micro`, `small-1x`, …) for every run. |
208
208
|`triggerConfig.queue`|`string`| Queue name. |
209
+
|`triggerConfig.concurrency`|`string[]`| Up to two [named concurrency limits](/concurrency#sharing-a-limit-between-tasks) every run holds, replacing the task's declared named limits. |
210
+
| `triggerConfig.concurrencyKey` | `string` | Scopes every run of this session to its own pool under each `perKey` bound it holds. Never defaulted — pass one (e.g. your chat or tenant ID) to isolate sessions from each other. |
209
211
| `triggerConfig.tags` | `string[]` | Tags applied to every run (in addition to session-level `tags`). |
210
212
| `triggerConfig.maxAttempts` | `number` | Per-run retry cap (1–10). |
0 commit comments