Avoid top-level composition in tool schemas

This commit is contained in:
wuyang6
2026-05-11 11:51:11 +08:00
parent 0e2a00990f
commit 8cca3793e0
6 changed files with 53 additions and 46 deletions
+11
View File
@@ -647,6 +647,17 @@ target: Agent(tag='地图导航')
self.assertEqual(export_payload['record_count'], 1)
self.assertTrue(table_exists)
def test_tool_schemas_avoid_top_level_composition_keywords(self) -> None:
# 部分 Bedrock/Anthropic 兼容后端不接受顶层 anyOf/oneOf/allOf。
blocked_keywords = {'anyOf', 'oneOf', 'allOf'}
violations = [
name
for name, tool in default_tool_registry().items()
if blocked_keywords.intersection(tool.parameters)
]
self.assertEqual(violations, [])
def test_data_agent_tools_route_relative_outputs_to_session_output(self) -> None:
with tempfile.TemporaryDirectory() as tmp_dir:
root = Path(tmp_dir)