Custom tools for the agent.
Bind web search to one workspace credential.
The schema is taken from web_search via functools.wraps so the built-in
and workspace-bound variants can never present different arguments. The two
also have to fail the same way: is_web_search_tool treats them as one, so
a missing package or an unusable key must return the payload the model can
act on rather than raising.
Return whether candidate is a built-in or workspace-bound search tool.
Get the current Deep Agents thread ID for LangSmith or MCP tooling.
Search the web for current information.
Fetch a URL and return the page content as markdown.