|
@@ -1,6 +1,6 @@
|
|
|
# Todo 51 Comparison Matrix Closeout Plan
|
|
# Todo 51 Comparison Matrix Closeout Plan
|
|
|
|
|
|
|
|
-**Status:** in_progress
|
|
|
|
|
|
|
+**Status:** done
|
|
|
|
|
|
|
|
## Goal
|
|
## Goal
|
|
|
|
|
|
|
@@ -61,3 +61,50 @@ The matrix compares shared user-visible semantics and normalized business result
|
|
|
- `node --check src/agent_lab/presentation/static/app.js`
|
|
- `node --check src/agent_lab/presentation/static/app.js`
|
|
|
- `uv run python -c "from agent_lab.main import app; print(app.title)"`
|
|
- `uv run python -c "from agent_lab.main import app; print(app.title)"`
|
|
|
- `git diff --check`
|
|
- `git diff --check`
|
|
|
|
|
+
|
|
|
|
|
+## Observe
|
|
|
|
|
+
|
|
|
|
|
+- The shared matrix runs 6 scenarios in both modes (`12 passed`): ordinary chat, volume, schedule, web search, termination, and parallel volume plus schedule.
|
|
|
|
|
+- Review required Todo 51.1 because the first matrix did not enforce fast first replies or inspect the actual mode-specific model request surface.
|
|
|
|
|
+- After Todo 51.1, each event scenario proves the first ChatAgent delta precedes tool completion; web search has exactly two model answers; schedule/parallel add one deterministic template; silent/terminate flows add no unintended second model answer.
|
|
|
|
|
+- `dual_agent` proves compact generated event catalog plus no provider tools; `chat_agent_tools` proves exact enabled schemas plus no generated catalog. Audit source is mode-correct.
|
|
|
|
|
+- Parallel cases require both handlers to start, release in reverse completion order, and still emit tool results in accepted input order.
|
|
|
|
|
+
|
|
|
|
|
+## Verification Evidence
|
|
|
|
|
+
|
|
|
|
|
+- Matrix: `12 passed in 0.22s`.
|
|
|
|
|
+- Focused runtime/plugin/storage/WebSocket regression: `231 passed`, one existing Starlette deprecation warning.
|
|
|
|
|
+- Full suite: `417 passed`, one existing Starlette deprecation warning.
|
|
|
|
|
+- `node --check src/agent_lab/presentation/static/app.js`: passed.
|
|
|
|
|
+- App import printed `Agent Lab`.
|
|
|
|
|
+- `git diff --check`: passed.
|
|
|
|
|
+
|
|
|
|
|
+## Experiment Conclusions
|
|
|
|
|
+
|
|
|
|
|
+Confirmed by this implementation and matrix:
|
|
|
|
|
+
|
|
|
|
|
+- one generic event kernel and flat built-in plugin registry serve both invocation modes;
|
|
|
|
|
+- both modes preserve the same normalized event execution and user-visible result-policy contract;
|
|
|
|
|
+- fast first replies, web-search two-answer ordering, multi-event parallelism, terminal behavior, session restoration, and comparable metric accounting have repeatable regression coverage;
|
|
|
|
|
+- token totals, logical tool counts, fallback rows, and turn wall time are separated so the two architectures can be measured without known double-counting.
|
|
|
|
|
+
|
|
|
|
|
+Not established by this closeout:
|
|
|
|
|
+
|
|
|
|
|
+- which mode has lower real-provider TTFT, turn latency, token cost, or monetary cost;
|
|
|
|
|
+- which mode produces better natural-language quality or event accuracy on live stochastic models;
|
|
|
|
|
+- real device, calendar, dialogue termination, and internet-search reliability.
|
|
|
|
|
+
|
|
|
|
|
+The current matrix uses scripted model streams and injected/default in-memory adapters. A production decision still requires paired live-provider and service-adapter benchmarks using fresh databases and the same comparison controls.
|
|
|
|
|
+
|
|
|
|
|
+## Remaining Risks
|
|
|
|
|
+
|
|
|
|
|
+- Some providers may suppress visible content when emitting native tool calls, weakening direct mode's first-reply behavior.
|
|
|
|
|
+- Fallback frequency and schema/prompt growth depend on the real capability set and user distribution.
|
|
|
|
|
+- Model randomness, provider usage reporting, and real search latency can dominate local deterministic results.
|
|
|
|
|
+- Reusing historical SQLite sessions can contaminate paired comparisons; benchmark runs should use isolated databases.
|
|
|
|
|
+- Monetary cost is not stored because it depends on provider/model pricing; estimate it from model call tokens outside the runtime.
|
|
|
|
|
+
|
|
|
|
|
+## Workflow Evolution Update
|
|
|
|
|
+
|
|
|
|
|
+- The requirement/todo loop, isolated worktree, per-todo commits, TDD, and follow-up `x.x` rows successfully contained review findings without rewriting completed todos.
|
|
|
|
|
+- Subagent model overrides and the default user-level uv cache were environment-specific friction. The main session used inherited subagent routing, explicit verification, and controlled Git commits. No repository workflow rule was added because these are not stable project requirements.
|