47 lines
2.1 KiB
TypeScript
47 lines
2.1 KiB
TypeScript
export const WEB_FETCH_TOOL_NAME = 'WebFetch'
|
|
|
|
export const DESCRIPTION = `
|
|
- Fetches content from a specified URL and processes it using an AI model
|
|
- Takes a URL and a prompt as input
|
|
- Fetches the URL content, converts HTML to markdown
|
|
- Processes the content with the prompt using a small, fast model
|
|
- Returns the model's response about the content
|
|
- Use this tool when you need to retrieve and analyze web content
|
|
|
|
Usage notes:
|
|
- IMPORTANT: If an MCP-provided web fetch tool is available, prefer using that tool instead of this one, as it may have fewer restrictions.
|
|
- The URL must be a fully-formed valid URL
|
|
- HTTP URLs will be automatically upgraded to HTTPS
|
|
- The prompt should describe what information you want to extract from the page
|
|
- This tool is read-only and does not modify any files
|
|
- Results may be summarized if the content is very large
|
|
- Includes a self-cleaning 15-minute cache for faster responses when repeatedly accessing the same URL
|
|
- When a URL redirects to a different host, the tool will inform you and provide the redirect URL in a special format. You should then make a new WebFetch request with the redirect URL to fetch the content.
|
|
- For GitHub URLs, prefer using the gh CLI via Bash instead (e.g., gh pr view, gh issue view, gh api).
|
|
`
|
|
|
|
export function makeSecondaryModelPrompt(
|
|
markdownContent: string,
|
|
prompt: string,
|
|
isPreapprovedDomain: boolean,
|
|
): string {
|
|
const guidelines = isPreapprovedDomain
|
|
? `Provide a concise response based on the content above. Include relevant details, code examples, and documentation excerpts as needed.`
|
|
: `Provide a concise response based only on the content above. In your response:
|
|
- Enforce a strict 125-character maximum for quotes from any source document. Open Source Software is ok as long as we respect the license.
|
|
- Use quotation marks for exact language from articles; any language outside of the quotation should never be word-for-word the same.
|
|
- You are not a lawyer and never comment on the legality of your own prompts and responses.
|
|
- Never produce or reproduce exact song lyrics.`
|
|
|
|
return `
|
|
Web page content:
|
|
---
|
|
${markdownContent}
|
|
---
|
|
|
|
${prompt}
|
|
|
|
${guidelines}
|
|
`
|
|
}
|