Skip to content

feat!: remove multi-turn simulation - #33

Open
schiehll wants to merge 1 commit into
mainfrom
chore/remove-multi-turn-simulation
Open

schiehll wants to merge 1 commit into
mainfrom
chore/remove-multi-turn-simulation

Conversation

@schiehll

Copy link
Copy Markdown

multi_turn_simulation() calls POST /agents/{systemVersionId}/simulate once per conversation turn (_multi_turn_simulation.py:210). That endpoint was removed from the API in scorecard-ai/scorecard#1008, which retired the Sim Agents, Endpoints, and Playground surfaces along with endpoint runs and multi-turn simulation.

Every call to the helper now 404s, and there is no client-side way to make it work — the simulated-user turn was computed server-side from a Sim Agent's system version, and Sim Agents are gone.

What this removes

  • src/scorecard_ai/lib/_multi_turn_simulation.py in full.
  • Its five exports from scorecard_ai.lib: multi_turn_simulation, StopCheck, StopChecks, ChatMessage, ConversationInfo.

Nothing else in the package imported that module — _helpers.py and wrap_llms.py are untouched, and run_and_evaluate / async_run_and_evaluate / wrap* are unaffected.

Why removal rather than a deprecation shim

Pinning an older SDK version does not help here: the endpoint is gone server-side, so the helper is dead for every released version, not just this one. A shim that always raises would leave ~300 lines of unreachable code behind for no working upgrade path.

The trade-off is that from scorecard_ai.lib import ChatMessage now raises ImportError rather than failing at call time. ChatMessage was a TypedDict of role / content defined inside the multi-turn module and used only by it, so anyone depending on it can replace it with their own two-field dict.

Marked feat! with a BREAKING CHANGE: trailer so release-please cuts a major.

Test plan

  • ruff check src/scorecard_ai/lib/ — all checks passed.
  • ruff format --check src/scorecard_ai/lib/ — 4 files already formatted.
  • pip install -e . into a clean venv, then imported scorecard_ai and scorecard_ai.lib: both import cleanly, __all__ is down to the six surviving names, and none of the five removed names resolve.
  • Grepped the repo for the removed symbols. The only remaining mention is a historical CHANGELOG.md entry, left alone.

Related

🤖 Generated with Claude Code

`multi_turn_simulation()` calls `POST /agents/{systemVersionId}/simulate`
once per turn. That endpoint was removed from the API in
scorecard-ai/scorecard#1008, which retired the Sim Agents and multi-turn
simulation surfaces, so every call now 404s. The helper cannot be made
to work from the client side.

Removes `src/scorecard_ai/lib/_multi_turn_simulation.py` and its exports
from `scorecard_ai.lib`: `multi_turn_simulation`, `StopCheck`,
`StopChecks`, `ChatMessage`, and `ConversationInfo`. Nothing else in the
package imported the module.

BREAKING CHANGE: `multi_turn_simulation`, `StopCheck`, `StopChecks`,
`ChatMessage`, and `ConversationInfo` are no longer exported from
`scorecard_ai.lib`. The API endpoint they relied on no longer exists, so
pinning an older SDK version does not keep them working.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@schiehll
schiehll requested a review from Yash1hi September 22, 2026 01:14
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