跳转到正文

Web 与 Search

提取已知网页,或使用搜索 API、Provider 原生搜索和公开搜索页发现资料。

更新于 查看 Markdown

webfetchwebsearch 是 Agent 的常驻只读工具。它们用于读取公开资料,不负责操作网页或绕过目标站点权限。

Web Fetch

Web Fetch 接收一个明确的 HTTP 或 HTTPS URL,最多等待 20 秒,流式读取并提取最多 50,000 个字符。HTML 中的 script、style 和标签会被移除;它不会执行页面 JavaScript,也不提供浏览器登录状态。

HTTP client 的自动 redirect 被关闭,kxen 最多手动跟随 5 跳,并在每一跳重新检查 scheme、URL 和实际连接地址。缺少或非法 Location、超过跳数、非 HTTP(S) scheme、受限地址、最终非成功状态和传输错误都不会伪装成空页面。

Web Search 接收搜索词,返回实际命中引擎、来源列表,以及原生搜索引擎可选的综合答案。搜索 API、SearXNG 和 DuckDuckGo 每次最多返回 8 条结果;Provider 原生搜索保留响应中的引用。

引擎与 fallback

当前引擎链依次包含:

  1. 搜索 API: Tavily、Brave、Exa、Jina、Serper、SerpAPI、Google CSE、Firecrawl 和 You.com。
  2. Provider 原生搜索: Perplexity、xAI Grok、OpenAI 和 Anthropic。
  3. 自托管 SearXNG。
  4. 无需凭证的 DuckDuckGo HTML 搜索。

用户配置的 search.engine 会移到链首。该引擎没有凭证、没有配置或请求失败时,kxen 会继续尝试其余已配置引擎,最后回落到 DuckDuckGo;未知 engine ID 按默认 auto 顺序处理。因此指定首选引擎不是只允许单一服务,其他已经配置的搜索服务仍可能在 fallback 时收到查询。

返回内容会标记实际产出结果的引擎。某个引擎失败不会被写成空成功;全部引擎都不可用时,工具返回逐引擎错误摘要。

配置与凭证

Search 只读取个人配置,项目 .kxen/config.toml 不能改变搜索引擎或扩大网络访问范围。

[search]
engine = "brave"
google_cx = ""
searxng_url = ""

API key 来自本地 Auth store 或对应进程环境,不写入 TOML。Google CSE 还需要 google_cxGOOGLE_SEARCH_CX;SearXNG 需要 searxng_urlSEARXNG_URL。自托管 SearXNG 可以使用显式 loopback HTTP,其他远程 endpoint 必须使用 HTTPS。

Provider 原生搜索复用对应的 Perplexity、xAI、OpenAI 或 Anthropic 凭证。搜索 API 使用各服务自己的 key,例如 TAVILY_API_KEYBRAVE_SEARCH_API_KEYEXA_API_KEYJINA_API_KEYSERPER_API_KEYSERPAPI_API_KEYGOOGLE_SEARCH_API_KEYFIRECRAWL_API_KEYYOU_API_KEY

资源与计量

每个引擎请求最多等待 20 秒;绑定 Goal 时还受剩余 wall clock 预算约束。Provider 原生搜索先经过所属 Workspace 的 MRM admission,再在网络前写入 durable usage attempt。响应包含 token usage 时精确结算,未包含时保持 UNKNOWN

九个搜索 API 也会在请求前写入 durable usage attempt。它们可能按请求计费,但不返回 kxen token ledger 能表达的 usage,因此已开始的请求以 UNKNOWN 结算。timeout、取消或模糊传输失败不会自动重发同一可能已计费请求。SearXNG 和 DuckDuckGo 不进入付费 attempt 计量。

共同网络与数据边界

搜索请求使用受保护 connector,不继承 HTTP_PROXYHTTPS_PROXYALL_PROXY。请求前检查目标和本次 DNS 解析的全部地址,普通公网链拒绝 loopback、私网、link-local、CGNAT 和其他受限地址。响应大小受限,传输错误不会回显包含 query API key 的完整 URL。

Web Fetch 的目标 URL、Search 查询和结果可能进入当前模型上下文;Search 查询还会发送给 fallback 链中实际尝试的第三方服务。需要点击、输入、执行 JavaScript 或验证真实界面时使用 Browser

导航

输入关键词以搜索…

↑↓ 移动↵ 打开Esc 关闭