Add run-scoped skill and prompt asset management

This commit is contained in:
2026-03-16 00:04:04 +08:00
parent 964d3b6e13
commit 78f133617f
23 changed files with 1309 additions and 109 deletions

View File

@@ -22,6 +22,9 @@ from rich.console import Console
from rich.panel import Panel
from rich.prompt import Confirm
from backend.agents.prompt_loader import PromptLoader
from backend.agents.workspace_manager import WorkspaceManager
app = typer.Typer(
name="evotraders",
help="EvoTraders: A self-evolving multi-agent trading system",
@@ -29,6 +32,7 @@ app = typer.Typer(
)
console = Console()
_prompt_loader = PromptLoader()
def get_project_root() -> Path:
@@ -180,6 +184,46 @@ def run_data_updater(project_root: Path) -> None:
)
def initialize_workspace(config_name: str) -> Path:
"""Create run-scoped workspace files for a config."""
workspace_manager = WorkspaceManager(project_root=get_project_root())
workspace_manager.initialize_default_assets(
config_name=config_name,
agent_ids=[
"fundamentals_analyst",
"technical_analyst",
"sentiment_analyst",
"valuation_analyst",
"risk_manager",
"portfolio_manager",
],
analyst_personas=_prompt_loader.load_yaml_config(
"analyst",
"personas",
),
)
return workspace_manager.get_run_dir(config_name)
@app.command("init-workspace")
def init_workspace(
config_name: str = typer.Option(
"default",
"--config-name",
"-c",
help="Configuration name for the workspace",
),
):
"""Initialize run-scoped BOOTSTRAP and agent prompt asset files."""
run_dir = initialize_workspace(config_name)
console.print(
Panel.fit(
f"[bold green]Workspace initialized[/bold green]\n[cyan]{run_dir}[/cyan]",
border_style="green",
),
)
@app.command()
def backtest(
start: Optional[str] = typer.Option(