iiRecord
Agentic AI Atlas · GAP-TOOLS-037: Fetch Content Processing
page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-037a5c.ai
II.
Page JSON

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

Structured · live

GAP-TOOLS-037: Fetch Content Processing json

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

File · wiki/docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-037.mdCluster · wiki
Record JSON
{
  "id": "page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-037",
  "_kind": "Page",
  "_file": "wiki/docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-037.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/harness-features-backlog/gaps/tools-capabilities/GAP-TOOLS-037.md",
    "sourceKind": "repo-docs",
    "title": "GAP-TOOLS-037: Fetch Content Processing",
    "displayName": "GAP-TOOLS-037: Fetch Content Processing",
    "slug": "docs/harness-features-backlog/gaps/tools-capabilities/gap-tools-037",
    "articlePath": "wiki/docs/harness-features-backlog/gaps/tools-capabilities/GAP-TOOLS-037.md",
    "article": "\n# GAP-TOOLS-037: Fetch Content Processing\n\n| Field | Value |\n|-------|-------|\n| Category | tools-capabilities |\n| Priority | Low |\n| Effort | M |\n| Status | Missing |\n\n## Description\nCC's WebFetchTool requires a `prompt` parameter that processes and summarizes fetched\nweb content before returning it. Babysitter's `fetch` tool returns raw HTTP responses.\nDifferent content processing models.\n\n## Current State\nBabysitter's `fetch` tool params: `url`, `timeout`, `raw`. Makes an HTTP GET request\nand returns `{ status, statusText, body }`. Body is truncated at 50KB unless `raw: true`.\nNo content processing, summarization, or extraction.\n\nCC's WebFetchTool params: `url` (required), `prompt` (required -- describes how to\nprocess the fetched content). CC fetches the URL, then applies the prompt to extract\nor summarize relevant information before returning it. This reduces token usage by\nfiltering irrelevant content.\n\n## Target State\nAdd a `prompt` parameter to the `fetch` agentic tool:\n\n- **`prompt`**: Optional string. When provided, fetched content is processed through\n  an LLM call (or simpler extraction logic) using the prompt as instructions.\n  Example: `prompt: \"Extract all API endpoint URLs\"` would fetch a page and return\n  only the extracted URLs.\n\nWhen `prompt` is omitted, current raw-response behavior is preserved.\n\nImplementation options:\n1. **LLM-based**: Route fetched content + prompt through a lightweight model call.\n   Expensive but matches CC's behavior exactly.\n2. **Extraction-based**: Use the prompt as a pattern/instruction for rule-based\n   extraction (regex, CSS selectors, text filters). Cheaper but less flexible.\n3. **Hybrid**: Try extraction first, fall back to LLM for complex prompts.\n\n## Dependencies\n- None for raw param addition.\n- LLM-based processing depends on model access within agentic tool execution context.\n\n## Key Files\n| Component | Path |\n|-----------|------|\n| Agentic tools | `packages/sdk/src/harness/agenticTools.ts` |\n| CC WebFetchTool | `src/tools/WebFetchTool/WebFetchTool.ts` |\n\n## Recommendation\nPhase 3. Low priority -- babysitter's raw fetch is often sufficient since the LLM\nprocessing the response can extract what it needs. The `prompt` param matters more\nin token-constrained scenarios.\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-harness-features-backlog",
      "to": "page:docs-harness-features-backlog-gaps-tools-capabilities-gap-tools-037",
      "kind": "contains_page"
    }
  ]
}