You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3a0516a
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,3 +29,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
29
29
- Worker processes killed by a signal now log a diagnostic hint (signal number, `PYTHONFAULTHANDLER=1` guidance) instead of restarting silently
30
30
- Per-schedule pause/resume now work on both Conductor server families: the client sends `PUT` (the OSS Conductor dialect — the spec-generated `GET` failed there) and transparently falls back to `GET` on a 405 for Orkes servers
31
31
-`Agent(model="claude-code/...")` registration no longer crashes with `SpawnSafetyError`/`PicklingError` under the `spawn` start method (top-level or nested as a sub-agent); the tool worker is now built through the same picklable passthrough path already used by other frameworks
32
+
-`AgentResult.tool_calls` no longer drops or misnames tool calls. A tool task was identified by a `call_` reference-name prefix, which is the LLM provider's tool-call id format — so an Anthropic-backed agent (`toolu_…`) recorded no tool calls at all. Tools are now identified by the task type they compiled to, and named from `_agent_tool_name` (set by the server on every tool kind), `method`, or the task definition. Consequences: `http`, `api`, `mcp`, `agent_tool`, `human` and `pull_workflow_messages` tools now appear at all; media and RAG tools report their own name instead of `generate_image`/`llm_index_text`; and a camelCase worker name is no longer lowercased, so `assert_tool_used(result, "getWeather")` matches
33
+
- `AgentResult.events` is now populated by `run()` and `run_async()` for natively-compiled agents, derived from the same execution already fetched for `tool_calls` rather than from an extra call. It was previously only filled in when an `on_event` callback or `stream()` was used, so the eight `conductor.ai.agents.testing` assertions that read events — `assert_no_errors`, `assert_handoff_to`, `assert_events_contain`, `assert_max_turns` and the rest — saw an empty list. Four of them check for *absence* and so passed vacuously, `assert_no_errors` on every eval case (`expect_no_errors` defaults to `True`); `expect_handoff_to`, used by the eval runner's own documented example, failed every time. Framework agents (LangChain, LangGraph, OpenAI Agents, Claude Agent SDK) also derive both fields from their execution's task list now: the whole agent runs inside one passthrough task, but the Claude Agent SDK injects a task per tool call, so those tool calls appear. LangChain and LangGraph publish their steps to the event stream rather than as tasks, so that detail still reaches `on_event` and `stream()` consumers only
34
+
- Tool arguments reported on `AgentEvent.args` and in `AgentResult.tool_calls` now agree, and both strip every key Conductor injects — previously `_agent_tool_name`, `_allowed_commands`, `__humanTaskDefinition` and `__conductor_agent_ctx__` leaked into one surface or the other
0 commit comments