Файл .forgeplan/config.yaml является единственной точкой конфигурации для рабочего пространства Forgeplan. Эта страница представляет собой авторитетный справочник по каждому ключу верхнего уровня, каждой вложенной секции и каждой переменной окружения, распознаваемой CLI и сервером MCP.
Все секции являются необязательными, за исключением метаданных верхнего уровня (version, project_name, default_depth, id_digits, created_at). Отсутствующие секции используют безопасные значения по умолчанию, встроенные в forgeplan-core.
├── lance/ ← GITIGNORED - производный индекс LanceDB (восстанавливаемый)
└── .fastembed_cache/ ← GITIGNORED - кэш модели эмбеддингов
Согласно ADR-003, файлы markdown являются источником истины; lance/ - это производный индекс, который вы можете перестроить в любое время с помощью forgeplan scan-import. Никогда не коммитьте lance/, .fastembed_cache/ или config.yaml - они перечислены в .gitignore по умолчанию.
Версия схемы конфигурации. Обновляется только при критических изменениях схемы.
project_name
string
""
Человекочитаемое имя проекта. Отображается в forgeplan health, отчетах и экспорте.
default_depth
enum
standard
Глубина по умолчанию, используемая forgeplan route, когда эвристика неубедительна. Одно из значений: tactical, standard, deep, critical.
id_digits
u32
3
Ширина заполнения нулями для ID артефактов (например, PRD-001 против PRD-0001). Изменяйте только при создании рабочего пространства - существующие ID не перенумеровываются.
created_at
date
сегодня
Дата ГГГГ-ММ-ДД инициализации рабочего пространства. Метаданные только для чтения.
Используется forgeplan generate, forgeplan reason (ADI), forgeplan route (уровень 1+) и инструментами MCP, которые вызывают LLM.
llm:
provider: gemini
model: gemini-3-flash-preview
api_key_env: GEMINI_API_KEY
# base_url: https://... # переопределение для пользовательских конечных точек
# max_tokens: 4096
# temperature: 0.7
# reason_temperature: 0.3 # более низкая температура для структурированного вывода ADI
Поле
Тип
По умолчанию
Описание
provider
enum
openai
Одно из значений: openai, claude, gemini, ollama или custom. Определяет URL-адрес по умолчанию и стиль заголовков.
model
string
gpt-4o-mini
Идентификатор модели, передаваемый провайдеру без изменений. См. рекомендуемые модели ниже.
api_key_env
string?
зависит от провайдера
Имя переменной окружения, содержащей ключ API. Если опущено, используется значение по умолчанию для конкретного провайдера.
base_url
string?
зависит от провайдера
Переопределяет базовый URL для самостоятельно размещенных или прокси-конечных точек. Полезно для Ollama, LiteLLM или шлюзов, совместимых с Azure.
max_tokens
u32
4096
Максимальное количество токенов ответа. Увеличьте для длинных рассуждений ADI; уменьшите для экономии средств.
temperature
f32
0.7
Температура сэмплирования для generate. 0.0 = детерминированный, 1.0 = творческий.
reason_temperature
f32?
-
Переопределение, используемое только forgeplan reason. Структурированный вывод ADI выигрывает от более низкого значения (обычно 0.2–0.3). Если не установлено, возвращается к temperature.
Конфигурирует модель эмбеддингов, используемую для семантического поиска и векторного индекса FPF KB. Требует флага функции semantic-search во время сборки (включен в официальные релизные бинарники).
embedding:
model: bge-m3
chunk_size: 2000
Поле
Тип
По умолчанию
Описание
model
enum
bge-m3
Имя модели эмбеддингов. См. таблицу ниже.
chunk_size
usize
2000
Максимальное количество символов тела артефакта, включенных в текст эмбеддинга. Большие значения дают более богатые эмбеддинги за счет размера кэша и времени загрузки.
Если функция semantic-search отключена во время сборки, Forgeplan все равно работает - он молча переключается на поиск по ключевым словам BM25. См. руководство по поиску для получения подробной информации о гибридном стеке поиска.
Конфигурирует forgeplan estimate - многоуровневую модель оценки, которая сочетает ваш экспертный опыт с мультипликаторами типов задач ИИ. Каждое поле необязательно; опустите всю секцию, чтобы использовать значения по умолчанию.
estimate:
grade_profile:
backend: middle# ваш уровень в бэкенд-разработке
frontend: junior# ваш уровень во фронтенде
devops: senior# ваш уровень в devops/инфраструктуре
ai_ml: principal# ваш уровень в AI/ML
default: senior# запасной вариант для неуказанных областей
grade_multipliers:
junior: 2.0# относительно senior (базовый 1.0)
middle: 1.5
senior: 1.0
principal: 0.7
ai: 0.4# консервативный базовый мультипликатор ИИ
ai_task_multipliers:
pure_coding: 0.10# ИИ кодирует примерно в 10 раз быстрее
Настраивает движок FPF: пороги исследования/эксплуатации, веса надёжности, штрафы за уровень конгруэнтности и ограничения рассуждений ADI. Каждое подполе имеет безопасные значения по умолчанию - настраивайте только при наличии эмпирических причин.
Штраф, применяемый к доказательствам в зависимости от того, насколько хорошо их контекст соответствует артефакту, который они информируют. CL3 (тот же контекст) без штрафа; CL0 (противоположный контекст) сильно дисконтируется.
Оценка, присваиваемая доказательству после valid_until. 0.1 отражает “просрочено, но не отсутствует” - доказательство существовало, просто нуждается в повторной проверке.
Необязательный список пользовательских правил исследования/эксплуатации (FPF Engine Phase 2). Если список пуст, используются встроенные default_rules(). Схема и примеры находятся в руководстве по правилам FPF.
Пороги, используемые forgeplan health (обнаружение дубликатов, обнаружение заглушек) и ограничения защиты от DoS, применяемые сервером MCP к входящим вызовам forgeplan_new / forgeplan_update.
integrity:
duplicate_threshold: 0.7
duplicate_pairs_limit: 10
stub_marker_threshold: 3
mcp_max_title_len: 256
mcp_max_body_len: 1048576# 1 MiB
Поле
Тип
По умолчанию
Диапазон
Описание
duplicate_threshold
f64
0.7
[0.0, 1.0]
Сходство Жаккара, выше которого два артефакта помечаются как дубликаты в forgeplan health.
duplicate_pairs_limit
usize
10
[1, 10000]
Максимальное количество пар дубликатов, отображаемых в выводе health (пагинация).
stub_marker_threshold
usize
3
>= 1
Минимальное количество маркеров заглушек (TODO, TBD, пустые заголовки и т. д.), необходимое для пометки тела артефакта как заглушки.
mcp_max_title_len
usize
256
[16, 4096]
Максимальная длина заголовка артефакта, принимаемая через MCP. Предотвращает злоупотребление памятью со стороны вредоносных клиентов.
mcp_max_body_len
usize
1048576
[1024, 104857600]
Максимальная длина тела артефакта (байты), принимаемая через MCP. По умолчанию: 1 МиБ. Жесткий лимит: 100 МиБ.
Ключ API OpenAI (по умолчанию для provider: openai).
ANTHROPIC_API_KEY
llm
Ключ API Anthropic (по умолчанию для provider: claude).
GEMINI_API_KEY
llm
Ключ API Gemini (по умолчанию для provider: gemini).
FORGEPLAN_LLM_PROVIDER
llm
Переопределяет llm.provider.
FORGEPLAN_LLM_MODEL
llm
Переопределяет llm.model.
FORGEPLAN_LLM_BASE_URL
llm
Переопределяет llm.base_url.
FORGEPLAN_LLM_MAX_TOKENS
llm
Переопределяет llm.max_tokens.
FORGEPLAN_LLM_API_KEY_ENV
llm
Переопределяет llm.api_key_env (имя переменной).
FORGEPLAN_EMBEDDING_MODEL
embedding
Переопределяет embedding.model.
FORGEPLAN_STORAGE_DRIVER
storage
Переопределяет storage.driver.
FORGEPLAN_STORAGE_PATH
storage
Переопределяет storage.path.
FORGEPLAN_MEMORY_DRIVER
memory
Переопределяет memory.driver.
Ключи API никогда не хранятся в config.yaml - хранится только имя переменной окружения в поле api_key_env. Это делает файл конфигурации безопасным для распространения между машинами (при условии, что .forgeplan/config.yaml находится в .gitignore).
ИИ-агенты (Claude Code, Codex и другие), работающие с Forgeplan, должны всегда использовать:
Окно терминала
forgeplaninit-y# НИКОГДА без -y - интерактивный режим зависнет в харнесе агента
Интерактивный режим зависнет в харнесе агента. Флаг -y принимает все значения по умолчанию и записывает минимальный config.yaml, который агент может затем отредактировать.
Бинарный файл Forgeplan собран без функции semantic-search (проверьте forgeplan --version).
embedding.model был изменён, а lance/ не был переиндексирован.
.fastembed_cache/ повреждён.
Исправление:
Окно терминала
rm-rf.forgeplan/.fastembed_cache
forgeplanscan-import# повторно загружает модель + переиндексирует
Если семантический поиск недоступен, Forgeplan автоматически переключается на поиск по ключевым словам BM25 - данные не теряются. См. руководство по поиску для подробностей о гибридном стеке.
”Invalid config: fpf.thresholds.explore_reff must be finite”
Причина: некорректный YAML - числовое поле содержит NaN, Infinity или строку, которая не распарсилась как число.
Исправление: откройте .forgeplan/config.yaml и убедитесь, что каждое числовое поле в секциях fpf:, estimate: и integrity: является обычным десятичным числом. Запустите forgeplan health для повторной проверки.
”integrity.mcp_max_body_len must be in [1024, 104857600]”