核心功能
InvestorClaw 是一个确定性优先(deterministic-first)的本地投资组合分析工具,通过 Docker 容器运行,提供 20 个 MCP 工具/REST 端点,覆盖持仓分析、绩效计算、债券分析、行业分布、再平衡优化等全流程。
主要能力:
- 持仓快照:自动识别 Schwab/Fidelity/Vanguard 等券商导出的 CSV/XLS/PDF 文件
- 绩效指标:Sharpe 比率、Sortino 比率、最大回撤、风险调整后收益
- 债券分析:久期计算、收益率曲线(FRED 数据)、债券阶梯结构
- 行业分布: sector breakdown、集中度分析
- 再平衡与优化:目标配置情景模拟、效率前沿
- 市场数据:实时报价、分析师评级、持仓相关新闻
使用模式:
用户通过自然语言提问(如"我的投资组合表现如何?"),portfolio_ask 工具自动路由至 ic-engine 执行确定性计算,再由配置的 LLM(默认 Together AI gemma-4-31B)将签名信封数据合成为叙事回答。
技术架构:
- 容器化部署(~600MB 镜像),绑定本地端口 18090(MCP+REST)和 18092(Web 仪表板)
- 数据完全本地:持仓文件、计算中间状态、API 密钥均不离开主机
- 仅用户问题和计算结果摘要发送至 LLM 提供商
- 支持多数据源回退:yfinance(免费)、Finnhub(60次/分钟)、Massive(付费,200+持仓必需)
显著优点
1. 隐私优先设计:所有原始持仓数据、账户信息、成本基础均保留在本地 Docker 卷,仅脱敏后的计算指标外出
2. 金融计算专业:内置债券久期、收益率曲线、Sortino 比率等专业指标,非通用 LLM 估算
3. 确定性输出:计算结果经 HMAC 签名,可验证非 LLM 虚构
4. 券商兼容广:支持主流美国券商导出格式,自动识别并清洗(去除账号/SSN)
5. 灵活的 LLM 选择:默认 Together AI(低成本 ~$0.0008/1K tokens),支持本地 Ollama、OpenAI 等替代
6. 状态持久化:升级时通过 portfolio_export/portfolio_import 迁移,API 密钥支持 scrypt+AES-256-GCM 加密备份
潜在缺点与局限
1. 冷启动耗时:200+ 持仓组合首次初始化需 5-15 分钟(yfinance 限速);Massive 付费密钥可缓解
2. 部署门槛高:必须用户自行安装 Docker,预创建 portfolios/ 目录(权限敏感),对非技术用户不友好
3. 密钥依赖:叙事功能强制需要 TOGETHER_API_KEY 或等效 LLM 密钥,无密钥时仅返回 stub 目录
4. 数据源限制:免费层存在速率限制(Finnhub 60次/分钟、Alpha Vantage 25次/天),大组合需付费升级
5. 单用户架构:localhost 绑定设计,无多用户隔离,不适合团队共享
6. 维护复杂度:需自行管理 Docker 容器生命周期、监控初始化状态、处理版本升级
适合人群
- 隐私敏感型投资者:不愿将持仓数据上传至云端券商或第三方分析平台
- 技术能力较强的个人投资者:熟悉 Docker/命令行,能管理本地服务
- 专业级分析需求者:需要精确债券计算、风险指标,不满于券商 App 的基础图表
- 多券商账户整合用户:需跨 Schwab/Fidelity/Vanguard 等统一视图
- 合规/审计场景:需要 HMAC 签名的可验证计算结果
常规风险
1. 配置错误风险:未预创建 portfolios/ 目录导致权限失败,容器进入 init_state=failed
2. 数据过期风险:缓存 TTL 60秒(新闻30秒),快速波动市场下数据可能滞后,需显式调用 portfolio_refresh
3. API 密钥泄露风险:keys.env 以 0600 模式存储,但备份文件若 passphrase 薄弱可被暴力破解
4. 依赖服务中断:yfinance/FRED 等免费服务变更接口可能导致数据获取失败
5. 升级中断风险:跨主机迁移时需手动处理加密备份,操作不当导致密钥丢失
6. 误读风险:叙事由 LLM 生成,虽有签名信封验证,但用户可能混淆"计算正确"与"投资建议"(明确声明仅教育用途)