mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-09-08 10:14:35 +08:00
feat(agent): ship the Go agent canvas port — eino interrupt/resume + Redis check-pointing (#16035)
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>
This commit is contained in:
+138
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"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": []
|
||||
}
|
||||
Reference in New Issue
Block a user