AgentPool.create_agent() injects only llm_gateway (v2 path) into ConfigDrivenAgent and never sets the legacy _llm_client field. The previous _handle_llm_generate implementation gated the entire LLM call on `self._llm_client is None`, so every expert/board agent created via the pool silently fell through to the `llm_generate_no_client` placeholder — which is why the private board moderator/experts reported "LLM 不可用" even when the gateway and providers were healthy. Mirror the same precedence used by `_handle_direct`: prefer `_llm_gateway` (with agent_name/task_type for usage tracking), fall back to `_llm_client` for backward compatibility, and only return the no-client placeholder when both are unavailable. Add a unit test that constructs an agent with `llm_gateway` only (_llm_client is None) and asserts the gateway.chat path is taken. |
||
|---|---|---|
| .. | ||
| documents | ||
| e2e | ||
| integration | ||
| manual | ||
| routes | ||
| tools | ||
| unit | ||
| __init__.py | ||
| conftest.py | ||
| test_routing_chain.py | ||