Todo 23 Agent Prompt and EventAgent LLM Plan
Status: done
Goal
Move prompt configuration into Agent configuration and make EventAgent use a real LLM tool-call step to generate tool parameters.
Why
Prompt Config is a separate modal while ChatAgent already owns the prompt that shapes visible replies. This splits one concept across two places. EventAgent also still resolves mock parameters locally; the target design requires EventAgent to use conversation context plus the selected event tool schema to ask the LLM for real arguments before executing tools.
Scope
- Remove the standalone Prompt Config button and modal.
- Move prompt set management, system prompts, and pre-messages into the ChatAgent config modal.
- Show the generated available-event protocol prompt in ChatAgent prompt by default.
- Keep ChatAgent free of provider tools.
- Restore provider
tool_calls parsing for EventAgent LLM parameter generation only.
- Make EventAgent call the LLM with only the corresponding event tool schema, then execute the returned arguments through the registry.
- Run multiple EventAgent events concurrently.
Implementation
- Removed the standalone Prompt Config modal and moved prompt-set, system prompt, and pre-message controls into ChatAgent config.
- Added a generated available-event protocol prompt from the selected tools and populated it into ChatAgent system prompt by default.
- Kept ChatAgent provider calls tool-free while preserving text event extraction from
delta.content.
- Restored provider
tool_calls parsing for EventAgent LLM requests.
- EventAgent now calls the LLM with exactly the selected event tool schema, then executes the returned arguments.
- EventAgent handles multiple events concurrently with
asyncio.gather.
Verification
- Parser test proves provider
tool_calls still become internal events for EventAgent.
- EventAgent tests prove it calls the LLM with the target tool schema, passes history/config, and executes generated arguments.
- Static UI tests prove Prompt Config is gone and prompt controls live in ChatAgent config.
- Runtime tests continue to prove ChatAgent receives no tools or
tool role history.
uv run pytest passes (51 passed, one existing Starlette deprecation warning).
UV_CACHE_DIR=.uv-cache uv run python -m py_compile ... passes for the changed Python modules.
- Local server started and returned the page, static assets, and
/api/tools; browser automation timed out during click verification, so modal click behavior is covered by static binding tests rather than a completed browser click run.