[{"data":1,"prerenderedAt":369},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fweb-research":3,"surround-\u002Fdocs\u002Fweb-research":320,"docs-nav":324},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"order":10,"group":11,"body":12,"_type":314,"_id":315,"_source":316,"_file":317,"_stem":318,"_extension":319},"\u002Fdocs\u002Fweb-research","docs",false,"","Web & research","Excalibur's agents read the live web — fetch, search, extract and crawl — and run cited, fact-checked research. Governed, free and unlimited by default.",9,"Build",{"type":13,"children":14,"toc":308},"root",[15,38,45,50,126,193,199,217,241,247,283,289,302],{"type":16,"tag":17,"props":18,"children":19},"element","p",{},[20,23,29,31,36],{"type":21,"value":22},"text","Most coding agents are blind to the internet. Excalibur's are not: governed web tools and a multi-source ",{"type":16,"tag":24,"props":25,"children":26},"strong",{},[27],{"type":21,"value":28},"research",{"type":21,"value":30}," pipeline are built in — ",{"type":16,"tag":24,"props":32,"children":33},{},[34],{"type":21,"value":35},"free and unlimited by default",{"type":21,"value":37},", with citations, provenance and anti-injection. No key required.",{"type":16,"tag":39,"props":40,"children":42},"h2",{"id":41},"the-web-tools",[43],{"type":21,"value":44},"The web tools",{"type":16,"tag":17,"props":46,"children":47},{},[48],{"type":21,"value":49},"The agent reaches for these on its own when a task needs current or external information; you can also call them directly.",{"type":16,"tag":51,"props":52,"children":53},"ul",{},[54,70,98,112],{"type":16,"tag":55,"props":56,"children":57},"li",{},[58,68],{"type":16,"tag":24,"props":59,"children":60},{},[61],{"type":16,"tag":62,"props":63,"children":65},"code",{"className":64},[],[66],{"type":21,"value":67},"web_fetch",{"type":21,"value":69}," — read a URL into clean Markdown (HTML → main content, PDFs included).",{"type":16,"tag":55,"props":71,"children":72},{},[73,82,84,89,91,96],{"type":16,"tag":24,"props":74,"children":75},{},[76],{"type":16,"tag":62,"props":77,"children":79},{"className":78},[],[80],{"type":21,"value":81},"web_search",{"type":21,"value":83}," — search the live web. Free by default via ",{"type":16,"tag":24,"props":85,"children":86},{},[87],{"type":21,"value":88},"SearXNG",{"type":21,"value":90}," (auto-provisioned if Docker is present) or ",{"type":16,"tag":24,"props":92,"children":93},{},[94],{"type":21,"value":95},"DuckDuckGo",{"type":21,"value":97}," — no account, no quota. Bring an Exa \u002F Tavily \u002F Brave key only if you want it.",{"type":16,"tag":55,"props":99,"children":100},{},[101,110],{"type":16,"tag":24,"props":102,"children":103},{},[104],{"type":16,"tag":62,"props":105,"children":107},{"className":106},[],[108],{"type":21,"value":109},"web_extract",{"type":21,"value":111}," — pull structured data (give a JSON shape) out of a page.",{"type":16,"tag":55,"props":113,"children":114},{},[115,124],{"type":16,"tag":24,"props":116,"children":117},{},[118],{"type":16,"tag":62,"props":119,"children":121},{"className":120},[],[122],{"type":21,"value":123},"web_crawl",{"type":21,"value":125}," — a bounded, polite crawl across a site or sitemap.",{"type":16,"tag":127,"props":128,"children":132},"pre",{"className":129,"code":130,"language":131,"meta":7,"style":7},"language-bash shiki shiki-themes github-light","excalibur web fetch https:\u002F\u002Fexample.com\u002Fdocs       # a real page → clean text\nexcalibur search \"rate limiting best practices\"    # free, no key\n","bash",[133],{"type":16,"tag":62,"props":134,"children":135},{"__ignoreMap":7},[136,170],{"type":16,"tag":137,"props":138,"children":141},"span",{"class":139,"line":140},"line",1,[142,148,154,159,164],{"type":16,"tag":137,"props":143,"children":145},{"style":144},"--shiki-default:#6F42C1",[146],{"type":21,"value":147},"excalibur",{"type":16,"tag":137,"props":149,"children":151},{"style":150},"--shiki-default:#032F62",[152],{"type":21,"value":153}," web",{"type":16,"tag":137,"props":155,"children":156},{"style":150},[157],{"type":21,"value":158}," fetch",{"type":16,"tag":137,"props":160,"children":161},{"style":150},[162],{"type":21,"value":163}," https:\u002F\u002Fexample.com\u002Fdocs",{"type":16,"tag":137,"props":165,"children":167},{"style":166},"--shiki-default:#6A737D",[168],{"type":21,"value":169},"       # a real page → clean text\n",{"type":16,"tag":137,"props":171,"children":173},{"class":139,"line":172},2,[174,178,183,188],{"type":16,"tag":137,"props":175,"children":176},{"style":144},[177],{"type":21,"value":147},{"type":16,"tag":137,"props":179,"children":180},{"style":150},[181],{"type":21,"value":182}," search",{"type":16,"tag":137,"props":184,"children":185},{"style":150},[186],{"type":21,"value":187}," \"rate limiting best practices\"",{"type":16,"tag":137,"props":189,"children":190},{"style":166},[191],{"type":21,"value":192},"    # free, no key\n",{"type":16,"tag":39,"props":194,"children":196},{"id":195},"research-cited-fact-checked-answers",[197],{"type":21,"value":198},"Research — cited, fact-checked answers",{"type":16,"tag":17,"props":200,"children":201},{},[202,208,210,215],{"type":16,"tag":62,"props":203,"children":205},{"className":204},[],[206],{"type":21,"value":207},"excalibur research \"\u003Cquestion>\"",{"type":21,"value":209}," (or just ask a research-shaped question in the shell) runs a native pipeline: ",{"type":16,"tag":24,"props":211,"children":212},{},[213],{"type":21,"value":214},"search → fetch top sources → adversarially verify each claim with sub-agents → synthesize a cited answer.",{"type":21,"value":216}," Every fact carries its URL, timestamp and a content hash in the Claim Ledger, so the answer is auditable — not a confident guess.",{"type":16,"tag":127,"props":218,"children":220},{"className":129,"code":219,"language":131,"meta":7,"style":7},"excalibur research \"How do competing tools handle inline autocomplete models?\"\n",[221],{"type":16,"tag":62,"props":222,"children":223},{"__ignoreMap":7},[224],{"type":16,"tag":137,"props":225,"children":226},{"class":139,"line":140},[227,231,236],{"type":16,"tag":137,"props":228,"children":229},{"style":144},[230],{"type":21,"value":147},{"type":16,"tag":137,"props":232,"children":233},{"style":150},[234],{"type":21,"value":235}," research",{"type":16,"tag":137,"props":237,"children":238},{"style":150},[239],{"type":21,"value":240}," \"How do competing tools handle inline autocomplete models?\"\n",{"type":16,"tag":39,"props":242,"children":244},{"id":243},"governed-by-default",[245],{"type":21,"value":246},"Governed by default",{"type":16,"tag":17,"props":248,"children":249},{},[250,252,257,259,264,266,272,274,281],{"type":21,"value":251},"Web access runs under the same safety floor as everything else — a network policy you control, an ",{"type":16,"tag":24,"props":253,"children":254},{},[255],{"type":21,"value":256},"SSRF guard",{"type":21,"value":258}," (loopback \u002F private-range \u002F metadata endpoints are blocked, even via DNS rebinding or odd encodings), a polite rate limit + robots.txt, and an ",{"type":16,"tag":24,"props":260,"children":261},{},[262],{"type":21,"value":263},"anti prompt-injection",{"type":21,"value":265}," scan of fetched content ",{"type":16,"tag":267,"props":268,"children":269},"em",{},[270],{"type":21,"value":271},"before",{"type":21,"value":273}," it reaches the model. Every egress is audited in the session log. See ",{"type":16,"tag":275,"props":276,"children":278},"a",{"href":277},"\u002Fdocs\u002Fsafety",[279],{"type":21,"value":280},"Safety",{"type":21,"value":282},".",{"type":16,"tag":39,"props":284,"children":286},{"id":285},"mcp-too",[287],{"type":21,"value":288},"MCP, too",{"type":16,"tag":17,"props":290,"children":291},{},[292,294,300],{"type":21,"value":293},"Beyond the built-in web tools, any ",{"type":16,"tag":275,"props":295,"children":297},{"href":296},"\u002Fdocs\u002Fextensions",[298],{"type":21,"value":299},"MCP",{"type":21,"value":301}," server's tools flow to the agent first-class — add one from the signed registry, with OAuth where needed.",{"type":16,"tag":303,"props":304,"children":305},"style",{},[306],{"type":21,"value":307},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":172,"depth":172,"links":309},[310,311,312,313],{"id":41,"depth":172,"text":44},{"id":195,"depth":172,"text":198},{"id":243,"depth":172,"text":246},{"id":285,"depth":172,"text":288},"markdown","content:docs:web-research.md","content","docs\u002Fweb-research.md","docs\u002Fweb-research","md",[321,323],{"_path":296,"title":322,"order":10},"Extensions",null,[325,329,334,337,341,345,349,353,357,359,363,366,368],{"_path":326,"title":327,"order":140,"group":328},"\u002Fdocs\u002Fgetting-started","Getting started","Get started",{"_path":330,"title":331,"order":332,"group":333},"\u002Fdocs\u002Fcommands","Command reference",10,"Reference",{"_path":335,"title":336,"order":172,"group":328},"\u002Fdocs\u002Fthe-m-shell","The m-shell",{"_path":338,"title":339,"order":340,"group":11},"\u002Fdocs\u002Fworkflows","Workflows",3,{"_path":342,"title":343,"order":344,"group":11},"\u002Fdocs\u002Fmissions","Missions",4,{"_path":346,"title":347,"order":348,"group":11},"\u002Fdocs\u002Fdashboard","Dashboard",5,{"_path":350,"title":351,"order":352,"group":11},"\u002Fdocs\u002Fautonomy-levels","Autonomy levels",6,{"_path":354,"title":355,"order":356,"group":11},"\u002Fdocs\u002Fdiscovery","Discovery",7,{"_path":277,"title":280,"order":356,"group":358},"Govern",{"_path":360,"title":361,"order":362,"group":358},"\u002Fdocs\u002Fenterprise","Enterprise",8,{"_path":364,"title":365,"order":362,"group":11},"\u002Fdocs\u002Fproviders","Models & providers",{"_path":296,"title":322,"order":10,"group":367},"Extend",{"_path":4,"title":8,"order":10,"group":11},1782492858459]