智能投顾 Agent¶
项目背景与目标¶
随着居民财富管理需求的快速增长,传统人工投顾服务存在覆盖面窄、成本高、标准化不足等问题。智能投顾(Robo-Advisor)通过算法与 AI Agent 能力,为用户提供个性化的资产配置建议、动态组合管理与再平衡服务,让大众也能享受专业的财富管理体验。
本项目目标是构建一个端到端的智能投顾 Agent 系统,核心能力包括:用户风险偏好评估、多资产配置方案生成、组合表现跟踪、自动再平衡建议、市场事件解读与持仓调整提示。系统须遵循"合规优先、风险可控、透明可解释"的原则,所有建议需附带依据说明,禁止承诺收益。
需求分析¶
用户角色: - 普通投资者:填写风险问卷、查看配置方案、接收调仓提示 - 投资顾问(人工复核):审核高风险方案、处理异常情况 - 合规风控人员:审查建议合规性、监控异常行为
核心功能需求: 1. 风险评估:通过问卷 + 历史行为刻画用户风险等级(C1-C5) 2. 资产配置:基于风险等级、资金规模、投资期限生成大类资产配比 3. 组合再平衡:监控偏离度,触发阈值时生成再平衡建议 4. 市场解读:抓取宏观事件、财报、政策,输出对持仓的影响分析 5. 持仓诊断:对用户既有持仓进行健康度评分与优化建议
非功能需求:响应时延 P95 < 3s;配置方案可解释;所有建议留痕可审计;满足适当性管理要求。
技术选型说明¶
| 模块 | 技术方案 | 选型理由 |
|---|---|---|
| Agent 框架 | LangGraph | 状态机式编排,适合多步骤评估流程 |
| LLM | GPT-4o / Qwen-Max | 市场解读与建议生成需要强推理 |
| 风险评估引擎 | 规则 + 评分卡 | 监管要求可解释,避免黑盒 |
| 配置算法 | 均值-方差模型 + Black-Litterman | 经典资产配置理论,可调预期收益 |
| 行情数据 | Tushare / AkShare / Wind API | 覆盖 A 股、基金、债券、商品 |
| 向量库 | Milvus | 存储研报、政策文档做 RAG |
| 后端 | FastAPI + Celery | 异步任务处理行情抓取与回测 |
| 数据库 | PostgreSQL + Redis | 用户画像持久化 + 实时行情缓存 |
| 前端 | React + ECharts | 配置饼图、净值曲线可视化 |
架构设计¶
flowchart TD
U[用户终端] --> API[FastAPI 网关]
API --> AG[LangGraph Agent 编排]
AG --> RISK[风险评估模块]
AG --> ALLOC[资产配置引擎]
AG --> REB[再平衡监控]
AG --> MKT[市场解读 RAG]
RISK --> DB[(PostgreSQL 用户画像)]
ALLOC --> MD[配置算法服务]
MD --> QUOTE[行情数据服务]
REB --> REDIS[(Redis 持仓缓存)]
MKT --> VEC[(Milvus 研报向量)]
MKT --> LLM[LLM 推理]
AG --> AUDIT[审计留痕]
CEL[Celery 定时任务] --> QUOTE
CEL --> REB
AUDIT --> DB
关键模块实现思路¶
模块1:风险评估¶
设计两层评估机制:静态问卷 + 动态行为。静态问卷采集年龄、收入、投资经验、亏损承受度、投资期限等维度,使用评分卡映射到 C1-C5 五档。动态行为通过用户历史交易(追涨杀跌频率、持仓集中度、赎回行为)做修正。
def map_risk_score(questionnaire: dict, behavior: dict) -> str:
base = score_card(questionnaire) # 0-100 分
adjusted = base + behavior_adjust(behavior) # 行为修正 ±10
level = "C1" if adjusted < 20 else "C2" if adjusted < 40 ...
return level # 返回风险等级,附带依据
问卷题目与权重需经合规审核,避免诱导性提问。结果须强制告知用户并签字确认。
模块2:资产配置引擎¶
采用"战略配置 + 战术微调"双层结构。战略配置基于风险等级确定股/债/商品/现金的大类比例,使用均值-方差模型在历史收益-协方差矩阵上求解有效前沿,再叠加 Black-Litterman 模型引入主观观点做调整。战术微调由 LLM 结合宏观研判给出 ±5% 偏离建议。
每个风险等级预设一个"基准组合"作为锚点,配置结果须与基准偏离不超过阈值,保证一致性。
模块3:组合再平衡¶
设置时间触发(月度/季度)与阈值触发(任一资产偏离目标比例 > 5%)双机制。再平衡时考虑交易成本、税收影响、申赎限额,输出"建议卖出/买入清单"而非强制执行。
再平衡建议需附带回测对比:执行 vs 不执行过去 1 年的夏普比率差异,增强说服力。
模块4:市场解读 RAG¶
构建研报与政策文档向量库,定时抓取券商晨报、央行公告、财报季信息。当用户询问"今天大盘为什么跌"或主动推送时,LLM 先检索相关文档,再结合用户持仓生成影响分析:影响方向(利好/利空)、影响程度(高/中/低)、建议动作(持有/调仓/关注)。
核心流程详解¶
首次配置流程: 1. 用户注册并完成风险问卷 → 系统生成风险等级 2. 输入资金规模、投资期限、目标收益 3. Agent 调用配置引擎生成 3 套候选方案(保守/平衡/进取) 4. LLM 生成方案解读(为什么这样配、预期风险收益) 5. 用户选择方案 → 落地持仓 → 写入审计日志
再平衡流程: 1. Celery 定时任务每日收盘后计算持仓偏离度 2. 触发阈值 → Agent 生成再平衡建议 3. 推送通知给用户,附回测对比与依据 4. 用户确认 → 生成调仓指令(对接券商交易接口需持牌)
部署与优化建议¶
- 合规隔离:建议生成与交易执行物理分离,建议侧由 Agent 完成,执行侧走持牌交易系统
- 数据时效:行情数据缓存不超过 15 分钟,关键决策走实时接口
- LLM 成本:市场解读使用 GPT-4o,简单问答降级到 GPT-4o-mini
- 缓存策略:基准组合与风险等级映射表常驻 Redis,减少重复计算
- 灰度发布:新配置算法先在 5% 用户灰度,监控夏普比率与回撤
常见问题与解决方案¶
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 配置方案同质化 | 基准组合限制过死 | 引入用户标签做差异化微调 |
| LLM 解读与数据矛盾 | 模型幻觉 | RAG 强制检索 + 数值校验护栏 |
| 行情接口限流 | 第三方 API 配额 | 多源备份 + 本地缓存降级 |
| 用户风险等级突变 | 行为修正过激 | 修正幅度限幅 + 人工复核 |
扩展方向¶
- 接入港股、美股、REITs 等更多资产类别
- 增加目标日期基金(TDF)模式,按退休年份自动下滑风险
- 引入社交功能,用户可分享组合(脱敏后)供参考
- 对接券商 OpenAPI 实现一键调仓(需合规备案)