fischer-agentkit/tests
chiguyong 91a61f9b49 feat(evolution): auto-trigger + quality gate + actor marking (U6, R5/R6)
U6 of the complex task quality loop plan.

R5 (auto evolution trigger + quality gate):
- EvolutionConfig (Pydantic v2): success_sample_rate=0.1, min_confidence=0.5,
  min_examples=3, observe_only=True, cross_workspace_sharing=False
- Success path gated by success_sample_rate; failure path always runs (100%)
- Observe-only mode records reflections without feeding optimizer (RV14:
  avoids noise-driven prompt degradation during initial rollout)
- PromptOptimizer.can_optimize() consumption gate: sample count >= min_examples
  AND mean quality >= min_confidence
- PitfallDetector confidence threshold: low-confidence warnings marked
  observe-only; confidence = failure_rate * min(1.0, total/3) linear ramp
  (ponytail: upgrade to Wilson interval)

R6 (actor marking + cross-workspace sharing):
- All evolution artifacts (EvolutionLogEntry, Module, PitfallWarning) carry
  actor field; defaults to result.agent_name
- can_share_artifact(): same-workspace always allowed; cross-workspace requires
  explicit opt-in via EvolutionConfig.cross_workspace_sharing=True

KTD-8: gave_up_after_reflections treated as failure path (triggers 100%
evolution) even when stream wrapper marks status as COMPLETED. Detection via
output_data.trace_outcome or error_message substring (ponytail: heuristic;
upgrade path is a dedicated TaskResult.trace_outcome field).

Backward compat: all gates conditional on auto_evolution_config is not None;
existing EvolutionMixin usage without config preserves prior behavior.

Tests: tests/unit/test_evolution_auto_trigger.py (37 tests) covers R5/R6
scenarios - sample rate gate, observe-only, consumption gate, pitfall
confidence, actor marking, cross-workspace sharing, gave_up_after_reflections,
error handling, fire-and-forget, backpressure cap, AE3 happy path.
2026-07-03 13:54:37 +08:00
..
documents feat(documents): add document processing capability (U1-U9) 2026-06-23 15:05:01 +08:00
e2e refactor: remove all emoji from source code (#20) 2026-07-03 02:46:40 +08:00
integration fix(review): apply ce-code-review findings 2026-06-30 12:42:15 +08:00
manual test(u6): add L4 real-LLM smoke test for ReAct tool-use prompt 2026-07-02 22:08:45 +08:00
routes feat(documents): add document processing capability (U1-U9) 2026-06-23 15:05:01 +08:00
tools feat(documents): add document processing capability (U1-U9) 2026-06-23 15:05:01 +08:00
unit feat(evolution): auto-trigger + quality gate + actor marking (U6, R5/R6) 2026-07-03 13:54:37 +08:00
__init__.py feat: initial fischer-agentkit package with unified agent architecture 2026-06-04 22:24:06 +08:00
conftest.py fix: 私董会数据持久化修复 + emoji 移除计划 2026-07-02 01:07:12 +08:00
test_routing_chain.py feat: accumulated frontend enhancements, docs, and static assets 2026-06-14 16:35:01 +08:00