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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
15
- Dynamic tools: `ToolDyn` is removed from the public API; use `DynamicTool` for runtime-defined tools. Rig's erased dispatch trait is private. Typed tools use `Tool::NAME` as their sole identity; runtime-named agents convert explicitly with `Agent::into_tool()`.
16
16
- Registration vocabulary: `AgentBuilder::tools(Vec<DynamicTool>)` becomes `dynamic_tools`, while retrieval-backed `dynamic_tools(sample, index, toolset)` becomes `retrieved_tools`. On `ToolSetBuilder`, `runtime_tool(DynamicTool)` becomes `dynamic_tool`, and the former embedding-backed `dynamic_tool(ToolEmbedding)` becomes `retrieved_tool`.
17
17
- Results and errors: replace `ToolError`, `ToolFailure`, `ToolFailureKind`, `ToolReturn`, `ToolReturnOutcome`, `ToolExecutionResult`, and `ToolOutcome` with `ToolExecutionError`, `ToolErrorKind`, and the read-only `ToolResult` observed by hooks.
18
-
- Model presentation: serializable outputs convert once into `ToolOutput`; strings remain literal text, structured values remain JSON, and multimodal tools return explicit `ToolOutput::Content`. Result hooks now rewrite `ToolOutput`, provider adapters render JSON only at their terminal wire boundary, mixed user/tool-result blocks retain order, and Rig never reparses strings to infer rich content.
19
-
- Error privacy: operator-facing error messages reach the model only when explicitly supplied with`with_model_feedback`; otherwise Rig emits stable kind-specific feedback. MCP responses preserve ordered supported text/image content, retain unsupported and future blocks as typed JSON, and attach raw `CallToolResult`, `structuredContent`, and response metadata to `ToolContext`. MCP list installation and refresh are atomic and ownership-aware, so stale handlers cannot replace or remove newer registrations.
18
+
- Model presentation: serializable outputs convert once into canonical `ToolOutput` content blocks; strings remain literal text, explicit `serde_json::Value`values remain JSON, and multimodal tools use `ToolOutput::content` / `ToolOutput::one` or return typed `ToolResultContent` directly. Result hooks now rewrite `ToolOutput`, provider adapters render JSON only at their terminal wire boundary, mixed user/tool-result blocks retain order, and Rig never reparses strings to infer rich content.
19
+
- Error presentation: detailed execution-error messages remain model-visible by default so argument, validation, and custom tool errors are actionable. Use `redact_model_feedback`when diagnostics contain secrets,`with_model_feedback` for replacement text, or `with_model_output` for JSON/multimodal feedback. MCP responses preserve ordered supported text/image content, retain unsupported and future blocks as typed JSON, and attach raw `CallToolResult`, `structuredContent`, and response metadata to `ToolContext`. MCP list installation and refresh are atomic and ownership-aware, so stale handlers cannot replace or remove newer registrations.
20
20
- Dispatch: replace `ToolSet::{call, call_with_extensions, call_structured}` with `ToolSet::execute`; replace `ToolServerHandle::{call_tool, call_tool_with_extensions, call_tool_structured}` with `ToolServerHandle::execute`.
21
21
- Registration and definitions: `ToolSet` is the single ordered registry and records whether each tool is always advertised or retrieval-only. `ToolSet::{get_tool_definitions, documents}` are now synchronous and infallible, `ToolServerHandle` registration/removal methods no longer return an artificial `Result`, and the obsolete `ToolSetError` is removed.
22
22
- Hooks: replace `AgentHook::on_event`, `StepEvent`, and `Flow` with the event-specific `AgentHook` methods and their corresponding action types (`CompletionCallAction`, `ToolCallAction`, `ToolResultAction`, `InvalidToolCallAction`, and `ObservationAction`). Invalid-tool hooks return `None` to defer; every explicit action, including `Fail`, is terminal for that hook stack.
Copy file name to clipboardExpand all lines: crates/rig-core/CHANGELOG.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
15
- Dynamic tools: `ToolDyn` is removed from the public API; use `DynamicTool` for runtime-defined tools. Rig's erased dispatch trait is private. Typed tools use `Tool::NAME` as their sole identity; runtime-named agents convert explicitly with `Agent::into_tool()`.
16
16
- Registration vocabulary: `AgentBuilder::tools(Vec<DynamicTool>)` becomes `dynamic_tools`, while retrieval-backed `dynamic_tools(sample, index, toolset)` becomes `retrieved_tools`. On `ToolSetBuilder`, `runtime_tool(DynamicTool)` becomes `dynamic_tool`, and the former embedding-backed `dynamic_tool(ToolEmbedding)` becomes `retrieved_tool`.
17
17
- Results and errors: replace `ToolError`, `ToolFailure`, `ToolFailureKind`, `ToolReturn`, `ToolReturnOutcome`, `ToolExecutionResult`, and `ToolOutcome` with `ToolExecutionError`, `ToolErrorKind`, and the read-only `ToolResult` observed by hooks.
18
-
- Model presentation: serializable outputs convert once into `ToolOutput`; strings remain literal text, structured values remain JSON, and multimodal tools return explicit `ToolOutput::Content`. Result hooks now rewrite `ToolOutput`, provider adapters render JSON only at their terminal wire boundary, mixed user/tool-result blocks retain order, and Rig never reparses strings to infer rich content.
19
-
- Error privacy: operator-facing error messages reach the model only when explicitly supplied with`with_model_feedback`; otherwise Rig emits stable kind-specific feedback. MCP responses preserve ordered supported text/image content, retain unsupported and future blocks as typed JSON, and attach raw `CallToolResult`, `structuredContent`, and response metadata to `ToolContext`. MCP list installation and refresh are atomic and ownership-aware, so stale handlers cannot replace or remove newer registrations.
18
+
- Model presentation: serializable outputs convert once into canonical `ToolOutput` content blocks; strings remain literal text, explicit `serde_json::Value`values remain JSON, and multimodal tools use `ToolOutput::content` / `ToolOutput::one` or return typed `ToolResultContent` directly. Result hooks now rewrite `ToolOutput`, provider adapters render JSON only at their terminal wire boundary, mixed user/tool-result blocks retain order, and Rig never reparses strings to infer rich content.
19
+
- Error presentation: detailed execution-error messages remain model-visible by default so argument, validation, and custom tool errors are actionable. Use `redact_model_feedback`when diagnostics contain secrets,`with_model_feedback` for replacement text, or `with_model_output` for JSON/multimodal feedback. MCP responses preserve ordered supported text/image content, retain unsupported and future blocks as typed JSON, and attach raw `CallToolResult`, `structuredContent`, and response metadata to `ToolContext`. MCP list installation and refresh are atomic and ownership-aware, so stale handlers cannot replace or remove newer registrations.
20
20
- Dispatch: replace `ToolSet::{call, call_with_extensions, call_structured}` with `ToolSet::execute`; replace `ToolServerHandle::{call_tool, call_tool_with_extensions, call_tool_structured}` with `ToolServerHandle::execute`.
21
21
- Registration and definitions: `ToolSet` is the single ordered registry and records whether each tool is always advertised or retrieval-only. `ToolSet::{get_tool_definitions, documents}` are now synchronous and infallible, `ToolServerHandle` registration/removal methods no longer return an artificial `Result`, and the obsolete `ToolSetError` is removed.
22
22
- Hooks: replace `AgentHook::on_event`, `StepEvent`, and `Flow` with the event-specific `AgentHook` methods and their corresponding action types (`CompletionCallAction`, `ToolCallAction`, `ToolResultAction`, `InvalidToolCallAction`, and `ObservationAction`). Invalid-tool hooks return `None` to defer; every explicit action, including `Fail`, is terminal for that hook stack.
0 commit comments