Files

48 lines
1.9 KiB
Python

"""Сборка gateway для Бобра. Что где: пакет `beaver_agent/`.
- vault.py - пути и зона агента; prompts.py - как из гранул собирается промпт роли;
- skills.py - наборы скиллов по окнам; policy.py - что можно трогать в vault;
- hands/ - MCP-руки и кому какая выдана; agents.py - роли и их экземпляры;
- frontends.py - окна; voice/ - голосовые точки по квартире и их ветка;
- texts.py - всё, что gateway говорит, по-русски;
- memory/ - справка, реплики, хендауты, вотчер, куратор; jobs/ - кроны и вебхуки.
"""
import os
from beaver_gateway.config import Gateway
from beaver_gateway.conversations.distill import Distiller
from beaver_gateway.conversations.rotation import RotationPolicy
from beaver_gateway.jobs.scheduler import Budget
from beaver_agent import texts
from beaver_agent.agents import agents
from beaver_agent.frontends import frontends
from beaver_agent.hands import mcps
from beaver_agent.jobs import jobs
from beaver_agent.memory.watch import recall, replies, watch
from beaver_agent.vault import DIGESTS, INDEX, TZ
gateway = Gateway(
agents=agents,
mcps=mcps,
frontends=frontends,
texts=texts.CONVERSATIONS,
jobs=jobs,
rotation=RotationPolicy(tz=TZ, max_context_tokens=500_000),
watch=watch,
recall=recall.block,
user_sink=replies.write,
budget=Budget(threshold=0.7),
distiller=Distiller(
agent="beaver-distiller",
dir=DIGESTS,
index=INDEX,
type="выжимка",
index_header="# индекс\n\nстрока на выжимку: чат → его выжимка.\n",
),
tz=TZ,
port=62990,
public_url=os.environ.get("PUBLIC_BASE_URL", "").rstrip("/") or None,
)