From 9211113a12b0554f8cbb251d49f1b85ebe20d06e Mon Sep 17 00:00:00 2001 From: Abdul Rahman <81605929+abdulrahmancodes@users.noreply.github.com> Date: Thu, 24 Jul 2025 02:38:17 +0530 Subject: [PATCH] Fix AI agent workflow node output variables issue (#13396) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/user-attachments/assets/2d086fb6-7c3d-4584-adc0-b2781072be4a --------- Co-authored-by: Félix Malfait --- .../agent/agent-execution.service.ts | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/packages/twenty-server/src/engine/metadata-modules/agent/agent-execution.service.ts b/packages/twenty-server/src/engine/metadata-modules/agent/agent-execution.service.ts index 38c035ca9..f008bec09 100644 --- a/packages/twenty-server/src/engine/metadata-modules/agent/agent-execution.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/agent/agent-execution.service.ts @@ -26,6 +26,7 @@ import { FileEntity } from 'src/engine/core-modules/file/entities/file.entity'; import { FileService } from 'src/engine/core-modules/file/services/file.service'; import { extractFolderPathAndFilename } from 'src/engine/core-modules/file/utils/extract-folderpath-and-filename.utils'; import { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service'; +import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; import { AgentChatMessageEntity, AgentChatMessageRole, @@ -33,23 +34,19 @@ import { import { AgentToolService } from 'src/engine/metadata-modules/agent/agent-tool.service'; import { AGENT_CONFIG } from 'src/engine/metadata-modules/agent/constants/agent-config.const'; import { AGENT_SYSTEM_PROMPTS } from 'src/engine/metadata-modules/agent/constants/agent-system-prompts.const'; +import { RecordIdsByObjectMetadataNameSingularType } from 'src/engine/metadata-modules/agent/types/recordIdsByObjectMetadataNameSingular.type'; import { convertOutputSchemaToZod } from 'src/engine/metadata-modules/agent/utils/convert-output-schema-to-zod'; +import { WorkspacePermissionsCacheService } from 'src/engine/metadata-modules/workspace-permissions-cache/workspace-permissions-cache.service'; +import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager'; import { OutputSchema } from 'src/modules/workflow/workflow-builder/workflow-schema/types/output-schema.type'; import { resolveInput } from 'src/modules/workflow/workflow-executor/utils/variable-resolver.util'; import { streamToBuffer } from 'src/utils/stream-to-buffer'; -import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager'; -import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; -import { RecordIdsByObjectMetadataNameSingularType } from 'src/engine/metadata-modules/agent/types/recordIdsByObjectMetadataNameSingular.type'; -import { WorkspacePermissionsCacheService } from 'src/engine/metadata-modules/workspace-permissions-cache/workspace-permissions-cache.service'; -import { AgentException, AgentExceptionCode } from './agent.exception'; import { AgentEntity } from './agent.entity'; +import { AgentException, AgentExceptionCode } from './agent.exception'; export interface AgentExecutionResult { - result: { - textResponse: string; - structuredOutput?: object; - }; + result: object; usage: { promptTokens: number; completionTokens: number; @@ -377,7 +374,7 @@ export class AgentExecutionService { if (Object.keys(schema).length === 0) { return { - result: { textResponse: textResponse.text }, + result: { response: textResponse.text }, usage: textResponse.usage, }; } @@ -393,10 +390,7 @@ export class AgentExecutionService { }); return { - result: { - textResponse: textResponse.text, - structuredOutput: output.object, - }, + result: output.object, usage: { promptTokens: (textResponse.usage?.promptTokens ?? 0) +