73 lines
3.0 KiB
JavaScript
73 lines
3.0 KiB
JavaScript
// 联网工具 schema:web_search / fetch_url / browser_read
|
||
// 注意:fetch_url / browser_read 在 function 外层带 recognizer_highlights,
|
||
// 供识别器使用,getToolSchemas 会在发给 LLM 前剥离该字段。
|
||
export const webSchemas = {
|
||
web_search: {
|
||
type: 'function',
|
||
function: {
|
||
name: 'web_search',
|
||
description: 'Search the web for current or unknown information. Use this before fetch_url when you do not already know the exact reliable URL. Returns structured JSON with result titles, URLs, snippets, and ok/error status.',
|
||
parameters: {
|
||
type: 'object',
|
||
properties: {
|
||
query: {
|
||
type: 'string',
|
||
description: 'Search query. Be specific, include product/version/date keywords when relevant.'
|
||
},
|
||
limit: {
|
||
type: 'number',
|
||
description: 'Maximum results to return, default 5, max 8.'
|
||
}
|
||
},
|
||
required: ['query']
|
||
}
|
||
}
|
||
},
|
||
|
||
fetch_url: {
|
||
type: 'function',
|
||
recognizer_highlights: ['body_path', 'title', 'url', 'content_length'],
|
||
function: {
|
||
name: 'fetch_url',
|
||
description: 'Open a known URL with a lightweight HTTP request. Returns structured JSON with ok/status/title/content/body_path/error. Long articles (>=2000 chars) are auto-saved to sandbox/articles/ and content is truncated to a short excerpt; use the returned body_path with read_file to open the full text. Do not use this tool as a search engine. If ok is false because content is empty, blocked, or JS-rendered, try browser_read or another URL; never summarize an error as page content.',
|
||
parameters: {
|
||
type: 'object',
|
||
properties: {
|
||
url: {
|
||
type: 'string',
|
||
description: 'URL to open. Prefer reliable source pages found through web_search.'
|
||
}
|
||
},
|
||
required: ['url']
|
||
}
|
||
}
|
||
},
|
||
|
||
browser_read: {
|
||
type: 'function',
|
||
recognizer_highlights: ['body_path', 'title', 'url', 'content_length'],
|
||
function: {
|
||
name: 'browser_read',
|
||
description: 'Use a real headless Chromium browser to open and render a webpage, wait for JavaScript, scroll, and extract readable text. Use this when fetch_url returns no readable content, a waiting page, or a JS-rendered page. Returns structured JSON with ok/title/content/body_path/error. Long articles (>=2000 chars) are auto-saved to sandbox/articles/ and content is truncated to a short excerpt; use body_path with read_file to open the full text.',
|
||
parameters: {
|
||
type: 'object',
|
||
properties: {
|
||
url: {
|
||
type: 'string',
|
||
description: 'URL to open in the browser.'
|
||
},
|
||
timeout_ms: {
|
||
type: 'number',
|
||
description: 'Navigation/render timeout in milliseconds, default 20000, max 45000.'
|
||
},
|
||
max_chars: {
|
||
type: 'number',
|
||
description: 'Maximum extracted characters to return, default 8000, max 12000.'
|
||
}
|
||
},
|
||
required: ['url']
|
||
}
|
||
}
|
||
},
|
||
}
|