← Создание агентов на Cloudflare / agents / tools
AI Search
Agents могут использовать AI Search чтобы получить релевантную информацию из проиндексированного контента и использовать её для дополнения вызовы моделей ИИ. AI Search управляет пайплайном поиска за вас, включая индексацию, поиск и опциональные chat completions по вашему контенту.
Используйте AI Search, если хотите, чтобы агент:
- Выполняйте поиск по документации продукта, материалам поддержки, файлам пользователей или внутренним базам знаний.
- Извлеките релевантные чанки перед вызовом модели.
- Используйте управляемую индексацию вместо самостоятельного построения инфраструктуры поиска.
- Выполняйте запросы к содержимому в бакете R2, на сайте или в загруженных файлах.
Базовый паттерн
Привяжите AI Search к своему Worker, а затем обращайтесь к нужному экземпляру из метода агента.
import { Agent, callable } from "agents";
export class SearchAgent extends Agent {
@callable()
async searchKnowledge(query) {
const instance = this.env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: query }],
});
return results;
}
}import { Agent, callable } from "agents";
type Env = {
AI_SEARCH: AiSearchNamespace;
};
export class SearchAgent extends Agent<Env> {
@callable()
async searchKnowledge(query: string) {
const instance = this.env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: query }],
});
return results;
}
}Для генерации ответа используйте chatCompletions() чтобы получить релевантный контент и сформировать ответ за один вызов.
const instance = this.env.AI_SEARCH.get("my-instance");
const response = await instance.chatCompletions({
messages: [{ role: "user", content: "How do I deploy an Agent?" }],
model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
ai_search_options: {
retrieval: {
max_num_results: 5,
},
},
});const instance = this.env.AI_SEARCH.get("my-instance");
const response = await instance.chatCompletions({
messages: [{ role: "user", content: "How do I deploy an Agent?" }],
model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
ai_search_options: {
retrieval: {
max_num_results: 5,
},
},
});Конфигурация
Используйте ai_search_namespaces привязку, когда агенту нужно обращаться к экземплярам AI Search по имени.
{
"ai_search_namespaces": [
{
"binding": "AI_SEARCH",
"namespace": "default",
"remote": true
}
]
}[[ai_search_namespaces]]
binding = "AI_SEARCH"
namespace = "default"
remote = trueИспользуйте remote: true чтобы обращаться к развёрнутым экземплярам AI Search в процессе локальной разработки с помощью wrangler dev.