Verify example catalog against conductor-oss 3.32.0-rc.8; fix broken examples + worker-tool registry lookup#437
Closed
ling-senpeng13 wants to merge 1 commit into
Closed
Conversation
….8; fix 9 broken examples + worker-tool registry lookup Full verification run of the example catalog (agents suite: 96 PASS / 46 SKIP / 2 ERROR / 2 HUNG; core suite: 13 PASS / 4 daemon-by-design / 1 interactive) — see examples/VERIFICATION_REPORT.md for status tracking, environment, root causes, and remaining known failures. Example fixes (all verified end-to-end against a live server): - greetings_worker.py: duplicate `def greet` shadowed the registered worker and broke spawn pickling on macOS/Windows (workers_e2e, helloworld, task_listener_example) - worker_example.py: hardcoded /Users/viren metrics dir -> tempfile - user_workers.py: import via examples.* package identity crashed spawn children that load the module as user_example.* - kitchen_sink.py: @agent classifier functions must take zero args - 16i/16j: tools defined inside factory functions are not importable by spawn workers (SpawnSafetyError) — hoisted to module level - 94_openai_runner_tools.py: keep the plain function at module level and apply function_tool() at Agent construction so the module global is not rebound to an unpicklable FunctionTool - llm_chat.py: server requires a non-empty user message (two tasks sent system-only lists); also exit non-zero when the workflow ends FAILED instead of reporting success on any terminal state - run_all_examples.py: classify 6 env-dependent examples as SKIP with reasons (dg skill repo; workflow messages API absent in rc.8) SDK fix: - tool.py _try_worker_task: registry identity check failed once ToolRegistry.register_tool_workers re-registered the task name with a spawn-safe ToolWorkerEntry wrapper; lookup now walks __wrapped__ / fn_direct / fn_ref carriers (broke 14_existing_workers.py; 2 regression tests added, tests/unit/ai: 1744 passed) Docs: - examples/agents/README.md + examples/README.md: agent examples require conductor-oss >= 3.32.0-rc.8 (`conductor server start --version 3.32.0-rc.8`); the CLI's `latest` (3.30.x) has no /api/agent/* and fails with AgentNotFoundError HTTP 404. Also fixed the provider/model table (OpenAI row showed the Anthropic default string). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
🚀 New features to boost your workflow:
|
Contributor
Author
|
Closing to split this into two draft PRs: (1) verification report + docs only, (2) the example/SDK fixes — so the fixes can be evaluated separately. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Full verification of the SDK example catalog against a live conductor-oss 3.32.0-rc.8 server, tracked in examples/VERIFICATION_REPORT.md, plus fixes for every reproducible example bug found and one SDK bug.
Documentation only for the server-version issue — no CLI/pipeline version change. The agent examples require conductor-oss ≥ 3.32.0-rc.8 (agent runtime on by default); the CLI's floating
latest(3.30.x) has no/api/agent/*endpoints. The READMEs now say so and giveconductor server start --version 3.32.0-rc.8. Thelatestpointer resolves itself at 3.32.0 GA.Test status (tracked in the report)
examples/agents/, 146 files)latest)tests/unit/aiExample fixes (each verified end-to-end)
def greetshadowed the registered worker → spawn-pickling failure on macOS/Windows (brokeworkers_e2e,helloworld,task_listener_example)/Users/viren/metrics dir →tempfile.gettempdir()examples.*import vsuser_example.*module identity crashed spawn children@agentclassifiers must take zero args (decorator evaluates them for dynamic instructions)SpawnSafetyError) → hoisted to module levelfunction_tool()atAgent(...)construction so the module global isn't rebound to an unpicklableFunctionToolis_completed()is true for any terminal state); both fixedSDK fix
_try_worker_taskinconductor/ai/agents/tool.py: the registry identity check broke onceToolRegistry.register_tool_workersre-registered a task name with a spawn-safeToolWorkerEntrywrapper — a secondget_tool_def()on the same@worker_tasktool raisedTypeError(broke14_existing_workers.py). Lookup now walks__wrapped__/fn_direct/fn_refcarriers. Two regression tests added.Remaining known failures (documented in the report, not fixed here)
kitchen_sink.py— server-side:translation_swarmsub-workflow definition not registered before/agent/start(HTTP 500)74_cli_error_output.py— flaky LLM-behavior assertion86_coding_agent.py— hangs >420s even solo68_context_condensation.py— passes solo (~346s), exceeds suite timeout under contentionFollow-ups suggested (out of scope)
AgentNotFoundErrorshould name the minimum server version;run_all_examples.pycould preflightGET /api/version; spawn-safety layer could learn a closure hop for openai-agentsFunctionTool.🤖 Generated with Claude Code