- before: https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/origin/langgraph — a pure Python
create_agent(LangChain 1.x / LangGraph) HTTP service, before any eval integration. - after: https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/tier1/langgraph — the same app after integrating NiceEval.
server.py are translated one by one into standard events (tool-input -> operation.started, tool-output -> operation.finished, accumulated text-delta -> message, tool-approval-request -> stop turn + input.requested). HITL stop-turn state is stored through a typed ctx.session slot. The subject app is Python, while the eval side is a separate TypeScript project. App-side src/backend/*.py files are byte-for-byte unchanged. Use tier2/ for OTel waterfalls and tier3/ for feature A/B.
All integration code changes (measured from both directories when generated):