Updated tool-calling

This commit is contained in:
vh
2026-04-03 22:11:36 -07:00
parent 4e411f8060
commit 7472654587
150 changed files with 13014 additions and 137 deletions
+21 -3
View File
@@ -266,14 +266,16 @@ _roles: dict = _agents_cfg.get("roles", {})
ORCHESTRATOR_AGENT: str = _roles.get("orchestrator", "")
AUDITOR_AGENT: str = _roles.get("auditor", "")
RECRUITER_AGENT: str = _roles.get("recruiter", "")
SUMMARIZER_AGENT: str = _roles.get("summarizer", "")
if not ORCHESTRATOR_AGENT:
raise ValueError("No 'orchestrator' role defined in config/agents.yaml under 'roles'.")
if not AUDITOR_AGENT:
raise ValueError("No 'auditor' role defined in config/agents.yaml under 'roles'.")
# All system-level agents that are not dispatchable leads.
_SYSTEM_AGENTS: set[str] = {ORCHESTRATOR_AGENT, AUDITOR_AGENT, RECRUITER_AGENT} - {""}
# Only the orchestrator, auditor, and summarizer are non-dispatchable. All other
# roles (including recruiter) are leads and can receive TASK BRIEFs.
_SYSTEM_AGENTS: set[str] = {ORCHESTRATOR_AGENT, AUDITOR_AGENT, SUMMARIZER_AGENT} - {""}
# ---------------------------------------------------------------------------
# Agent and lead definitions (derived from agents.yaml)
@@ -338,7 +340,8 @@ def reload_agents_config() -> None:
ORCHESTRATOR_AGENT = _roles.get("orchestrator", "")
AUDITOR_AGENT = _roles.get("auditor", "")
RECRUITER_AGENT = _roles.get("recruiter", "")
_SYSTEM_AGENTS = {ORCHESTRATOR_AGENT, AUDITOR_AGENT, RECRUITER_AGENT} - {""}
SUMMARIZER_AGENT = _roles.get("summarizer", "")
_SYSTEM_AGENTS = {ORCHESTRATOR_AGENT, AUDITOR_AGENT, SUMMARIZER_AGENT} - {""}
LEAD_AGENT_NAMES = {name for name in _agents if name not in _SYSTEM_AGENTS}
ACTIVE_PROVIDER = _agents_cfg.get("default_provider", "none")
@@ -351,6 +354,19 @@ LEAD_AGENT_NAMES: set[str] = {
# Global fallback provider name (for /status display).
ACTIVE_PROVIDER: str = _agents_cfg.get("default_provider", "none")
# ---------------------------------------------------------------------------
# Knowledge Base
# ---------------------------------------------------------------------------
_kb = _app.get("knowledge_base", {})
KB_ENABLED: bool = os.getenv("AIPA_KB_ENABLED",
str(_kb.get("enabled", True))).lower() == "true"
KB_PATH: Path = _resolve(os.getenv("AIPA_KB_PATH",
_kb.get("path", "data/knowledge_base")))
KB_DEFAULT_COLLECTION: str = os.getenv("AIPA_KB_DEFAULT_COLLECTION",
_kb.get("default_collection", "general"))
# ---------------------------------------------------------------------------
# Ensure writable runtime directories exist
# ---------------------------------------------------------------------------
@@ -359,3 +375,5 @@ def ensure_runtime_dirs():
"""Create runtime directories that may not exist yet (logs, data, archive, tasks)."""
for d in (LOGS_DIR, DATA_DIR, ARCHIVE_DIR, TASKS_DIR):
d.mkdir(parents=True, exist_ok=True)
if KB_ENABLED:
KB_PATH.mkdir(parents=True, exist_ok=True)