Skip to content

feat: 为evaluation示例新增pytest配置,增加阈值失败兜底逻辑#218

Closed
CongkeChen wants to merge 1 commit into
mainfrom
internal_pipeline_test
Closed

feat: 为evaluation示例新增pytest配置,增加阈值失败兜底逻辑#218
CongkeChen wants to merge 1 commit into
mainfrom
internal_pipeline_test

Conversation

@CongkeChen

Copy link
Copy Markdown
Contributor

feat: 为evaluation示例新增pytest配置,在运行全量流水线的时候增加阈值失败兜底逻辑

@helloopenworld

Copy link
Copy Markdown
Contributor

AI Code Review

该 diff 仅包含一个文件:examples/evaluation/conftest.py。我已经追踪了它与评估模块(evaluation module)的关系,以及示例测试是如何调用该评估器的。

发现的问题

⚠️ Warning

  • examples/evaluation/conftest.py:25:兜底逻辑未覆盖 get_executer 路径,pass_at_k 示例仍会因阈值失败而报错
    • 该 autouse fixture 只 monkeypatch 了 AgentEvaluator.evaluate,但 examples/evaluation/pass_at_k/test_pass_at_k.py:18 走的是 AgentEvaluator.get_executer(...) + await executer.evaluate(),而 _EvaluationCasesFailed 是在 executer.evaluate()_run() 内抛出的(trpc_agent_sdk/evaluation/_agent_evaluator.py:231),不经过被替换的 AgentEvaluator.evaluate。因此该测试在阈值不达标时仍会抛错失败,兜底目标未达成。建议在 _safe_evaluate 之外对 _EvalExecuter.evaluate 一并包装,或在 pass_at_k 测试内捕获 _EvaluationCasesFailed

💡 Suggestion

  • examples/evaluation/conftest.py:6:依赖私有符号 _EvaluationCasesFailed
    • 直接从 _agent_evaluator 导入私有异常增加了与内部实现的耦合;若该异常后续重命名或调整,conftest 会静默失效(except 捕获不到,兜底退化为原样抛出)。可考虑在 trpc_agent_sdk.evaluation 公开该异常或导出别名,提升维护稳定性。

总结

该 PR 为示例测试增加阈值失败兜底,思路清晰,但兜底未覆盖 get_executer 路径,pass_at_k 示例仍可能因阈值失败而报错,建议补齐覆盖;无 Critical 级阻塞问题。由于 testpaths=["tests"] 且 CI 仅运行 tests/.github/workflows/ci.yml:78),这些示例测试不进入 CI,线上风险较低。

测试建议

  • 补充一个用例:构造会触发 _EvaluationCasesFailed 的 eval set,分别通过 AgentEvaluator.evaluateget_executer+executer.evaluate 两条路径运行,验证两条路径都被兜底为非致命。

@CongkeChen CongkeChen closed this Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants