keep compact agent core tools available

This commit is contained in:
pewdiepie-archdaemon
2026-09-17 18:47:04 +00:00
parent 25ff725c1d
commit 4d7c9d44d1
5 changed files with 53 additions and 39 deletions
+22
View File
@@ -3093,6 +3093,28 @@ def test_preview_contract_keeps_only_routed_family_from_trained_inventory():
assert scoped.active_capabilities == {'notes'}
def test_preview_contract_adds_safe_interactive_core_beside_routed_tools():
core = {'web_search', 'web_fetch', 'private_browser', 'bash', 'ask_user'}
schemas = [
schema for schema in FUNCTION_TOOL_SCHEMAS
if schema['function']['name'] in core | {'manage_notes'}
]
preview = resolve_full_inventory_contract(schemas=schemas, policy=ToolPolicy())
routed = SimpleNamespace(
unavailable=frozenset(), offered=frozenset({'manage_notes'}),
required=frozenset({'manage_notes'}), capabilities=frozenset({'notes'}),
required_read_operation=None,
)
scoped = scope_preview_contract(
preview, routed, {'notes'}, extra_tools=core,
)
assert scoped.offered == core | {'manage_notes'}
assert scoped.required == {'manage_notes'}
assert {schema['function']['name'] for schema in scoped.schemas()} == core | {'manage_notes'}
def test_preview_contract_keeps_available_family_when_an_independent_family_is_unavailable():
schemas = [s for s in FUNCTION_TOOL_SCHEMAS if s['function']['name'] in {
'write_file', 'web_search',
+9
View File
@@ -34,6 +34,15 @@ def test_latest_topic_info_and_common_news_typo_route_to_web_search():
assert requested_capabilities(prompt) == frozenset({"search_browser"})
@pytest.mark.parametrize("prompt", [
"I'm using a WIKING fireplace; can I find an English manual online?",
"Can you look online",
"Could you search online for the operator's manual?",
])
def test_explicit_online_lookup_requests_route_to_web_search(prompt):
assert requested_capabilities(prompt) == frozenset({"search_browser"})
def test_successfully_used_tool_stays_offered_when_next_turn_routes_elsewhere():
contract = resolve(
{"notes"},