Перейти к содержимому

Рефлексия

После запуска chain.reflect(...) просит LLM проанализировать, насколько хорошо цепочка выполнила задачу — выявляя слабые шаги и конкретные предложения по улучшению.

result = chain.execute(context)
reflection = chain.reflect(
task_description="Analyze customer sentiment and extract key themes",
)
print(reflection)
ПараметрТипПо умолчаниюНазначение
task_descriptionstr— (обязательное)Исходная цель для оценки.
contextReasoningContext | NoneNoneПо умолчанию — последний контекст выполнения.
languageLanguage | NoneNoneПо умолчанию — язык контекста.
optionsReflectionOptions | NoneNoneУправляет содержимым промпта.

Вызывает RuntimeError, если ни одного запуска ещё не было.

ReflectionOptions настраивает промпт рефлексии:

from mmar_carl import ReflectionOptions
chain.reflect(
task_description="...",
options=ReflectionOptions(include_dependency_analysis=False),
)

Когда include_metric_scores=True (по умолчанию), любые оценки метрик передаются в промпт как конкретные сигналы качества — например, низкое keyword_coverage на шаге побуждает модель предложить лучшие step_context_queries.

Объедините рефлексию с DatasetEvaluator: стратегия выбора (ThresholdStrategy / TopKWorstStrategy) выбирает худшие кейсы, чтобы рефлексия сосредоточилась на важных сбоях.