feat(voice,agents,memory): voice points get their own branch, agent and keys

This commit is contained in:
hh
2026-09-06 23:26:35 +02:00
parent 1ecfa01374
commit af331e6d91
14 changed files with 747 additions and 4 deletions
+15
View File
@@ -21,6 +21,8 @@ from beaver_agent.policy import (
vault_zones,
)
from beaver_agent.vault import TZ, VAULT
from beaver_agent.voice import AGENT as VOICE
from beaver_agent.voice import PROMPT as VOICE_PROMPT
if TYPE_CHECKING:
from beaver_gateway.agents.base import BaseAgent
@@ -106,6 +108,18 @@ def triage(name: str, model: str, effort: str) -> ClaudeAgent:
)
def voice(name: str, model: str) -> ClaudeAgent:
"""Колонки по квартире: чужие люди, поэтому ни vault, ни инструментов."""
return ClaudeAgent(
name=name,
model=model,
cwd=Path("/tmp"), # noqa: S108
system_prompt=VOICE_PROMPT,
kinds=("branch",),
options=ClaudeOptions(tools=(), disallowed_tools=TRIAGE_DISALLOWED),
)
def raycast(name: str, model: str, effort: str) -> RaycastAgent:
"""Быстрые ответы через Raycast: веб и чтение страниц, vault через obsidian-fs."""
return RaycastAgent(
@@ -131,6 +145,7 @@ agents: list[BaseAgent] = [
distiller("beaver-distiller", "claude-opus-5", "medium"),
curator("beaver-curator", "claude-opus-5", "high"),
triage("beaver-triage", "claude-sonnet-5", "low"),
voice(VOICE, "claude-haiku-4-5-20251001"),
raycast("beaver-gemini-pro-high", "google-gemini-3.1-pro", "high"),
raycast("beaver-gemini-pro-low", "google-gemini-3.1-pro", "low"),
raycast("beaver-gemini-flash-high", "google-gemini-3.5-flash", "high"),