Updated tool-calling
This commit is contained in:
+21
-3
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user