Files
evotraders/pyproject.toml
cillin 16b54d5ccc feat(agent): complete EvoAgent integration for all 6 agent roles
Migrate all agent roles from Legacy to EvoAgent architecture:
- fundamentals_analyst, technical_analyst, sentiment_analyst, valuation_analyst
- risk_manager, portfolio_manager

Key changes:
- EvoAgent now supports Portfolio Manager compatibility methods (_make_decision,
  get_decisions, get_portfolio_state, load_portfolio_state, update_portfolio)
- Add UnifiedAgentFactory for centralized agent creation
- ToolGuard with batch approval API and WebSocket broadcast
- Legacy agents marked deprecated (AnalystAgent, RiskAgent, PMAgent)
- Remove backend/agents/compat.py migration shim
- Add run_id alongside workspace_id for semantic clarity
- Complete integration test coverage (13 tests)
- All smoke tests passing for 6 agent roles

Constraint: Must maintain backward compatibility with existing run configs
Constraint: Memory support must work with EvoAgent (no fallback to Legacy)
Rejected: Separate PM implementation for EvoAgent | unified approach cleaner
Confidence: high
Scope-risk: broad
Directive: EVO_AGENT_IDS env var still respected but defaults to all roles
Not-tested: Kubernetes sandbox mode for skill execution
2026-04-02 00:55:08 +08:00

89 lines
2.3 KiB
TOML

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "evotraders"
version = "0.1.0"
description = "大时代: A self-evolving multi-agent trading system"
readme = "README.md"
requires-python = ">=3.9"
license = {text = "MIT"}
authors = [
{name = "大时代 Team", email = "dengjiaji.djj@alibaba-inc.com"}
]
keywords = ["trading", "ai", "multi-agent", "fintech", "algorithmic-trading"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Financial and Insurance Industry",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Topic :: Office/Business :: Financial :: Investment",
]
dependencies = [
"agentscope>=1.0.8",
"reme-ai>=0.2.0.4",
"fastapi>=0.115.0",
"uvicorn>=0.30.0",
"pydantic>=2.8.0",
"rich>=13.6.0",
"websockets>=12.0",
"websocket-client>=1.6.0",
"httpx>=0.27.0",
"requests>=2.31.0",
"cryptography>=43.0.0",
"python-dotenv>=1.0.0",
"PyYAML>=6.0.0",
"loguru>=0.7.0",
"finnhub-python>=2.4.25",
"yfinance>=0.2.36",
"numpy>=1.24.0",
"pandas>=2.0.0",
"matplotlib>=3.7.0",
"seaborn>=0.12.0",
"pandas-market-calendars>=5.0.0",
"exchange-calendars>=4.5.0",
"typer>=0.12.5",
"openai>=2.9.0",
"anthropic>=0.20.0",
]
[project.optional-dependencies]
docker-sandbox = [
"agentscope-runtime>=0.1.0"
]
dev = [
"pytest>=8.3.3",
"ruff>=0.6.9",
"black>=25.0.0"
]
[project.urls]
Homepage = "http://trading.evoagents.cn"
Repository = "https://github.com/agentscope-ai/agentscope-samples/evotraders"
Documentation = "https://github.com/agentscope-ai/agentscope-samples/evotraders/README.md"
"Bug Tracker" = "https://github.com/agentscope-ai/agentscope-samples/issues"
[project.scripts]
evotraders = "backend.cli:app"
[tool.setuptools.packages.find]
include = ["backend*", "shared*"]
[tool.ruff]
line-length = 88
target-version = "py39"
[tool.pytest.ini_options]
testpaths = ["backend/tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
asyncio_default_fixture_loop_scope = "function"