merge: 并入同事的场外申购/推广/行情/NL2SQL 线(11 提交、334 文件)
冲突仅 3 个文件,全部取并集(双方都没有需要丢弃的改动): - app/main.py:import 双方路由(我方 knowledge_management + 同事的 offsite_fund/ promotion_material);include_router 段本已自动合并 - app/service/agent/bootstrap.py:import 与工具注册均取并集 (query_customer_profile + query_financial_data 都注册) - tests/integration/test_config_release_mysql.py:outbox 清理同时保留 架构师的 event_type 限定(防误删其它域 outbox 行)与同事新增的 peer_release_id 同事这轮带入:11 个 alembic 迁移(建 offsite_* / promotion_* 等表)、 场外申购与推广素材 Agent、financial NL2SQL 工具。 注意:本库尚无 offsite_*/promotion_* 表,跑相关测试前需要执行 alembic upgrade。 边界核对:同事的场外代码未写入场内交易表(fin_sim_order/fin_capital_flow/fin_cash_ledger), 符合 AGENTS.md 规则 8。
This commit is contained in:
@@ -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.nl2sql_contracts import FinancialNL2SQLInput
|
||||
from app.core.risk_contracts import RiskAlertEvidenceQuery, RiskAlertQuery
|
||||
from app.infrastructure.fund_quote_cache import FundQuoteCache
|
||||
from app.infrastructure.graph import build_graph_driver
|
||||
@@ -28,10 +29,13 @@ from app.service.agent.implementations.platform_probe import (
|
||||
probe_echo_tool,
|
||||
)
|
||||
from app.service.agent.implementations.risk_agent import RiskAgent
|
||||
from app.service.agent.offsite_fund_agent import OffsiteFundAgent
|
||||
from app.service.agent.promotion_material_agent import PromotionMaterialAgent
|
||||
from app.service.customer_profile_service import (
|
||||
CustomerProfileQuery,
|
||||
query_customer_profile_tool,
|
||||
)
|
||||
from app.service.financial_nl2sql_service import query_financial_data_tool
|
||||
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
|
||||
@@ -262,6 +266,14 @@ def get_agent_factory() -> AgentFactory:
|
||||
required_permission="memory:read:self",
|
||||
allowed_roles=("customer", "advisor", "operator", "risk_operator", "admin"),
|
||||
))
|
||||
registry.register(ToolDefinition(
|
||||
name="query_financial_data",
|
||||
input_model=FinancialNL2SQLInput,
|
||||
handler=cast(Any, query_financial_data_tool),
|
||||
required_permission="financial:nl2sql:read",
|
||||
allowed_roles=("advisor", "operator", "admin", "super_admin"),
|
||||
timeout_seconds=10,
|
||||
))
|
||||
registry.register(ToolDefinition(
|
||||
name="search_knowledge",
|
||||
input_model=KnowledgeSearchInput,
|
||||
@@ -294,6 +306,7 @@ def get_agent_factory() -> AgentFactory:
|
||||
required_permission="risk:alert:read",
|
||||
allowed_roles=("risk_operator", "admin"),
|
||||
))
|
||||
|
||||
model_service = get_model_service()
|
||||
endpoint_resolver = DatabaseModelEndpointResolver()
|
||||
factory = AgentFactory(
|
||||
@@ -334,6 +347,14 @@ def register_business_agents(factory: AgentFactory) -> None:
|
||||
RiskAgent.definition,
|
||||
lambda _context: RiskAgent(RiskAgent.definition),
|
||||
)
|
||||
factory.register(
|
||||
OffsiteFundAgent.definition,
|
||||
lambda _context: OffsiteFundAgent(OffsiteFundAgent.definition),
|
||||
)
|
||||
factory.register(
|
||||
PromotionMaterialAgent.definition,
|
||||
lambda _context: PromotionMaterialAgent(PromotionMaterialAgent.definition),
|
||||
)
|
||||
# 基座验证探针:只读、无副作用,用于端到端验证工具链路的拒绝行为。
|
||||
# 角色限定 admin,业务上不对外暴露用途。
|
||||
factory.register(
|
||||
|
||||
Reference in New Issue
Block a user