small fix PR on agent profile: agent was given no ...
# proj-agent
s
small fix PR on agent profile: agent was given no tools github.com/OpenHands/software-agent-sdk/pull/3968/changes
👀 1
m
what about the
web_broswer
?
s
i am not sure but since its not always registered then its not always safe to add it there
but next step is making tool names parametrizable
m
I left a comment
i am not sure but since its not always registered then its not always safe to add it there
But this is also true for the TaskToolSet
s
yes but tasktoolset is activated via the UX
enable sub-agents
so I'm guessing its registered at that point, let me check
m
and web_broswer is actually always present in agent-canvas (as a tool) So this is a regression.
s
maybe resolve_agent_profile doesn't belong in the core sdk
👍 1
m
I think in the agent-server, or?
c
We excluded browser tool intently from default fwiw
m
Are you sure? Because we have it i agent-canvas and saas
c
It wasn’t in the CLI, and it would crash if imported directly or something
So not via python interface, too heavy for default public
That may be different than the specifics here, though!
m
Yes exact
but the CLI was adding the tools manually
Cloud and agent-canvas are relying on a method which attach the default tools
but the CLI was adding the tools manually
Actually not sure about that... But we have a flag in the get_default_tools method because of that I think 🙂
s
I think that defaults living in SDK is a good idea, it facilitates the many callers Also we can add CI to make sure there's no name drift Also dont hardcode in the profile logic but add config AI
Copy code
Step 1 — SDK owns the canonical names. New openhands/sdk/tool/defaults.py:

  DEFAULT_EXEC_TOOL_NAMES = ("terminal", "file_editor", "task_tracker")
  SUB_AGENT_TOOL_NAME = "task_tool_set"

  def default_tool_specs(*, enable_sub_agents: bool = False) -> list[Tool]: ...

  openhands-tools' get_default_tools() is rebuilt on top of these constants (tools already depends on sdk — the dependency direction is fine), and since both packages live in the same monorepo, a tests/cross/ test asserts TerminalTool.name ==
  "terminal" etc. Drift now breaks CI in one repo. The drift objection is dead.
Requesting a second review round on github.com/OpenHands/software-agent-sdk/pull/3968 Update: • deterministic default tools (terminal, file_editor, task tracking..) •
Browser tool
is automatically injected by the serving layer in
agent_server/conversation_service.py‎
when availability is detected @modern-fireman-99755 fyi
c
Can the user disable the browser tool, and then it won’t be injected?
m
Now it is not the case
but should be possible
c
My thinking is that there are other tools out there for browsing, like
agent-browser
, which is a CLI that my
smolpaws
agent is using for months now. My feeling is that it’s lightweight and, it’s a CLI, so it has a —help menu that any agent will just read and make sense of it. It’s very easy, I think, for the agent to use it.