Add per-agent skill workspaces and TraderView management

This commit is contained in:
2026-03-17 13:55:14 +08:00
parent 1f5ee3698e
commit 2daf5717ba
35 changed files with 4774 additions and 331 deletions

View File

@@ -3,6 +3,7 @@
from typing import Any, Dict, Iterable
from .agent_workspace import load_agent_workspace_config
from backend.config.bootstrap_config import get_bootstrap_config_for_run
import yaml
@@ -151,6 +152,9 @@ def create_agent_toolkit(
profiles = load_agent_profiles()
profile = profiles.get(agent_id, {})
skills_manager = SkillsManager()
agent_config = load_agent_workspace_config(
skills_manager.get_agent_asset_dir(config_name, agent_id) / "agent.yaml",
)
bootstrap_config = get_bootstrap_config_for_run(
skills_manager.project_root,
config_name,
@@ -158,8 +162,16 @@ def create_agent_toolkit(
override = bootstrap_config.agent_override(agent_id)
active_groups = override.get(
"active_tool_groups",
profile.get("active_tool_groups", []),
agent_config.active_tool_groups
or profile.get("active_tool_groups", []),
)
disabled_groups = set(agent_config.disabled_tool_groups)
if disabled_groups:
active_groups = [
group_name
for group_name in active_groups
if group_name not in disabled_groups
]
toolkit = Toolkit(
agent_skill_instruction=(
@@ -184,7 +196,7 @@ def create_agent_toolkit(
default_skills=profile.get("skills", []),
)
active_skill_dirs = [
skills_manager.get_active_root(config_name) / skill_name
skills_manager.get_agent_active_root(config_name, agent_id) / skill_name
for skill_name in skill_names
]