mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-02 08:45:42 +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>
175 lines
4.8 KiB
JSON
175 lines
4.8 KiB
JSON
{
|
|
"globals": {
|
|
"sys.conversation_turns": 0,
|
|
"sys.date": "",
|
|
"sys.files": [],
|
|
"sys.history": [],
|
|
"sys.query": "",
|
|
"sys.user_id": ""
|
|
},
|
|
"graph": {
|
|
"edges": [
|
|
{
|
|
"id": "xy-edge__beginstart-Categorize:TamePartsLookend",
|
|
"source": "begin",
|
|
"sourceHandle": "start",
|
|
"target": "Categorize:TamePartsLook",
|
|
"targetHandle": "end"
|
|
},
|
|
{
|
|
"data": {
|
|
"isHovered": false
|
|
},
|
|
"id": "xy-edge__Categorize:TamePartsLookaac5cf51-6f8d-4dfd-8b94-979707801675-Message:AngryTeamsKnockend",
|
|
"source": "Categorize:TamePartsLook",
|
|
"sourceHandle": "aac5cf51-6f8d-4dfd-8b94-979707801675",
|
|
"target": "Message:AngryTeamsKnock",
|
|
"targetHandle": "end"
|
|
},
|
|
{
|
|
"id": "xy-edge__Categorize:TamePartsLook11694d3c-8300-4bf9-b2c9-2fe92fcc45eb-Message:PunyPetsFollowend",
|
|
"source": "Categorize:TamePartsLook",
|
|
"sourceHandle": "11694d3c-8300-4bf9-b2c9-2fe92fcc45eb",
|
|
"target": "Message:PunyPetsFollow",
|
|
"targetHandle": "end"
|
|
}
|
|
],
|
|
"nodes": [
|
|
{
|
|
"data": {
|
|
"label": "Begin",
|
|
"name": "begin"
|
|
},
|
|
"dragging": false,
|
|
"id": "begin",
|
|
"measured": {
|
|
"height": 49,
|
|
"width": 200
|
|
},
|
|
"position": {
|
|
"x": -407,
|
|
"y": 58.5
|
|
},
|
|
"selected": false,
|
|
"sourcePosition": "left",
|
|
"targetPosition": "right",
|
|
"type": "beginNode"
|
|
},
|
|
{
|
|
"data": {
|
|
"form": {
|
|
"frequencyPenaltyEnabled": false,
|
|
"frequency_penalty": 0.7,
|
|
"items": [
|
|
{
|
|
"description": "The question is not about the product usage, appearance and how it works. Just casual chat.",
|
|
"examples": [
|
|
{
|
|
"value": "How are you doing?\nWhat is your name?\nAre you a robot?\nWhat's the weather?\nWill it rain?"
|
|
}
|
|
],
|
|
"name": "casual",
|
|
"uuid": "aac5cf51-6f8d-4dfd-8b94-979707801675"
|
|
},
|
|
{
|
|
"description": "Complain even curse about the product or service you provide. But the comment is not specific enough.",
|
|
"examples": [
|
|
{
|
|
"value": "How bad is it.\nIt's really sucks.\\nDamn, for God's sake, can it be more steady?\\nShit, I just can't use this shit.\\nI can't stand it anymore"
|
|
}
|
|
],
|
|
"name": "complain",
|
|
"uuid": "11694d3c-8300-4bf9-b2c9-2fe92fcc45eb"
|
|
}
|
|
],
|
|
"llm_id": "glm-4-flash___OpenAI-API@OpenAI-API-Compatible#admin",
|
|
"maxTokensEnabled": false,
|
|
"max_tokens": 256,
|
|
"message_history_window_size": 1,
|
|
"outputs": {
|
|
"category_name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"parameter": "Precise",
|
|
"presencePenaltyEnabled": false,
|
|
"presence_penalty": 0.4,
|
|
"query": "sys.query",
|
|
"temperature": 0.1,
|
|
"temperatureEnabled": false,
|
|
"topPEnabled": false,
|
|
"top_p": 0.3
|
|
},
|
|
"label": "Categorize",
|
|
"name": "问题分类_0"
|
|
},
|
|
"dragging": false,
|
|
"id": "Categorize:TamePartsLook",
|
|
"measured": {
|
|
"height": 153,
|
|
"width": 200
|
|
},
|
|
"position": {
|
|
"x": -106.5,
|
|
"y": 31
|
|
},
|
|
"selected": true,
|
|
"sourcePosition": "right",
|
|
"targetPosition": "left",
|
|
"type": "categorizeNode"
|
|
},
|
|
{
|
|
"data": {
|
|
"form": {
|
|
"content": [
|
|
"{sys.query}11111\n\n"
|
|
]
|
|
},
|
|
"label": "Message",
|
|
"name": "回复消息_0"
|
|
},
|
|
"dragging": false,
|
|
"id": "Message:AngryTeamsKnock",
|
|
"measured": {
|
|
"height": 85,
|
|
"width": 200
|
|
},
|
|
"position": {
|
|
"x": 177.5,
|
|
"y": 32
|
|
},
|
|
"selected": false,
|
|
"sourcePosition": "right",
|
|
"targetPosition": "left",
|
|
"type": "messageNode"
|
|
},
|
|
{
|
|
"data": {
|
|
"form": {
|
|
"content": [
|
|
"{sys.query}22222"
|
|
]
|
|
},
|
|
"label": "Message",
|
|
"name": "回复消息_1"
|
|
},
|
|
"dragging": false,
|
|
"id": "Message:PunyPetsFollow",
|
|
"measured": {
|
|
"height": 85,
|
|
"width": 200
|
|
},
|
|
"position": {
|
|
"x": 179.5,
|
|
"y": 158
|
|
},
|
|
"selected": false,
|
|
"sourcePosition": "right",
|
|
"targetPosition": "left",
|
|
"type": "messageNode"
|
|
}
|
|
]
|
|
},
|
|
"variables": []
|
|
}
|