feat: add dynamic advisor asset allocation

This commit is contained in:
Windows
2026-09-11 14:44:29 +08:00
parent 8ffd08b4ce
commit ff71a1a724
15 changed files with 652 additions and 22 deletions
+10
View File
@@ -4,6 +4,7 @@ from typing import Any, cast
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.advisor_allocation_contracts import AssetAllocationQuery
from app.core.config import get_settings
from app.core.errors import RecoverableAgentError
from app.core.fund_contracts import FundQuoteQuery
@@ -16,6 +17,7 @@ from app.service.agent.factory import AgentFactory
from app.service.agent.governance import PlatformGovernance
from app.service.agent.implementations.advisor import AdvisorAgent
from app.service.agent.implementations.fund_query_demo import FundQueryDemoAgent
from app.service.asset_allocation_service import asset_allocation_tool
from app.service.fund_quote_service import query_fund_quote_tool
from app.service.intent_classifier import IntentClassifier
from app.service.investment_goal_service import investment_goal_query_tool
@@ -163,6 +165,14 @@ def get_agent_factory() -> AgentFactory:
allowed_roles=("customer", "advisor", "operator", "admin"),
timeout_seconds=10,
))
registry.register(ToolDefinition(
name="generate_asset_allocation",
input_model=AssetAllocationQuery,
handler=cast(Any, asset_allocation_tool),
required_permission="asset-allocation:generate:self",
allowed_roles=("customer", "advisor", "operator", "admin"),
timeout_seconds=15,
))
model_service = get_model_service()
endpoint_resolver = DatabaseModelEndpointResolver()
factory = AgentFactory(