Documentation Index
Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
Use this file to discover all available pages before exploring further.
Nous Research のHermesモデルとFirecrawlを組み合わせることで、HermesにライブのWeb検索、スクレイピング、クロールを行わせることができます。
HermesモデルはOpenAI互換のツール呼び出しに対応しているため、Firecrawlはモデルが呼び出せる関数として組み込めます。Hermesには、Nous Portal API、OpenRouter、またはNousのForgeエージェントプラットフォーム経由でアクセスできます。
npm install @mendable/firecrawl-js openai zod
export FIRECRAWL_API_KEY=fc-YOUR-API-KEY
export NOUS_API_KEY=YOUR-NOUS-PORTAL-KEY
import FirecrawlApp from '@mendable/firecrawl-js';
import OpenAI from 'openai';
import { z } from 'zod';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
// Nous Portal は OpenAI 互換です
const nous = new OpenAI({
apiKey: process.env.NOUS_API_KEY,
baseURL: 'https://inference-api.nousresearch.com/v1',
});
const SearchArgs = z.object({
query: z.string().describe('The web search query'),
limit: z.number().int().min(1).max(10).default(5),
});
const ScrapeArgs = z.object({
url: z.string().describe('The URL to scrape'),
});
const tools = [
{
type: 'function' as const,
function: {
name: 'web_search',
description: 'Search the web with Firecrawl and return top results.',
parameters: z.toJSONSchema(SearchArgs),
},
},
{
type: 'function' as const,
function: {
name: 'scrape_website',
description: 'Scrape the markdown content of a URL.',
parameters: z.toJSONSchema(ScrapeArgs),
},
},
];
const response = await nous.chat.completions.create({
model: 'Hermes-4-405B',
tools,
messages: [
{
role: 'user',
content: 'Research Firecrawl\'s /agent endpoint and cite the docs.',
},
],
});
for (const call of response.choices[0]?.message.tool_calls ?? []) {
if (call.function.name === 'web_search') {
const { query, limit } = SearchArgs.parse(JSON.parse(call.function.arguments));
const results = await firecrawl.search(query, { limit });
console.log(results.web);
}
if (call.function.name === 'scrape_website') {
const { url } = ScrapeArgs.parse(JSON.parse(call.function.arguments));
const page = await firecrawl.scrape(url, { formats: ['markdown'] });
console.log(page.markdown);
}
}
複数のモデルを単一のゲートウェイで扱いたい場合は、Hermes を OpenRouter 経由で利用できます。
const client = new OpenAI({
apiKey: process.env.OPENROUTER_API_KEY,
baseURL: 'https://openrouter.ai/api/v1',
});
await client.chat.completions.create({
model: 'nousresearch/hermes-4-405b',
// ...同じツール、同じメッセージ
});
完全な実装パターンについては、OpenRouter ガイドを参照してください。
- Hermes は構造化されたツール出力に強いため、Firecrawl の JSON 形式 と組み合わせることで、スクレイピング → 抽出の連携をスムーズに構築できます。
- 長時間動作するエージェントループでは、ツール呼び出しをストリーミングし、Firecrawl の 非同期クロール を使うことで、モデルが大規模なスクレイピングで待たされないようにします。
- 正確な Nous Portal のベース URL とモデルスラッグは portal.nousresearch.com で確認してください。新しい Hermes 世代の提供に合わせて、モデル名は更新されます。