"""director — 신뢰축/비트/수렴 판정 (LlmAgent). 구조화 값은 텍스트가 아니라 FunctionTool이 session.state에 직접 기록한다 (output_key 구조화 기대 금지 / output_schema+tools 동시 사용 금지 — CLAUDE.md). 수렴 선언(finish_pocket)은 escalate만 세우고, 최종 전이는 services/pocket.py가 재검증한다. """ from __future__ import annotations from pathlib import Path from google.adk.agents import LlmAgent from engine.model import LLM_MODEL from engine.tools.state.finish_pocket import finish_pocket from engine.tools.state.mark_beat import mark_beat from engine.tools.state.update_trust import update_trust _INSTRUCTION = Path(__file__).resolve().parents[2] / "instructions" / "director.md" def create_director(model=None) -> LlmAgent: return LlmAgent( name="director", model=model or LLM_MODEL, instruction=_INSTRUCTION.read_text(encoding="utf-8"), tools=[update_trust, mark_beat, finish_pocket], )