Feat: Exported Agent JSON Should Include Conversation Variables Configuration #11796 (#12579)

### What problem does this PR solve?

Feat: Exported Agent JSON Should Include Conversation Variables
Configuration #11796

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu
2026-01-13 15:35:45 +08:00
committed by GitHub
parent 68e5c86e9c
commit accae95126
4 changed files with 29 additions and 13 deletions

View File

@ -97,6 +97,7 @@ export const EmptyDsl = {
retrieval: [], // reference
history: [],
path: [],
variables: [],
globals: {
[AgentGlobals.SysQuery]: '',
[AgentGlobals.SysUserId]: '',

View File

@ -1,5 +1,6 @@
import { useFetchAgent } from '@/hooks/use-agent-request';
import { downloadJsonFile } from '@/utils/file-util';
import { pick } from 'lodash';
import { useCallback } from 'react';
import { useBuildDslData } from './use-build-dsl';
@ -8,7 +9,8 @@ export const useHandleExportJsonFile = () => {
const { data } = useFetchAgent();
const handleExportJson = useCallback(() => {
downloadJsonFile(buildDslData().graph, `${data.title}.json`);
const dsl = pick(buildDslData(), ['graph', 'globals', 'variables']);
downloadJsonFile(dsl, `${data.title}.json`);
}, [buildDslData, data.title]);
return {

View File

@ -71,6 +71,7 @@ export const DataflowEmptyDsl = {
history: [],
path: [],
globals: {},
variables: [],
};
export function useCreateAgentOrPipeline() {

View File

@ -34,25 +34,36 @@ export const useHandleImportJsonFile = () => {
return;
}
const graphStr = await file.text();
const graphOrDslStr = await file.text();
const errorMessage = t('flow.jsonUploadContentErrorMessage');
try {
const graph = JSON.parse(graphStr);
if (graphStr && !isEmpty(graph) && Array.isArray(graph?.nodes)) {
const nodes: Node[] = graph.nodes;
const graphOrDsl = JSON.parse(graphOrDslStr);
if (graphOrDslStr && !isEmpty(graphOrDsl)) {
let isAgent = true;
// Compatible with older versions
const graph = graphOrDsl?.graph ? graphOrDsl.graph : graphOrDsl;
if (Array.isArray(graph?.nodes)) {
const nodes: Node[] = graph.nodes;
if (
hasNode(nodes, DataflowOperator.Begin) &&
hasNode(nodes, DataflowOperator.Parser)
) {
isAgent = false;
if (
hasNode(nodes, DataflowOperator.Begin) &&
hasNode(nodes, DataflowOperator.Parser)
) {
isAgent = false;
}
}
const dsl = isAgent
? { ...EmptyDsl, graph }
: { ...DataflowEmptyDsl, graph };
? { ...EmptyDsl, graph: graph }
: { ...DataflowEmptyDsl, graph: graph };
if (graphOrDsl.globals) {
dsl.globals = graphOrDsl.globals;
}
if (graphOrDsl.variables) {
dsl.variables = graphOrDsl.variables;
}
setAgent({
title: name,
@ -66,6 +77,7 @@ export const useHandleImportJsonFile = () => {
message.error(errorMessage);
}
} catch (error) {
console.log('🚀 ~ useHandleImportJsonFile ~ error:', error);
message.error(errorMessage);
}
}