mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-28 11:48:10 +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:
@@ -294,12 +294,12 @@ if [[ "${ENABLE_WEBSERVER}" -eq 1 ]]; then
|
||||
sleep 1;
|
||||
done &
|
||||
|
||||
if [[ "${API_PROXY_SCHEME}" == "hybrid" ]]; then
|
||||
if [[ "${API_PROXY_SCHEME}" == "hybrid" ]] || [[ "${API_PROXY_SCHEME}" == "go" ]]; then
|
||||
while true; do
|
||||
echo "Attempt to start RAGFlow go server..."
|
||||
wait_for_server "http://127.0.0.1:9380/api/v1/system/healthz" "ragflow_server"
|
||||
echo "Starting RAGFlow go server..."
|
||||
bin/server_main
|
||||
bin/ragflow_server
|
||||
sleep 1;
|
||||
done &
|
||||
fi
|
||||
@@ -314,7 +314,7 @@ if [[ "${ENABLE_ADMIN_SERVER}" -eq 1 ]]; then
|
||||
sleep 1;
|
||||
done &
|
||||
|
||||
if [[ "${API_PROXY_SCHEME}" == "hybrid" ]]; then
|
||||
if [[ "${API_PROXY_SCHEME}" == "hybrid" ]] || [[ "${API_PROXY_SCHEME}" == "go" ]]; then
|
||||
while true; do
|
||||
echo "Attempt to starting Admin go server..."
|
||||
wait_for_server "http://127.0.0.1:9381/api/v1/admin/ping" "admin_server"
|
||||
|
||||
@@ -150,7 +150,6 @@ run_admin_server(){
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $retry_count -ge $MAX_RETRIES ]; then
|
||||
echo "admin_server.py failed after $MAX_RETRIES attempts. Exiting..." >&2
|
||||
cleanup
|
||||
@@ -269,5 +268,12 @@ if [[ "$START_DATA_SYNC" -eq 1 ]]; then
|
||||
PIDS+=($!)
|
||||
fi
|
||||
|
||||
# Start the Python admin server (9381) when ENABLE_ADMIN_SERVER=1
|
||||
run_admin_server &
|
||||
PIDS+=($!)
|
||||
|
||||
# Start the Go server(s) when running in hybrid or go mode
|
||||
run_go_servers
|
||||
|
||||
# Wait for all background processes to finish
|
||||
wait
|
||||
|
||||
@@ -21,7 +21,7 @@ server {
|
||||
}
|
||||
|
||||
location ~ ^/(v1|api) {
|
||||
proxy_pass http://127.0.0.1:9382;
|
||||
proxy_pass http://127.0.0.1:9384;
|
||||
include proxy.conf;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user