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

Чекеры и агрегация

Политика RE-PLAN запускает один или несколько чекеров после шага. Каждый возвращает вердикт (действие + причина + уверенность); агрегация политики объединяет их в одно решение.

Детерминированные правила по тексту ошибки/результата шага — быстро и бесплатно.

from mmar_carl import RuleBasedReplanCheckerConfig, ReplanAction
RuleBasedReplanCheckerConfig(
name="rule_based",
error_substrings=["rate limit", "timeout"], # match against the error
result_substrings=["I don't know"], # match against the output
action_on_failure=ReplanAction.RETRY_CURRENT_STEP, # step failed
action_on_match=ReplanAction.REPLAN_FROM_CHECKPOINT, # a substring matched
confidence=0.9,
)

Ключевые поля: trigger_on_failed_step, error_substrings, result_substrings, action_on_failure, action_on_match, rollback_target_on_failure / rollback_target_on_match, feedback_on_failure / feedback_on_match.

Спрашивает у LLM, нужно ли перепланировать (и как) — гибко, требует вызова.

from mmar_carl import LLMReplanCheckerConfig
LLMReplanCheckerConfig(
name="llm_replan",
model="anthropic/claude-3.5-sonnet", # optional per-checker override
history_entries=6, # how much history to show the judge
error_entries=4,
retries=1,
)

Также принимает пользовательский prompt_template, temperature, max_tokens и parse_error_action (что делать, если ответ LLM нельзя разобрать).

Ссылается на чекер, зарегистрированный в коде через context.register_replan_checker(name, checker):

from mmar_carl import RegisteredReplanCheckerConfig
RegisteredReplanCheckerConfig(name="my_custom_checker")

Когда в политике несколько чекеров, ReplanAggregationConfig определяет исход:

from mmar_carl import ReplanAggregationConfig, ReplanAggregationStrategy
ReplanAggregationConfig(
strategy=ReplanAggregationStrategy.K_OF_N,
k=2, # need 2 checkers to agree
action_selection="priority", # or "highest_confidence"
)
СтратегияПерепланирует, когда…
ANYлюбой чекер голосует за перепланирование.
ALLвсе чекеры голосуют за перепланирование.
K_OF_Nкак минимум k чекеров голосуют за перепланирование.
MANDATORY_PLUS_K_OF_RESTвсе mandatory_checkers согласны и k из остальных тоже.

action_selection определяет, какое действие побеждает при разногласии чекеров — "priority" (по серьёзности действия) или "highest_confidence".

  • Обзор RE-PLAN — политика, триггеры, бюджеты, контрольные точки.