Merge remote-tracking branch 'origin/qyqy_develop' into qyqy_develop_1

# Conflicts:
#	app/service/agent/bootstrap.py
This commit is contained in:
2026-09-11 10:43:08 +08:00
70 changed files with 11572 additions and 0 deletions
+32
View File
@@ -8,6 +8,7 @@ from app.core.config import get_settings
from app.core.errors import RecoverableAgentError
from app.core.fund_contracts import FundQuoteQuery
from app.core.knowledge_contracts import KnowledgeSearchInput
from app.core.risk_contracts import RiskAlertEvidenceQuery, RiskAlertQuery
from app.infrastructure.fund_quote_cache import FundQuoteCache
from app.infrastructure.graph import build_graph_driver
from app.infrastructure.memory_cache import MemoryCacheAdapter
@@ -16,6 +17,7 @@ from app.service.agent.factory import AgentFactory
from app.service.agent.governance import PlatformGovernance
from app.service.agent.implementations.customer_service import CustomerServiceAgent
from app.service.agent.implementations.fund_query_demo import FundQueryDemoAgent
from app.service.agent.implementations.risk_agent import RiskAgent
from app.service.fund_quote_service import query_fund_quote_tool
from app.service.intent_classifier import IntentClassifier
from app.service.knowledge_search_service import KnowledgeSearchService
@@ -29,6 +31,11 @@ from app.service.model_gateway import (
ModelGenerationService,
)
from app.service.relationship_service import RelationshipService
from app.service.risk_tools import (
get_alert_evidence_tool,
get_risk_overview_tool,
search_risk_alerts_tool,
)
from app.service.runtime_config_service import load_active_intent_configs
from app.service.suitability_service import SuitabilityToolInput, suitability_tool_handler
from app.service.tool_executor import ToolDefinition, ToolExecutor, ToolRegistry
@@ -195,6 +202,27 @@ def get_agent_factory() -> AgentFactory:
# 10s 覆盖冷启动与 Milvus 抖动,又不至于让客户等太久
timeout_seconds=10,
))
registry.register(ToolDefinition(
name="search_risk_alerts",
input_model=RiskAlertQuery,
handler=cast(Any, search_risk_alerts_tool),
required_permission="risk:alert:read",
allowed_roles=("risk_operator", "admin"),
))
registry.register(ToolDefinition(
name="get_risk_overview",
input_model=RiskAlertQuery,
handler=cast(Any, get_risk_overview_tool),
required_permission="risk:alert:read",
allowed_roles=("risk_operator", "admin"),
))
registry.register(ToolDefinition(
name="get_alert_evidence",
input_model=RiskAlertEvidenceQuery,
handler=cast(Any, get_alert_evidence_tool),
required_permission="risk:alert:read",
allowed_roles=("risk_operator", "admin"),
))
model_service = get_model_service()
endpoint_resolver = DatabaseModelEndpointResolver()
factory = AgentFactory(
@@ -231,3 +259,7 @@ def register_business_agents(factory: AgentFactory) -> None:
CustomerServiceAgent.definition,
lambda _context: CustomerServiceAgent(CustomerServiceAgent.definition),
)
factory.register(
RiskAgent.definition,
lambda _context: RiskAgent(RiskAgent.definition),
)