fix(config): rotation at 500k context, same-day text for size and age rotations
This commit is contained in:
@@ -7,7 +7,11 @@ from zoneinfo import ZoneInfo
|
||||
from beaver_gateway.agents.base import BaseAgent, ExposedMcp
|
||||
from beaver_gateway.agents.claude import ClaudeAgent, ClaudeOptions, Prompts
|
||||
from beaver_gateway.agents.raycast import RaycastAgent, RemoteTool, UserPreferences
|
||||
from beaver_gateway.core.conversations import ConversationTexts, SeedContext
|
||||
from beaver_gateway.core.conversations import (
|
||||
ConversationTexts,
|
||||
NewDayContext,
|
||||
SeedContext,
|
||||
)
|
||||
from beaver_gateway.core.distill import DistillContext, Distiller, LineCap
|
||||
from beaver_gateway.core.prompt import assemble
|
||||
from beaver_gateway.core.registry import Gateway
|
||||
@@ -392,6 +396,24 @@ NEW_DAY = (
|
||||
"Новый день ({day}). Ты - новый мастер того же треда: хендаут и сигнал состояния "
|
||||
"в сиде выше. Скажи Бобру что-то через say, только если есть что сказать."
|
||||
)
|
||||
SAME_DAY = (
|
||||
"Мастер пересоздан ({why}), день тот же - {day}. Хендаут в сиде выше - справка от "
|
||||
"предыдущего мастера за сегодня, не утро: продолжай с того места, ничего не "
|
||||
"приветствуй. Скажи Бобру что-то через say, только если есть что сказать."
|
||||
)
|
||||
ROTATION_WHY = {
|
||||
"возраст": "прошло больше 36 часов",
|
||||
"транскрипт": "контекст стал слишком большим",
|
||||
}
|
||||
|
||||
|
||||
def new_day(ctx: NewDayContext) -> str:
|
||||
"""§4.5: «новый день» - только ночная ротация; остальные - тот же день."""
|
||||
day = ctx.day.isoformat()
|
||||
if ctx.reason == "ночь":
|
||||
return NEW_DAY.format(day=day)
|
||||
return SAME_DAY.format(day=day, why=ROTATION_WHY.get(ctx.reason, ctx.reason))
|
||||
|
||||
|
||||
DISTILL = (
|
||||
"Глубокий чат [[{chat}]] закрыт ({reason}), сегодня {day}. Выжимка - `Write` в "
|
||||
@@ -417,7 +439,7 @@ texts = ConversationTexts(
|
||||
merge_prompt=_read(GRANULES / "слив.md") or ConversationTexts().merge_prompt,
|
||||
seed=seed_body,
|
||||
handout=handout_prompt,
|
||||
new_day=NEW_DAY,
|
||||
new_day=new_day,
|
||||
distill=distill_prompt,
|
||||
)
|
||||
|
||||
@@ -555,7 +577,9 @@ gateway = Gateway(
|
||||
frontends=frontends,
|
||||
texts=texts,
|
||||
jobs=jobs,
|
||||
rotation=RotationPolicy(tz=TZ),
|
||||
# Окно модели - 1M; context rot начинается около половины (эмпирика h по
|
||||
# счётчику Claude Code), считаем как он - вход последнего API-вызова.
|
||||
rotation=RotationPolicy(tz=TZ, max_context_tokens=500_000),
|
||||
watch=watch,
|
||||
budget=Budget(threshold=0.7),
|
||||
distiller=Distiller(agent="beaver-distiller", dir=DIGESTS, index=INDEX),
|
||||
|
||||
Reference in New Issue
Block a user