INTEGRITY Документация

Конфигурация

Think настраивается путём переопределения методов и свойств в вашем Think подкласс. Большинство агентов переопределяют только getModel().

Переопределения конфигурации

Метод / Свойство По умолчанию Описание
getModel() выбрасывает Возврат LanguageModel чтобы использовать
getSystemPrompt() "You are a helpful assistant." Системный промпт (запасной вариант при отсутствии блоков контекста)
getTools() {} AI SDK ToolSet для агентного цикла
getScheduledTasks() {} Объявленные в коде повторяющиеся промпты или обработчики: см. Запланированные задачи
getDefaultTimezone() undefined Часовой пояс по умолчанию для задач, запланированных по астрономическому времени
getMessengers() {} Декларации входящих сообщений и доставки мессенджера: см. Мессенджеры
maxSteps 10 Максимальное количество раундов вызова инструментов за ход
sendReasoning true Отправлять части рассуждений клиентам чата
configureSession() идентичность Добавьте блоки контекста, компактизацию, поиск, skills: обратитесь к Сеансы
getSkills() [] Верните источники Agent Skills для активации навыка по требованию: см. Agent Skills
getSkillScriptRunner() null Включите необязательный run_skill_script инструмент
workspaceBash true Включите или настройте рабочее пространство по умолчанию bash инструмент: см. Инструменты
messageConcurrency "queue" Как ведут себя перекрывающиеся отправки: см. Клиентские инструменты
includeMcpTools true Преобразуйте подключённые инструменты MCP в инструменты AI SDK и добавьте их в ходы модели. См. MCP-инструменты
waitForMcpConnections false Дождитесь готовности MCP-серверов перед инференсом
chatRecovery Всегда активен Конфигурация устойчивого восстановления. См. Устойчивое восстановление для всех опций и значений по умолчанию
chatStreamStallTimeoutMs 0 (выкл) Опциональный сторож бездействия: прерывает ход, если поток модели не выдаёт ни одного чанка в течение указанного времени (измеряется промежуток между чанками, включая выполнение инструмента). Зависание направляется в ограниченное восстановление
contextOverflow undefined Опциональная обработка переполнения контекста в середине хода с помощью reactive, maxRetries, а также proactive опции. Требует classifyChatError и функцию компакции сессии, подробнее см. Восстановление после переполнения контекстного окна

Для chatRecovery и chatStreamStallTimeoutMs поведении см. Устойчивое восстановление.

Динамическая конфигурация

Генерики класса Think соответствуют Agent<Env, State, Props>. Сохранённая конфигурация рантайма типизирована на уровне configure<T>() и getConfig<T>() точках вызова, сохраняется в SQLite и переживает гибернацию и перезапуски.

export class MyAgent extends Think {
	getModel() {
		const tier = this.getConfig()?.modelTier ?? "fast";
		const models = {
			fast: "@cf/moonshotai/kimi-k2.6",
			capable: "@cf/meta/llama-4-scout-17b-16e-instruct",
		};
		return createWorkersAI({ binding: this.env.AI })(models[tier]);
	}
}
type MyConfig = { modelTier: "fast" | "capable"; theme: string };

export class MyAgent extends Think<Env> {
	getModel() {
		const tier = this.getConfig<MyConfig>()?.modelTier ?? "fast";
		const models = {
			fast: "@cf/moonshotai/kimi-k2.6",
			capable: "@cf/meta/llama-4-scout-17b-16e-instruct",
		};
		return createWorkersAI({ binding: this.env.AI })(models[tier]);
	}
}
Метод Описание
configure<T>(config: T) Сохранение типизированного объекта конфигурации
getConfig<T>(): T | null Прочитайте сохранённую конфигурацию или null, если она не была настроена

Предоставлять конфигурацию клиенту через @callable:

import { callable } from "agents";

export class MyAgent extends Think {
	getModel() {
		/* ... */
	}

	@callable()
	updateConfig(config) {
		this.configure(config);
	}
}
import { callable } from "agents";

export class MyAgent extends Think<Env> {
	getModel() {
		/* ... */
	}

	@callable()
	updateConfig(config: MyConfig) {
		this.configure<MyConfig>(config);
	}
}

Интеграция Session

Think сохраняет беседы в Сессия : слой хранения, который содержит ваши сообщения и даёт модели доступную для записи память. Здесь появляются два понятия: блоки контекста это помеченные разделы системного промпта, которые модель может читать и обновлять (например, memory блок фактов о пользователе), и компактизация суммаризирует более старые сообщения, чтобы длинные беседы оставались в пределах контекстного окна модели. Переопределите configureSession чтобы добавить постоянную память, компактизацию, search и skills:

import { Think, Session } from "@cloudflare/think";

export class MyAgent extends Think {
	getModel() {
		/* ... */
	}

	configureSession(session) {
		return session
			.withContext("soul", {
				provider: { get: async () => "You are a helpful coding assistant." },
			})
			.withContext("memory", {
				description: "Important facts learned during conversation.",
				maxTokens: 2000,
			})
			.withCachedPrompt();
	}
}
import { Think, Session } from "@cloudflare/think";

export class MyAgent extends Think<Env> {
	getModel() {
		/* ... */
	}

	configureSession(session: Session) {
		return session
			.withContext("soul", {
				provider: { get: async () => "You are a helpful coding assistant." },
			})
			.withContext("memory", {
				description: "Important facts learned during conversation.",
				maxTokens: 2000,
			})
			.withCachedPrompt();
	}
}

Когда configureSession добавляет блоки контекста, Think формирует системный промпт из этих блоков вместо использования getSystemPrompt(). У Think this.messages геттер читает напрямую из древовидного хранилища Session.

Полное описание API Session (блоки контекста, компактизация, поиск, skills и поддержка нескольких сессий) см. в Документация Sessions.

Экспорты пакета

Экспорт Описание
@cloudflare/think Think, Session, Workspace, skills пространство имён
@cloudflare/think/messengers Контракты мессенджера, мост Chat SDK, агент состояния, доставка
@cloudflare/think/messengers/telegram Провайдер мессенджера Telegram и вспомогательные функции доставки
@cloudflare/think/workflows ThinkWorkflow, step.prompt() : промпты workflow
@cloudflare/think/tools/workspace createWorkspaceTools() : для пользовательских бэкендов хранения
@cloudflare/think/tools/execute createExecuteTool() : выполнение кода в песочнице через Code Mode
@cloudflare/think/tools/browser createBrowserTools() : Инструменты Chrome DevTools Protocol
@cloudflare/think/tools/extensions createExtensionTools() : загрузка расширений под управлением LLM
@cloudflare/think/extensions ExtensionManager, HostBridgeLoopback : рантайм расширений

Зависимости

Peer-зависимости, которые вы предоставляете:

Пакет Обязательный Примечания
agents да Cloudflare Agents SDK
ai да AI SDK v6
zod да Валидация схемы (v4)
@chat-adapter/telegram необязательно Требуется для мессенджеров Telegram

Поставляется с @cloudflare/think:

Пакет Примечания
@cloudflare/shell Workspace файловая система
@cloudflare/codemode Выполнение кода для createExecuteTool()
just-bash Изолированная оболочка shell для рабочего пространства по умолчанию bash инструмент

Движок Agent Skills и его исполнитель скриптов находятся в agents/skills, чтобы скрипты навыков получали @cloudflare/worker-bundler и just-bash через agents, а не Think.