修复智能体市场点击安装无效的问题

This commit is contained in:
jingrow 2025-11-03 04:28:25 +08:00
parent fb2363be65
commit cad79887f5
2 changed files with 18 additions and 8 deletions

View File

@ -268,23 +268,26 @@ async function performPublish() {
throw new Error(t('Agent flow data is required')) throw new Error(t('Agent flow data is required'))
} }
// agent_flow // agent_flow JSON
// 使
let flowData = agentFlow let flowData = agentFlow
if (typeof agentFlow === 'string') { if (typeof agentFlow === 'string') {
try { try {
flowData = JSON.parse(agentFlow) flowData = JSON.parse(agentFlow)
} catch (e) { } catch (e) {
// throw new Error(t('Invalid agent flow data format'))
} }
} else if (typeof agentFlow !== 'object' || agentFlow === null) {
throw new Error(t('Agent flow data must be a valid JSON object'))
} }
// // flowData JSON
const publishData = { const publishData = {
agent_name: agentName, agent_name: agentName,
title: props.record?.title || agentName, title: props.record?.title || agentName,
subtitle: props.record?.subtitle || '', subtitle: props.record?.subtitle || '',
description: props.record?.description || '', description: props.record?.description || '',
agent_flow: flowData agent_flow: flowData // axios JSON
} }
const response = await axios.post('/jingrow/agent/publish', publishData, { const response = await axios.post('/jingrow/agent/publish', publishData, {

View File

@ -856,12 +856,9 @@ async def install_agent(payload: Dict[str, Any]):
value=agent_name, value=agent_name,
) )
# 准备数据
agent_data = { agent_data = {
"agent_name": agent_name, "agent_name": agent_name,
"agent_flow": json.dumps(agent_flow, ensure_ascii=False) if isinstance(agent_flow, dict) else agent_flow, "agent_flow": json.dumps(agent_flow, ensure_ascii=False) if isinstance(agent_flow, dict) else agent_flow,
"status": "Active",
"enabled": 1,
"trigger_mode": "Manual Trigger" "trigger_mode": "Manual Trigger"
} }
@ -938,10 +935,20 @@ async def publish_agent_to_marketplace(payload: Dict[str, Any]):
headers['Content-Type'] = 'application/json' headers['Content-Type'] = 'application/json'
# 准备 agent_data # 准备 agent_data
# agent_flow 是 JSON 字段前端发送的可能是对象dict或字符串
# 需要统一转换为字符串格式发送到云端
agent_flow_str = agent_flow
if isinstance(agent_flow, dict):
# 如果是对象,转为 JSON 字符串
agent_flow_str = json.dumps(agent_flow, ensure_ascii=False)
elif not isinstance(agent_flow, str):
# 如果不是字符串也不是对象,尝试转为字符串
agent_flow_str = json.dumps(agent_flow, ensure_ascii=False)
agent_data = { agent_data = {
"agent_name": agent_name, "agent_name": agent_name,
"title": title, "title": title,
"agent_flow": agent_flow if isinstance(agent_flow, str) else json.dumps(agent_flow, ensure_ascii=False), "agent_flow": agent_flow_str,
"description": description, "description": description,
"subtitle": subtitle or "" "subtitle": subtitle or ""
} }