Fix AI agent workflow node output variables issue (#13396)
https://github.com/user-attachments/assets/2d086fb6-7c3d-4584-adc0-b2781072be4a --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
@ -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 { 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 { 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 { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service';
|
||||||
|
import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity';
|
||||||
import {
|
import {
|
||||||
AgentChatMessageEntity,
|
AgentChatMessageEntity,
|
||||||
AgentChatMessageRole,
|
AgentChatMessageRole,
|
||||||
@ -33,23 +34,19 @@ import {
|
|||||||
import { AgentToolService } from 'src/engine/metadata-modules/agent/agent-tool.service';
|
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_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 { 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 { 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 { 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 { resolveInput } from 'src/modules/workflow/workflow-executor/utils/variable-resolver.util';
|
||||||
import { streamToBuffer } from 'src/utils/stream-to-buffer';
|
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 { AgentEntity } from './agent.entity';
|
||||||
|
import { AgentException, AgentExceptionCode } from './agent.exception';
|
||||||
|
|
||||||
export interface AgentExecutionResult {
|
export interface AgentExecutionResult {
|
||||||
result: {
|
result: object;
|
||||||
textResponse: string;
|
|
||||||
structuredOutput?: object;
|
|
||||||
};
|
|
||||||
usage: {
|
usage: {
|
||||||
promptTokens: number;
|
promptTokens: number;
|
||||||
completionTokens: number;
|
completionTokens: number;
|
||||||
@ -377,7 +374,7 @@ export class AgentExecutionService {
|
|||||||
|
|
||||||
if (Object.keys(schema).length === 0) {
|
if (Object.keys(schema).length === 0) {
|
||||||
return {
|
return {
|
||||||
result: { textResponse: textResponse.text },
|
result: { response: textResponse.text },
|
||||||
usage: textResponse.usage,
|
usage: textResponse.usage,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -393,10 +390,7 @@ export class AgentExecutionService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
result: {
|
result: output.object,
|
||||||
textResponse: textResponse.text,
|
|
||||||
structuredOutput: output.object,
|
|
||||||
},
|
|
||||||
usage: {
|
usage: {
|
||||||
promptTokens:
|
promptTokens:
|
||||||
(textResponse.usage?.promptTokens ?? 0) +
|
(textResponse.usage?.promptTokens ?? 0) +
|
||||||
|
|||||||
Reference in New Issue
Block a user