mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-06 06:52:20 +02:00
keep compact agent core tools available
This commit is contained in:
@@ -102,6 +102,13 @@ PREVIEW_TOOLS = (
|
||||
READ_TOOLS | SAFE_WRITE_TOOLS | EXPLICIT_EXECUTE_TOOLS | SAFE_UI_TOOLS
|
||||
| BROKERED_JOB_TOOLS | CONTRACT_REQUIRED_TOOLS
|
||||
)
|
||||
# Keep a small recovery-capable surface on every interactive compact agent
|
||||
# turn. Routing still adds domain tools, while policy and action guards remain
|
||||
# authoritative for execution. Python is deliberately excluded here because
|
||||
# the WebUI does not own a confined workspace.
|
||||
INTERACTIVE_CORE_TOOLS = frozenset({
|
||||
'web_search', 'web_fetch', 'private_browser', 'bash', 'ask_user',
|
||||
})
|
||||
# The interactive compact-v5 surface above stays unchanged. These tools are
|
||||
# added only for a server-validated ``odysseus-native`` request with an active,
|
||||
# confined workspace. This lets the model-specific clean runtime serve native
|
||||
|
||||
@@ -3970,6 +3970,17 @@ def requested_capabilities(message: str, history: Iterable = (), *, active_docum
|
||||
# Keep the common ``nees`` typo because a missed route leaves the model
|
||||
# with no way to answer and encourages it to ask unnecessary questions.
|
||||
return frozenset({"search_browser"})
|
||||
if (
|
||||
re.search(r"\b(?:online|on\s+the\s+(?:web|internet))\b", text, re.I)
|
||||
and re.search(
|
||||
r"\b(?:find|look|search|check|locate|get|download|available|manual|guide|docs?)\b",
|
||||
text,
|
||||
re.I,
|
||||
)
|
||||
):
|
||||
# Explicitly asking Odysseus to look online is sufficient web intent,
|
||||
# including referential follow-ups such as "Can you look online?".
|
||||
return frozenset({"search_browser"})
|
||||
if (
|
||||
len(concrete_urls) >= 2
|
||||
and re.search(r"\b(?:open|fetch|read|retrieve|check|use)\b", text, re.I)
|
||||
|
||||
Reference in New Issue
Block a user