Add messages support to runAgent for multi-turn bot conversations (#23395)

- Extend `runAgent` so callers can pass either a one-shot prompt or a
multi-turn messages array (user / assistant text), matching AI SDK’s XOR
shape — for Slack/Discord/Teams bots that need thread history.
- Enforce exactly one of prompt | messages in AgentRunService; map
messages 1:1 to AI SDK ModelMessages in AgentAsyncExecutorService
- Update shared types, GraphQL/SDK inputs, docs (skills-and-agents), and
regenerate metadata clients; existing prompt-only callers stay unchanged

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/23395?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
This commit is contained in:
Abdul Rahman
2026-08-05 13:50:12 +05:30
committed by GitHub
parent 0b817e3bc0
commit ded3f1efb3
17 changed files with 394 additions and 67 deletions
@@ -5217,9 +5217,20 @@ export enum RowLevelPermissionPredicateOperand {
export type RunAgentInput = {
agentUniversalIdentifier: Scalars['String']['input'];
prompt: Scalars['String']['input'];
messages?: InputMaybe<Array<RunAgentMessageInput>>;
prompt?: InputMaybe<Scalars['String']['input']>;
};
export type RunAgentMessageInput = {
content: Scalars['String']['input'];
role: RunAgentMessageRole;
};
export enum RunAgentMessageRole {
assistant = 'assistant',
user = 'user'
}
export type RunAgentResult = {
__typename?: 'RunAgentResult';
error?: Maybe<Scalars['String']['output']>;