iiRecord
Agentic AI Atlas · GAP-TOOLS-008: Web Search Agentic Tool
page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-008a5c.ai
II.
Page JSON

page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-008

Structured · live

GAP-TOOLS-008: Web Search Agentic Tool json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-008.mdCluster · wiki
Record JSON
{
  "id": "page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-008",
  "_kind": "Page",
  "_file": "wiki/docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-008.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/harness-features-backlog/gaps/tools-capabilities/GAP-TOOLS-008.md",
    "sourceKind": "repo-docs",
    "title": "GAP-TOOLS-008: Web Search Agentic Tool",
    "displayName": "GAP-TOOLS-008: Web Search Agentic Tool",
    "slug": "docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-008",
    "articlePath": "wiki/docs/harness-features-backlog/gaps/tools-capabilities/GAP-TOOLS-008.md",
    "article": "\n# GAP-TOOLS-008: Web Search Agentic Tool\n\n| Field | Value |\n|-------|-------|\n| Category | tools-capabilities |\n| Priority | Medium |\n| Effort | M |\n| Status | Missing |\n\n## Description\nAdd a `web_search` agentic tool to babysitter's Pi session tool set, equivalent to\nCC's WebSearchTool. Enables orchestrated tasks to perform web searches directly\nwithout relying on the delegated harness having its own search capability.\n\n## Current State\nNo `web_search` tool in `agenticTools.ts`. Process definitions that need web search\nmust delegate to a harness that has its own search tool (CC has WebSearchTool, Pi\ndoes not). The `fetch` tool can retrieve known URLs but cannot discover URLs via\nsearch.\n\n## Target State\nA `web_search` agentic tool with these params (matching CC's WebSearchTool):\n\n- **`query`** (string, required): Search query, minimum 2 characters\n- **`allowed_domains`** (string[], optional): Allowlist of domains to search\n- **`blocked_domains`** (string[], optional): Blocklist of domains to exclude\n\nReturns search results with titles, URLs, and snippets.\n\nImplementation options:\n1. **API-based**: Use a search API (SerpAPI, Brave Search, Tavily, etc.) with an\n   API key configured via env var (`BABYSITTER_SEARCH_API_KEY`).\n2. **MCP-routed**: If an MCP server with search capability is connected, route\n   through it. Falls back to API-based if no MCP search available.\n3. **Harness-delegated**: Route search requests to a capable harness (CC, etc.)\n   as a task effect. Least direct but requires no API keys.\n\nAlso add `webSearch` to `HarnessCapability` enum for capability-based routing\nwhen the tool is not available locally.\n\n## Dependencies\n- [GAP-TOOLS-025](GAP-TOOLS-025.md) -- MCP client (for MCP-routed search)\n- [GAP-HADAPT-001](../harness-adaptation/GAP-HADAPT-001.md) -- capability routing (for harness-delegated fallback)\n\n## Key Files\n| Component | Path |\n|-----------|------|\n| Agentic tools | `packages/sdk/src/harness/agenticTools.ts` |\n| Harness capabilities | `packages/sdk/src/harness/types.ts` |\n| CC WebSearchTool | `src/tools/WebSearchTool/WebSearchTool.ts` |\n\n## Recommendation\nPhase 2. Medium priority. Web search is a fundamental capability for research-oriented\nprocesses. Start with API-based implementation (configurable provider), then add\nMCP-routed and harness-delegated fallbacks.\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-harness-features-backlog",
      "to": "page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-008",
      "kind": "contains_page"
    }
  ]
}