mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-05 02:55:48 +08:00
Replaces the Python agent canvas runtime with a Go implementation that runs inside `cmd/server_main`. The canvas compiles into an eino Workflow that pauses on wait-for-user via native Interrupt/Resume (no sentinel flag) and resumes from a Redis-backed CheckPointStore. All 21 Python agent components and ~35 tools are ported with functional parity. Sandbox providers now read their JSON config from the admin-panel system_settings table with env fallback. 234 files / +35,413 / -6,111. All Go files are gofmt-clean (CI gate added); drops the v2 DSL E2E step and the gap-analysis plan (both redundant after the port ships). ## Type of change - [x] Refactoring - [x] New feature - [x] Bug fix 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com>
139 lines
3.6 KiB
JSON
139 lines
3.6 KiB
JSON
{
|
||
"globals": {
|
||
"sys.conversation_turns": 0,
|
||
"sys.date": "",
|
||
"sys.files": [],
|
||
"sys.history": [],
|
||
"sys.query": "",
|
||
"sys.user_id": ""
|
||
},
|
||
"graph": {
|
||
"edges": [
|
||
{
|
||
"data": {
|
||
"isHovered": false
|
||
},
|
||
"id": "xy-edge__beginstart-Browser:BusyHatsSinkend",
|
||
"source": "begin",
|
||
"sourceHandle": "start",
|
||
"target": "Browser:BusyHatsSink",
|
||
"targetHandle": "end"
|
||
},
|
||
{
|
||
"data": {
|
||
"isHovered": false
|
||
},
|
||
"id": "xy-edge__Browser:BusyHatsSinkstart-Message:QuietMonkeysLeadend",
|
||
"source": "Browser:BusyHatsSink",
|
||
"sourceHandle": "start",
|
||
"target": "Message:QuietMonkeysLead",
|
||
"targetHandle": "end"
|
||
}
|
||
],
|
||
"nodes": [
|
||
{
|
||
"data": {
|
||
"form": {
|
||
"inputs": {},
|
||
"mode": "conversational",
|
||
"outputs": {},
|
||
"prologue": "Hi! I'm your assistant. What can I do for you?"
|
||
},
|
||
"label": "Begin",
|
||
"name": "begin"
|
||
},
|
||
"dragging": false,
|
||
"id": "begin",
|
||
"measured": {
|
||
"height": 81,
|
||
"width": 200
|
||
},
|
||
"position": {
|
||
"x": 218.5,
|
||
"y": 138.5
|
||
},
|
||
"selected": false,
|
||
"sourcePosition": "left",
|
||
"targetPosition": "right",
|
||
"type": "beginNode"
|
||
},
|
||
{
|
||
"data": {
|
||
"form": {
|
||
"chromium_sandbox": false,
|
||
"enable_default_extensions": false,
|
||
"frequencyPenaltyEnabled": true,
|
||
"frequency_penalty": 0.7,
|
||
"headless": true,
|
||
"llm_id": "deepseek-v4-pro@DeepSeek",
|
||
"maxTokensEnabled": false,
|
||
"max_steps": 30,
|
||
"max_tokens": 256,
|
||
"outputs": {
|
||
"content": {
|
||
"type": "string",
|
||
"value": ""
|
||
},
|
||
"downloaded_files": {
|
||
"type": "Array<Object>",
|
||
"value": []
|
||
}
|
||
},
|
||
"persist_session": true,
|
||
"presencePenaltyEnabled": true,
|
||
"presence_penalty": 0.4,
|
||
"prompts": "{sys.query}打开百度,搜索‘2026年最新AI技术趋势’,把前5条搜索结果的标题和链接总结给我。",
|
||
"temperature": 0.1,
|
||
"temperatureEnabled": true,
|
||
"topPEnabled": true,
|
||
"top_p": 0.3,
|
||
"upload_sources": ""
|
||
},
|
||
"label": "Browser",
|
||
"name": "Browser_0"
|
||
},
|
||
"dragging": false,
|
||
"id": "Browser:BusyHatsSink",
|
||
"measured": {
|
||
"height": 49,
|
||
"width": 200
|
||
},
|
||
"position": {
|
||
"x": 385.29079417409025,
|
||
"y": 264.3466325548784
|
||
},
|
||
"selected": true,
|
||
"sourcePosition": "right",
|
||
"targetPosition": "left",
|
||
"type": "ragNode"
|
||
},
|
||
{
|
||
"data": {
|
||
"form": {
|
||
"content": [
|
||
"{Browser:BusyHatsSink@content}\n{Browser:BusyHatsSink@downloaded_files}"
|
||
]
|
||
},
|
||
"label": "Message",
|
||
"name": "回复消息_0"
|
||
},
|
||
"dragging": false,
|
||
"id": "Message:QuietMonkeysLead",
|
||
"measured": {
|
||
"height": 85,
|
||
"width": 200
|
||
},
|
||
"position": {
|
||
"x": 554.7907941740903,
|
||
"y": 120.3466325548784
|
||
},
|
||
"selected": false,
|
||
"sourcePosition": "right",
|
||
"targetPosition": "left",
|
||
"type": "messageNode"
|
||
}
|
||
]
|
||
},
|
||
"variables": []
|
||
}
|