mirror of
https://github.com/block/buzz.git
synced 2026-10-27 12:40:30 +00:00
fix(agent): preserve Databricks Opus UC reasoning and tool continuation (#7840)
## Summary Fix `reasoning_effort: Extra inputs are not permitted` for Databricks v2 model `data_workflow_tools.goose.goose-claude-opus-5-5` without dropping explicit High. - Add one provider-qualified exact capability record: Anthropic Messages, adaptive thinking, `output_config.effort`, medium upstream default. Mirror exact-record precedence in Rust/TS; keep uncurated UC services neutral and existing GPT routing unchanged. - Preserve ordered native content, including signed/empty thinking and redacted blocks, across tool results. Do not cache-stamp thinking blocks or leak native state into Chat reasoning details. Discard truncated native state; reject more than 64 native calls before any tool executes instead of altering signed content. - Add production-dispatch/ACP regressions and six shared capability vectors. No relay/ACP protocol, schema, settings, inheritance, retries, or other harness changes. ## Validation At final head `82f43f8d07bfcc3f4af492afc0a58a02f8e549c4`, clean tree: - Rebuilt real `buzz-agent`, drove ACP with a harmless MCP fixture against the actual service. Two POSTs to `/ai-gateway/anthropic/v1/messages`, both HTTP 200, exact FQN, High via `output_config`, adaptive/summarized thinking, no `reasoning_effort`. First response contained signed thinking + tool use; second request preserved signature/content order and paired result; final ACP stop `end_turn`. No credentials, signature contents, or conversation data included here. - Mandatory pre-commit/pre-push checks passed: formatting/lint, file-size gate, Rust test lanes, desktop typechecking and full JS tests, Tauri clippy/tests. - Full `cargo test -p buzz-agent` passed on the pre-commit tree (only hook formatting followed), including the new native truncation/65-call ACP regressions, ordered interleaved signed/redacted two-tool capture, nearby-ID negatives, and existing provider regressions. - Independent API/replay, regression-boundary, and Rust/TS capability reviews cleared. Full `just ci`, packaging and manual desktop UI testing were not run locally; repository CI remains the merge gate. Cross-harness internals and other UC service contracts are outside scope. ## References - [Databricks model services](https://docs.databricks.com/aws/en/ai-gateway/query-model-services) - [Anthropic thinking preservation](https://platform.claude.com/docs/en/build-with-claude/thinking#thinking-block-preservation-by-model) - [Anthropic effort](https://platform.claude.com/docs/en/build-with-claude/effort) - Originating Buzz channel: `fccdea96-0f31-4343-ba6a-324214dc8d73` - Originating thread: buzz://message?channel=fccdea96-0f31-4343-ba6a-324214dc8d73&id=33f242923a317e269c1ff7b960cacd6ec1f3371eff2f97592857804c50fb100c Signed-off-by: Wes <wesbillman@users.noreply.github.com> Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz> Co-authored-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
This commit is contained in:
@@ -431,6 +431,24 @@
|
||||
"databricks-claude-opus-4-7"
|
||||
],
|
||||
"exact_records": [
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "data_workflow_tools.goose.goose-claude-opus-5-5",
|
||||
"registry_label": "Claude Opus 5.5",
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"_provenance": "Exact UC service: native Messages with adaptive thinking and output_config.effort=high verified by synthetic tool-result round trip on 2026-09-23. Not inferred for other UC namespaces.",
|
||||
"source": "https://docs.databricks.com/aws/en/ai-gateway/query-model-services; https://platform.claude.com/docs/en/build-with-claude/effort"
|
||||
},
|
||||
{
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "databricks-gpt-5-4-mini",
|
||||
|
||||
@@ -2347,6 +2347,127 @@
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"_group": "Verified Databricks Opus UC service and exact-record boundaries"
|
||||
},
|
||||
{
|
||||
"id": "dbv2-opus-uc-exact",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "data_workflow_tools.goose.goose-claude-opus-5-5",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": "Claude Opus 5.5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-opus-uc-case",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "DATA_WORKFLOW_TOOLS.GOOSE.GOOSE-CLAUDE-OPUS-5-5",
|
||||
"expect": {
|
||||
"thinking_mode": "adaptive",
|
||||
"supported_efforts": [
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh",
|
||||
"max"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "anthropic-messages",
|
||||
"normalization_policy": "none",
|
||||
"registry_label": "Claude Opus 5.5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-opus-uc-namespace",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "other.goose.goose-claude-opus-5-5",
|
||||
"expect": {
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-clamp-max-to-xhigh",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-opus-uc-service",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "data_workflow_tools.goose.goose-claude-opus-5-5-preview",
|
||||
"expect": {
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-clamp-max-to-xhigh",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-opus-uc-system",
|
||||
"provider": "databricks_v2",
|
||||
"raw_model_id": "system.ai.claude-opus-5-5",
|
||||
"expect": {
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "mlflow-chat",
|
||||
"normalization_policy": "openai-clamp-max-to-xhigh",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "dbv2-opus-uc-provider",
|
||||
"provider": "openai",
|
||||
"raw_model_id": "data_workflow_tools.goose.goose-claude-opus-5-5",
|
||||
"expect": {
|
||||
"thinking_mode": "none",
|
||||
"supported_efforts": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"default_effort": "medium",
|
||||
"databricks_v2_wire_route": "not-applicable",
|
||||
"normalization_policy": "openai-clamp-max-to-xhigh",
|
||||
"registry_label": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"_group": "Databricks FQN GPT-5+ Responses routing",
|
||||
"_note": "Only the service component selects Responses; effort capabilities remain neutral."
|
||||
|
||||
Reference in New Issue
Block a user