Tool calling added.

This commit is contained in:
vh
2026-04-03 09:01:01 -07:00
parent 46b10e8420
commit 2166af01be
11 changed files with 1492 additions and 0 deletions
+42
View File
@@ -296,10 +296,52 @@ AGENT_CONFIGS: dict[str, dict] = {
"temperature": adef["temperature"],
"max_tokens": adef["max_tokens"],
"stateful": adef["stateful"],
"tools": list(adef.get("tools") or []),
}
for name, adef in _agents.items()
}
def agent_tools(agent: str) -> list[str]:
"""List of tool names assigned to an agent (empty list if none)."""
return AGENT_CONFIGS.get(agent, {}).get("tools", [])
def reload_agents_config() -> None:
"""
Re-read agents.yaml and refresh all derived module-level values.
Call after upsert_agent_definition() to pick up changes in the running session.
"""
global _agents_cfg, _providers, _agents
global AGENT_CONFIGS, LEAD_AGENT_NAMES, ACTIVE_PROVIDER
global ORCHESTRATOR_AGENT, AUDITOR_AGENT, RECRUITER_AGENT
global _roles, _SYSTEM_AGENTS
with open(_AGENTS_CONFIG_PATH, encoding="utf-8") as fh:
_agents_cfg = yaml.safe_load(fh)
_providers = _agents_cfg.get("providers", {})
_agents = _agents_cfg.get("agents", {})
AGENT_CONFIGS = {
name: {
"prompt_file": adef["prompt_file"],
"temperature": adef["temperature"],
"max_tokens": adef["max_tokens"],
"stateful": adef["stateful"],
"tools": list(adef.get("tools") or []),
}
for name, adef in _agents.items()
}
_roles = _agents_cfg.get("roles", {})
ORCHESTRATOR_AGENT = _roles.get("orchestrator", "")
AUDITOR_AGENT = _roles.get("auditor", "")
RECRUITER_AGENT = _roles.get("recruiter", "")
_SYSTEM_AGENTS = {ORCHESTRATOR_AGENT, AUDITOR_AGENT, RECRUITER_AGENT} - {""}
LEAD_AGENT_NAMES = {name for name in _agents if name not in _SYSTEM_AGENTS}
ACTIVE_PROVIDER = _agents_cfg.get("default_provider", "none")
# Agents the orchestrator can dispatch work to.
# Everything in agents.yaml that is not a system-role agent.
LEAD_AGENT_NAMES: set[str] = {