301c78edc3ff7e8f62e201a9c825795418370346
- app/tool/core_tools.py: 三只读 Tool(query_customer_profile/holdings/recent_trades, Core RO 仅 SELECT) + TOOL_REGISTRY 白名单(requires_customer); JSON 安全化(Decimal 两位/时间 isoformat) - app/service/tool_service.py: match_intent 关键词意图(仅 customer/advisor; risk/analyst 空转归 C1/C2) + assert_tool_access 归属断言(customer 本人/advisor assigned/risk_officer 全量/其余拒, 口径对齐 deps.assert_customer_access) + run_tool 编排(白名单→校验→执行→agent_tool_call 落库, 落库失败降级 warning) - agent_service: 图 START→tool→llm→guard; Tool 结果注入 LLM 上下文(SystemMessage); 降级回复带 Tool 摘要; chat() 可选 session 上下文(缺省空转, T-07 兼容) - session_repository: insert_tool_call(message_id 一期 NULL, session_id+trace_id 可还原) - 归属拒绝口径: Tool 层不抛 403 改 blocked 留痕(AUTH_403_* 同码), 对话内呈现——API 层 deny 铁律不变 - tests: test_chat_tools 20 例(三态+落库字段+降级+图注入) + test_chat 4 例(全链路/JWT 外 debug 通道), _ddl 补 agent_tool_call/core_holding, 297 绿 - 真库冒烟: uvicorn+真 MySQL/Redis chat 触发持仓查询 success 落痕 47ms, 现场已清理
JinRong · 金融四 Agent 智能管家
四个 Agent(客户财富 / 代理人助手 / 数据分析 / 风控监测)共用统一数据层与合规底座。
文档
| 目录 | 内容 |
|---|---|
| docs/memory/MEMORY.md | 项目记忆入口(新 Agent 读 §0 交接清单) |
| docs/需求拆解/ | 业务场景、数据矩阵、合规 |
| docs/项目框架设计/ | 表设计、技术选型、JWT 手册 |
后端结构
app/
├── api/ # 路由:chat、knowledge、admin
├── service/ # Agent、RAG、记忆
├── tool/ # 解析、Embedding、Milvus
├── model/ # Pydantic + ORM
├── repository/ # Core 只读 core_ro(已实现)
├── config/ # settings、database
├── utils/
└── main.py
环境要求
- Python 3.13+、MySQL 8.0、Redis 8、Neo4j Desktop、Ollama(bge-m3)
- Windows 原生部署(见技术选型文档)
快速启动
cp .env.example .env
pip install -r requirements.txt
# 首次:灌 Core 模拟库与同步 — 见 docs/memory/FLOW.md §0
uvicorn app.main:app --reload
健康检查:GET http://127.0.0.1:8000/health
前端
React 19 + Vite 7 + Ant Design 5(待 init web/ 目录)。
Languages
Python
84.5%
TypeScript
9%
JavaScript
4.3%
CSS
1.1%
PowerShell
1%