Root cause: ensure_structured_column() executed a synchronous blocking engine.connect().execute(SELECT information_schema.columns ...) inside the async request path (_build_chat_history / _maybe_compress_history), freezing the uvicorn event loop and hanging all endpoints (~200s, recovered only by docker restart). Fix: - chat_context.py: remove per-request ensure_structured_column() calls; run once idempotently at app startup (main.py lifespan). Use CURRENT_DATABASE() for PostgreSQL compatibility. - main.py: add startup-only ensure_structured_column() hook (try/except). - llm_client.py: trust_env=False + bounded httpx.Timeout/wait_for so broken endpoints fail fast instead of hanging the event loop. - chat_service.py: run media generation in a background daemon thread with its own event loop (_launch_media_task_bg) so SSE end does not cancel image/video tasks (#811); remove TEMP faulthandler diagnostic. Safe-align: persist accumulated live container changes (admin/*, knowledge, market, models, config, observability, mcp_client, platform_knowledge, im_bot_platform, chat_media, capability_registry, requirements) and add workflow_templates. Verified: live failover test (model-006 -> conn-refused) returns in ~1.9s with concurrent login 0.83s/200; event-loop responsiveness restored (sub-second).
36 lines
1.2 KiB
YAML
36 lines
1.2 KiB
YAML
version: "1.0"
|
|
name: "Multi-Agent Debate"
|
|
description: "Two agents debate a topic from opposing perspectives, then a judge agent synthesizes the conclusion."
|
|
category: creativity
|
|
|
|
nodes:
|
|
- id: proponent
|
|
type: llm
|
|
description: "Argue in favor of the proposition"
|
|
on_error: continue
|
|
config:
|
|
model: auto
|
|
system_prompt: "You are a skilled debater. Argue strongly IN FAVOR of the given proposition. Use logic, evidence, and persuasive reasoning. Be passionate but fair."
|
|
|
|
- id: opponent
|
|
type: llm
|
|
description: "Argue against the proposition"
|
|
on_error: continue
|
|
config:
|
|
model: auto
|
|
system_prompt: "You are a skilled debater. Argue strongly AGAINST the given proposition. Use logic, evidence, and persuasive reasoning to find flaws in the proponent's case."
|
|
|
|
- id: judge
|
|
type: llm
|
|
description: "Evaluate both sides and reach a conclusion"
|
|
on_error: continue
|
|
config:
|
|
model: auto
|
|
system_prompt: "You are an impartial judge. Evaluate both arguments fairly. Identify the strongest points from each side. Provide a balanced conclusion and recommendation."
|
|
|
|
edges:
|
|
- from: proponent
|
|
to: judge
|
|
- from: opponent
|
|
to: judge
|