vault: update Trading Agents plan with finalized architecture details
This commit is contained in:
@@ -10,119 +10,72 @@ tags: [trading, multi-agent, openclaw, openbb, architecture]
|
|||||||
|
|
||||||
## 目标
|
## 目标
|
||||||
|
|
||||||
基于 [[openbb-invest-api]] 的数据层,在 OpenClaw 上实现类似 [TradingAgents](https://github.com/TauricResearch/TradingAgents) 的多角色交易决策系统。核心是**辩论驱动的投资决策**。
|
基于 [[TradingAgents 原始架构分析|TradingAgents]] 的多角色辩论架构,在现有 OpenClaw 环境上实现 AI 驱动的交易决策系统。数据层使用 [[openbb-invest-api]](133+ 端点,K8s 部署),通过 OpenClaw 的 `sessions_spawn` + `sessions_send` 混合架构实现多 Agent 辩论。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 一、TradingAgents 原始架构分析
|
## 一、现有环境
|
||||||
|
|
||||||
### 5 大模块
|
| 组件 | 详情 |
|
||||||
|
|------|------|
|
||||||
| 模块 | 角色 | 职责 |
|
| OpenClaw | v2026.2.13,`192.168.68.108`(yiukai-ubuntu),systemd 服务 |
|
||||||
|------|------|------|
|
| openbb-invest-api | K8s 集群,`invest-api.k8s.home`(`192.168.68.240:8000`) |
|
||||||
| **Analyst Team** | 市场/社媒/新闻/基本面 4个分析师 | 并行抓数据,各写分析报告 |
|
| 已有 Agent | 5 个 ds-* agent(主 Guild)+ 1 个 invest-analyst(Stock Guild) |
|
||||||
| **Researcher Team** | Bull + Bear + 裁判 | 多空辩论 N 轮,裁判出投资方案 |
|
| 已有 Skill | `invest-api`(调用 openbb-invest-api) |
|
||||||
| **Trader** | 交易员 | 根据投资方案做 BUY/SELL/HOLD 决策 |
|
| 渠道 | Discord(6 bot)+ Telegram |
|
||||||
| **Risk Mgmt Team** | 激进/保守/中性 + 裁判 | 三方辩论风险,裁判修正决策 |
|
| 模型 | kimi-coding/k2p5(主),claude-opus-4-6-thinking(备选) |
|
||||||
| **Memory System** | BM25 相似度检索 | 记住历史情况和教训,下次决策参考 |
|
| Agent 间通信 | ds-* 系列已启用,invest-analyst 独立 |
|
||||||
|
| Skill 开发 | 在本地 openbb-invest-api 仓库,deploy 脚本推送到远程 |
|
||||||
### 执行流程(LangGraph 状态机)
|
|
||||||
|
|
||||||
```
|
|
||||||
START → [Market/Social/News/Fundamentals Analysts 并行]
|
|
||||||
→ Bull Researcher ⇄ Bear Researcher (N轮辩论)
|
|
||||||
→ Research Manager (裁判裁决)
|
|
||||||
→ Trader (交易决策)
|
|
||||||
→ Aggressive ⇄ Conservative ⇄ Neutral (风控三方辩论)
|
|
||||||
→ Risk Manager (最终裁决)
|
|
||||||
→ END (BUY/SELL/HOLD)
|
|
||||||
```
|
|
||||||
|
|
||||||
### 技术栈
|
|
||||||
|
|
||||||
- **编排**:LangGraph (StateGraph + 条件路由)
|
|
||||||
- **LLM**:支持 OpenAI/Anthropic/Google/xAI/Ollama
|
|
||||||
- **数据**:yfinance + Alpha Vantage
|
|
||||||
- **记忆**:BM25 (rank-bm25) 离线相似度检索
|
|
||||||
- **辩论**:可配置轮次 (`max_debate_rounds`, `max_risk_discuss_rounds`)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 二、openbb-invest-api 数据覆盖映射
|
## 二、架构设计
|
||||||
|
|
||||||
> **结论:openbb-invest-api 已完全覆盖 TradingAgents 所有数据需求,且更丰富。**
|
### Agent 规划(新增 4 个 agent)
|
||||||
|
|
||||||
| TradingAgents 数据需求 | openbb-invest-api 端点 | 额外优势 |
|
在现有 invest-analyst 基础上扩展,不影响 ds-* 系列:
|
||||||
|---|---|---|
|
|
||||||
| 股票行情 OHLCV | `/stock/{symbol}/historical` | ✅ |
|
|
||||||
| 技术指标 (RSI, MACD, BB, ATR) | `/stock/{symbol}/technical/*` | 14种指标 + Ichimoku, Fibonacci 等 |
|
|
||||||
| 基本面 (财报、资产负债表) | `/stock/{symbol}/financials`, `/metrics` | ✅ |
|
|
||||||
| 公司新闻 | `/stock/{symbol}/news` | ✅ |
|
|
||||||
| 宏观新闻 | `/macro/overview`, `/economy/*` | CPI, GDP, 就业, FOMC 等 |
|
|
||||||
| 内幕交易 | `/stock/{symbol}/insider-trades` | ✅ |
|
|
||||||
| 情感分析 | `/stock/{symbol}/sentiment` | 多源复合评分 (Finnhub + AV + Reddit) |
|
|
||||||
|
|
||||||
### openbb-invest-api 独有数据(TradingAgents 没有的)
|
| Agent ID | 角色 | 用途 | Discord 账户 |
|
||||||
|
|----------|------|------|-------------|
|
||||||
|
| `invest-analyst` (已有) | 编排者/裁判 | 调度分析、主持辩论、最终裁决 | invest-analyst (已有) |
|
||||||
|
| `invest-bull` (新) | 多方研究员 | 看多论证 | invest-bull (新 bot) |
|
||||||
|
| `invest-bear` (新) | 空方研究员 | 看空论证 | invest-bear (新 bot) |
|
||||||
|
| `invest-hawk` (新) | 激进风控 | 高风险高回报视角 | invest-hawk (新 bot) |
|
||||||
|
| `invest-dove` (新) | 保守风控 | 资产保护视角 | invest-dove (新 bot) |
|
||||||
|
|
||||||
- 做空数据 (`/shorts/*`):空头量、FTD、暗池
|
> 复用 invest-analyst 作为编排者(已有 invest-api skill 和 Stock Guild 绑定)。
|
||||||
- 期权数据 (`/market/options/*`):期权链、Greeks、IV
|
> 分析师做成 skill 而非独立 agent(省资源,数据采集不需要对话)。
|
||||||
- 固收数据 (`/fixed-income/*`):收益率曲线、国债、SOFR
|
> 只有需要"对话"的辩论角色才需要独立 agent。
|
||||||
- DeFi 数据 (`/defi/*`):TVL、收益池、DEX 交易量
|
|
||||||
- A 股/港股 (`/cn/*`):实时行情 + 历史数据
|
|
||||||
- 投资组合分析 (`/portfolio/*`):HRP 优化、风险平价、t-SNE 聚类
|
|
||||||
- 回测引擎 (`/backtest/*`):SMA/RSI/动量策略回测
|
|
||||||
|
|
||||||
---
|
### 通信模式
|
||||||
|
|
||||||
## 三、混合架构设计
|
|
||||||
|
|
||||||
### 核心思路
|
|
||||||
|
|
||||||
**并行的地方用 `sessions_spawn`,需要对话的地方用 `sessions_send`。**
|
|
||||||
|
|
||||||
### 架构图
|
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────────┐
|
用户: /trade-analyze NVDA
|
||||||
│ Orchestrator Agent (Judge/PM) │
|
│
|
||||||
│ Model: Claude Opus (深度推理) │
|
v
|
||||||
│ SOUL.md: 客观裁判,综合决策 │
|
invest-analyst (编排者)
|
||||||
├─────────────────────────────────────────────┤
|
│
|
||||||
│ │
|
├── 执行 4 个分析 skill(数据采集 + LLM 生成报告)
|
||||||
│ Phase 1: 数据收集 (sessions_spawn 并行) │
|
│ ├── /market-analysis NVDA → 技术分析报告
|
||||||
│ ┌───────────┐ ┌─────────────┐ │
|
│ ├── /fundamental-analysis NVDA → 基本面报告
|
||||||
│ │ Market │ │ Fundamen- │ │
|
│ ├── /sentiment-analysis NVDA → 情感分析报告
|
||||||
│ │ Analyst │ │ tals │ │
|
│ └── /macro-analysis NVDA → 宏观环境报告
|
||||||
│ │ (Sonnet) │ │ (Sonnet) │ │
|
│
|
||||||
│ └───────────┘ └─────────────┘ │
|
├── sessions_send → invest-bull(发送 4 份报告,要求出 bull case)
|
||||||
│ ┌───────────┐ ┌─────────────┐ │
|
│ invest-bull ⇄ invest-bear(ping-pong 3-5 轮辩论)
|
||||||
│ │ Sentiment │ │ News │ │
|
│ invest-analyst 收到完整辩论记录(announce)
|
||||||
│ │ Analyst │ │ Analyst │ │
|
│
|
||||||
│ │ (Haiku) │ │ (Haiku) │ │
|
├── sessions_send → invest-hawk(发送交易方案,要求评估风险)
|
||||||
│ └───────────┘ └─────────────┘ │
|
│ invest-hawk ⇄ invest-dove(ping-pong 2-3 轮辩论)
|
||||||
│ │
|
│ invest-analyst 收到风控辩论记录(announce)
|
||||||
│ Phase 2: 多空辩论 (sessions_send ping-pong) │
|
│
|
||||||
│ ┌───────────┐ 3-5 轮 ┌───────────┐ │
|
└── 综合所有报告 + 辩论记录 → 最终 BUY/SELL/HOLD 决策
|
||||||
│ │ Bull │◄────────►│ Bear │ │
|
投递到 Stock Guild Discord 频道
|
||||||
│ │ Researcher│ │ Researcher│ │
|
|
||||||
│ │ (Opus) │ │ (Opus) │ │
|
|
||||||
│ └───────────┘ └───────────┘ │
|
|
||||||
│ │
|
|
||||||
│ Phase 3: 风控辩论 (sessions_send ping-pong) │
|
|
||||||
│ ┌───────────┐ 2-3 轮 ┌───────────┐ │
|
|
||||||
│ │ Aggressive│◄────────►│ Conserva- │ │
|
|
||||||
│ │ (Sonnet) │ │ tive │ │
|
|
||||||
│ └───────────┘ │ (Sonnet) │ │
|
|
||||||
│ └───────────┘ │
|
|
||||||
│ │
|
|
||||||
│ Phase 4: Orchestrator 综合裁决 │
|
|
||||||
│ → 输出 BUY/SELL/HOLD + 完整推理 │
|
|
||||||
└─────────────────────────────────────────────┘
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 为什么不用群聊辩论
|
### 为什么不用群聊辩论
|
||||||
|
|
||||||
OpenClaw 的 Multi-Agent Group Chat [尚未实现](https://github.com/openclaw/openclaw/issues/18869)(Issue #18869,PR 未合并)。即使实现了,`sessions_send` 方案也更优:
|
OpenClaw Multi-Agent Group Chat [尚未实现](https://github.com/openclaw/openclaw/issues/18869)。即使实现了,`sessions_send` 方案也更优:
|
||||||
|
|
||||||
| 维度 | 群聊辩论 | sessions_send 辩论 |
|
| 维度 | 群聊辩论 | sessions_send 辩论 |
|
||||||
|------|---------|-------------------|
|
|------|---------|-------------------|
|
||||||
@@ -130,179 +83,224 @@ OpenClaw 的 Multi-Agent Group Chat [尚未实现](https://github.com/openclaw/o
|
|||||||
| 循环风险 | 高(可能死循环) | 无(maxPingPongTurns 硬限制) |
|
| 循环风险 | 高(可能死循环) | 无(maxPingPongTurns 硬限制) |
|
||||||
| 上下文 | 所有人共享一个上下文窗口 | 每个 agent 独立上下文,更专注 |
|
| 上下文 | 所有人共享一个上下文窗口 | 每个 agent 独立上下文,更专注 |
|
||||||
| Token 成本 | N 个 agent × 完整群聊历史 | 仅辩论双方共享必要上下文 |
|
| Token 成本 | N 个 agent × 完整群聊历史 | 仅辩论双方共享必要上下文 |
|
||||||
| 可观测性 | 难以追踪谁说了什么 | 完整的 session 记录 |
|
|
||||||
| 当前可用性 | ❌ 未实现 | ✅ 已可用 |
|
| 当前可用性 | ❌ 未实现 | ✅ 已可用 |
|
||||||
|
|
||||||
### 学术依据
|
### 学术依据
|
||||||
|
|
||||||
- [ICLR 2025 MAD 研究](https://d2jud02ci9yv69.cloudfront.net/2025-04-28-mad-159/blog/mad/):**异构 agent + 结构化拓扑**效果最好
|
- [ICLR 2025 MAD 研究](https://d2jud02ci9yv69.cloudfront.net/2025-04-28-mad-159/blog/mad/):**异构 agent + 结构化拓扑**效果最好
|
||||||
- [Adaptive HMAD](https://link.springer.com/article/10.1007/s44443-025-00353-3):异构辩论比同构辩论准确率高 4-6%,事实错误减少 30%+
|
- [Adaptive HMAD](https://link.springer.com/article/10.1007/s44443-025-00353-3):异构辩论准确率高 4-6%,事实错误减少 30%+
|
||||||
- 无结构多 agent 网络会**放大错误达 17.2 倍**
|
- 无结构多 agent 网络会放大错误达 17.2 倍
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 四、OpenClaw 配置详情
|
## 三、openbb-invest-api 数据覆盖
|
||||||
|
|
||||||
### Agent Workspace 结构
|
> openbb-invest-api 已完全覆盖 TradingAgents 所有数据需求,且更丰富。
|
||||||
|
|
||||||
|
| TradingAgents 数据需求 | openbb-invest-api 端点 | 额外优势 |
|
||||||
|
|---|---|---|
|
||||||
|
| 股票行情 OHLCV | `/stock/{s}/historical` | ✅ |
|
||||||
|
| 技术指标 (RSI, MACD, BB, ATR) | `/stock/{s}/technical/*` | 14种 + Ichimoku, Fibonacci |
|
||||||
|
| 基本面 (财报、资产负债表) | `/stock/{s}/financials`, `/metrics` | ✅ |
|
||||||
|
| 公司新闻 | `/stock/{s}/news` | ✅ |
|
||||||
|
| 宏观新闻 | `/macro/overview`, `/economy/*` | CPI, GDP, FOMC 等 |
|
||||||
|
| 内幕交易 | `/stock/{s}/insider-trades` | ✅ |
|
||||||
|
| 情感分析 | `/stock/{s}/sentiment` | 多源复合 (Finnhub+AV+Reddit) |
|
||||||
|
|
||||||
|
### 独有数据(TradingAgents 没有)
|
||||||
|
|
||||||
|
- 做空数据 `/shorts/*` — 空头量、FTD、暗池
|
||||||
|
- 期权数据 `/market/options/*` — Greeks、IV
|
||||||
|
- 固收数据 `/fixed-income/*` — 收益率曲线、SOFR
|
||||||
|
- DeFi 数据 `/defi/*` — TVL、收益池
|
||||||
|
- A股/港股 `/cn/*` — 实时行情 + 历史
|
||||||
|
- 投资组合 `/portfolio/*` — HRP、风险平价、t-SNE 聚类
|
||||||
|
- 回测 `/backtest/*` — SMA/RSI/动量策略
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、实现步骤
|
||||||
|
|
||||||
|
### Phase 0:环境准备(SSH 远程操作)
|
||||||
|
|
||||||
|
1. **升级 OpenClaw**: `npm install -g openclaw@latest` (2026.2.13 → 2026.3.13)
|
||||||
|
2. **创建 4 个 Discord bot**: invest-bull, invest-bear, invest-hawk, invest-dove
|
||||||
|
- 加入 Stock Guild (`1479926167141355560`),开启 Message Content Intent
|
||||||
|
3. **创建 4 个 agent workspace**:
|
||||||
|
```bash
|
||||||
|
openclaw agents add invest-bull --workspace ~/.openclaw/workspace-invest-bull
|
||||||
|
openclaw agents add invest-bear --workspace ~/.openclaw/workspace-invest-bear
|
||||||
|
openclaw agents add invest-hawk --workspace ~/.openclaw/workspace-invest-hawk
|
||||||
|
openclaw agents add invest-dove --workspace ~/.openclaw/workspace-invest-dove
|
||||||
```
|
```
|
||||||
~/.openclaw/
|
4. **更新 openclaw.json**: agent list、Discord accounts、bindings、agentToAgent allow、maxPingPongTurns: 5
|
||||||
├── openclaw.json # 主配置
|
|
||||||
├── workspace-orchestrator/ # 编排者
|
|
||||||
│ ├── AGENTS.md
|
|
||||||
│ ├── SOUL.md # 客观裁判人格
|
|
||||||
│ ├── MEMORY.md
|
|
||||||
│ ├── skills/
|
|
||||||
│ │ └── trade-analyze/SKILL.md # 主入口 skill
|
|
||||||
│ └── memory/
|
|
||||||
├── workspace-market-analyst/ # 技术分析师
|
|
||||||
│ ├── SOUL.md # 专注技术指标
|
|
||||||
│ └── skills/
|
|
||||||
│ └── analyze/SKILL.md # 调用 /technical/* 端点
|
|
||||||
├── workspace-fundamentals-analyst/ # 基本面分析师
|
|
||||||
│ ├── SOUL.md
|
|
||||||
│ └── skills/
|
|
||||||
│ └── analyze/SKILL.md # 调用 /metrics, /financials
|
|
||||||
├── workspace-sentiment-analyst/ # 情感分析师
|
|
||||||
│ ├── SOUL.md
|
|
||||||
│ └── skills/
|
|
||||||
│ └── analyze/SKILL.md # 调用 /sentiment, /insider-trades
|
|
||||||
├── workspace-news-analyst/ # 新闻分析师
|
|
||||||
│ ├── SOUL.md
|
|
||||||
│ └── skills/
|
|
||||||
│ └── analyze/SKILL.md # 调用 /macro/overview, /economy/*
|
|
||||||
├── workspace-bull/ # 多方研究员
|
|
||||||
│ ├── SOUL.md # 坚定看多,寻找增长机会
|
|
||||||
│ └── MEMORY.md # 历史成功案例
|
|
||||||
├── workspace-bear/ # 空方研究员
|
|
||||||
│ ├── SOUL.md # 谨慎看空,揭示风险
|
|
||||||
│ └── MEMORY.md # 历史失败教训
|
|
||||||
├── workspace-aggressive/ # 激进风控
|
|
||||||
│ └── SOUL.md # 高风险高回报
|
|
||||||
└── workspace-conservative/ # 保守风控
|
|
||||||
└── SOUL.md # 资产保护优先
|
|
||||||
```
|
|
||||||
|
|
||||||
### 核心配置(openclaw.json)
|
### Phase 1:分析师 Skills
|
||||||
|
|
||||||
|
在 openbb-invest-api 仓库的 `openclaw-skills/` 目录开发,部署到 invest-analyst workspace。
|
||||||
|
|
||||||
|
| Skill | 调用的 API 端点 | 输出 |
|
||||||
|
|-------|----------------|------|
|
||||||
|
| market-analysis | `/stock/{s}/historical`, `/technical/composite`, `/technical/ichimoku` | 技术趋势、动量、波动率 |
|
||||||
|
| fundamental-analysis | `/stock/{s}/metrics`, `/financials`, `/price-targets`, `/upgrades` | 估值、成长性、分析师共识 |
|
||||||
|
| sentiment-analysis | `/stock/{s}/sentiment`, `/insider-trades`, `/reddit/trending` | 多源情感、内幕交易动向 |
|
||||||
|
| macro-analysis | `/macro/overview`, `/fixed-income/yield-curve`, `/economy/cpi`, `/shorts/volume` | 宏观环境、利率、做空压力 |
|
||||||
|
|
||||||
|
API 基础 URL: `http://invest-api.k8s.home:8000/api/v1`
|
||||||
|
|
||||||
|
### Phase 2:辩论者 SOUL.md
|
||||||
|
|
||||||
|
| Agent | 人格 | 行为 |
|
||||||
|
|-------|------|------|
|
||||||
|
| invest-bull | 坚定的价值发现者 | 引用数据看多,承认风险但强调上行空间 |
|
||||||
|
| invest-bear | 谨慎的风险猎手 | 引用数据看空,质疑乐观假设 |
|
||||||
|
| invest-hawk | 积极进取的交易者 | 更大仓位、更紧止损、积极入场 |
|
||||||
|
| invest-dove | 稳健的资产守护者 | 分批建仓、更宽止损、保守仓位 |
|
||||||
|
|
||||||
|
### Phase 3:编排 Skill(trade-analyze)
|
||||||
|
|
||||||
|
`trade-analyze/SKILL.md` 核心编排逻辑:
|
||||||
|
1. 执行 4 个分析 skill → 4 份报告
|
||||||
|
2. `sessions_send` → invest-bull,ping-pong 到 invest-bear(3-5 轮)
|
||||||
|
3. `sessions_send` → invest-hawk,ping-pong 到 invest-dove(2-3 轮)
|
||||||
|
4. 综合裁决 → BUY/SELL/HOLD + 仓位 + 止损 + 理由
|
||||||
|
5. 存入 `memory/YYYY-MM-DD.md`
|
||||||
|
|
||||||
|
### Phase 4:记忆 + 复盘
|
||||||
|
|
||||||
|
- 每次决策存 `memory/YYYY-MM-DD.md`(决策、置信度、价格、理由、辩论要点)
|
||||||
|
- `MEMORY.md` 持久存储(持仓、胜率、教训)
|
||||||
|
- 每周 cron 复盘:对比预期 vs 实际收益,更新教训
|
||||||
|
|
||||||
|
### Phase 5:优化 + 扩展
|
||||||
|
|
||||||
|
- 加入做空/期权/DeFi 数据
|
||||||
|
- 日报集成(纳入现有 daily-invest-briefing cron)
|
||||||
|
- 回测验证 agent 决策历史表现
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、配置变更清单
|
||||||
|
|
||||||
|
### openclaw.json 变更
|
||||||
|
|
||||||
```json5
|
```json5
|
||||||
{
|
{
|
||||||
agents: {
|
agents: {
|
||||||
list: [
|
list: [
|
||||||
{ id: "orchestrator", workspace: "~/.openclaw/workspace-orchestrator" },
|
// ... 现有 6 个保持不变 ...
|
||||||
{ id: "market-analyst", workspace: "~/.openclaw/workspace-market-analyst" },
|
{ id: "invest-bull", workspace: "~/.openclaw/workspace-invest-bull" },
|
||||||
{ id: "fundamentals-analyst", workspace: "~/.openclaw/workspace-fundamentals-analyst" },
|
{ id: "invest-bear", workspace: "~/.openclaw/workspace-invest-bear" },
|
||||||
{ id: "sentiment-analyst", workspace: "~/.openclaw/workspace-sentiment-analyst" },
|
{ id: "invest-hawk", workspace: "~/.openclaw/workspace-invest-hawk" },
|
||||||
{ id: "news-analyst", workspace: "~/.openclaw/workspace-news-analyst" },
|
{ id: "invest-dove", workspace: "~/.openclaw/workspace-invest-dove" }
|
||||||
{ id: "bull", workspace: "~/.openclaw/workspace-bull" },
|
|
||||||
{ id: "bear", workspace: "~/.openclaw/workspace-bear" },
|
|
||||||
{ id: "aggressive", workspace: "~/.openclaw/workspace-aggressive" },
|
|
||||||
{ id: "conservative", workspace: "~/.openclaw/workspace-conservative" }
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
tools: {
|
tools: {
|
||||||
agentToAgent: {
|
agentToAgent: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
allow: ["orchestrator", "bull", "bear", "aggressive", "conservative"]
|
allow: [
|
||||||
|
"ds-commander", "ds-strategist", "ds-builder", "ds-creator", "ds-guardian",
|
||||||
|
"invest-analyst", "invest-bull", "invest-bear", "invest-hawk", "invest-dove"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
session: {
|
session: { agentToAgent: { maxPingPongTurns: 5 } },
|
||||||
agentToAgent: {
|
channels: {
|
||||||
maxPingPongTurns: 5 // Bull/Bear 辩论最多 5 轮
|
discord: {
|
||||||
|
accounts: {
|
||||||
|
// ... 现有 6 个保持不变 ...
|
||||||
|
"invest-bull": { token: "BOT_TOKEN_BULL" },
|
||||||
|
"invest-bear": { token: "BOT_TOKEN_BEAR" },
|
||||||
|
"invest-hawk": { token: "BOT_TOKEN_HAWK" },
|
||||||
|
"invest-dove": { token: "BOT_TOKEN_DOVE" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
bindings: [
|
||||||
|
// ... 现有保持不变 ...
|
||||||
|
{ agentId: "invest-bull", match: { channel: "discord", accountId: "invest-bull" } },
|
||||||
|
{ agentId: "invest-bear", match: { channel: "discord", accountId: "invest-bear" } },
|
||||||
|
{ agentId: "invest-hawk", match: { channel: "discord", accountId: "invest-hawk" } },
|
||||||
|
{ agentId: "invest-dove", match: { channel: "discord", accountId: "invest-dove" } }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### sessions_spawn vs sessions_send 用法
|
|
||||||
|
|
||||||
**Phase 1 — 并行数据收集(sessions_spawn):**
|
|
||||||
|
|
||||||
Orchestrator 同时 spawn 4 个分析师:
|
|
||||||
```
|
|
||||||
sessions_spawn → market-analyst (task: "分析 NVDA 技术面")
|
|
||||||
sessions_spawn → fundamentals-analyst (task: "分析 NVDA 基本面")
|
|
||||||
sessions_spawn → sentiment-analyst (task: "分析 NVDA 市场情绪")
|
|
||||||
sessions_spawn → news-analyst (task: "分析 NVDA 宏观环境")
|
|
||||||
```
|
|
||||||
|
|
||||||
每个 spawn 独立执行,完成后 announce 结果回 Orchestrator。
|
|
||||||
|
|
||||||
**Phase 2 — 多空辩论(sessions_send ping-pong):**
|
|
||||||
|
|
||||||
```
|
|
||||||
Orchestrator ──sessions_send(报告摘要)──► Bull Agent
|
|
||||||
Bull Agent 回复 bull case
|
|
||||||
──自动 ping-pong──► Bear Agent 反驳
|
|
||||||
──ping-pong──► Bull 再反驳
|
|
||||||
...(最多 5 轮,或 agent 回复 REPLY_SKIP 结束)
|
|
||||||
Orchestrator 收到完整辩论记录(announce step)
|
|
||||||
```
|
|
||||||
|
|
||||||
**Phase 3 — 风控辩论(sessions_send ping-pong):**
|
|
||||||
|
|
||||||
同理,Aggressive ⇄ Conservative 2-3 轮。
|
|
||||||
|
|
||||||
**Phase 4 — 最终裁决:**
|
|
||||||
|
|
||||||
Orchestrator 综合所有报告 + 辩论记录,输出 BUY/SELL/HOLD。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 五、实现路线图
|
## 六、文件清单
|
||||||
|
|
||||||
### Phase 1:基础设施(1-2 天)
|
### 本地开发(openbb-invest-api 仓库)
|
||||||
|
|
||||||
- [ ] 确保 openbb-invest-api 在 localhost:8000 运行
|
```
|
||||||
- [ ] 安装 OpenClaw,`openclaw onboard`
|
openclaw-skills/
|
||||||
- [ ] 创建 9 个 agent workspace
|
├── trade-analyze/SKILL.md # 主编排 skill
|
||||||
- [ ] 编写各 agent 的 SOUL.md(人格定义)
|
├── market-analysis/SKILL.md # 技术分析 skill
|
||||||
|
├── fundamental-analysis/SKILL.md # 基本面分析 skill
|
||||||
|
├── sentiment-analysis/SKILL.md # 情感分析 skill
|
||||||
|
├── macro-analysis/SKILL.md # 宏观环境分析 skill
|
||||||
|
├── souls/
|
||||||
|
│ ├── invest-bull.md # Bull SOUL.md
|
||||||
|
│ ├── invest-bear.md # Bear SOUL.md
|
||||||
|
│ ├── invest-hawk.md # Hawk SOUL.md
|
||||||
|
│ └── invest-dove.md # Dove SOUL.md
|
||||||
|
├── agents/
|
||||||
|
│ ├── invest-bull.md # Bull AGENTS.md
|
||||||
|
│ ├── invest-bear.md # Bear AGENTS.md
|
||||||
|
│ ├── invest-hawk.md # Hawk AGENTS.md
|
||||||
|
│ └── invest-dove.md # Dove AGENTS.md
|
||||||
|
└── deploy.sh # SCP 部署脚本
|
||||||
|
```
|
||||||
|
|
||||||
### Phase 2:4 个分析师 Skills(2-3 天)
|
### 部署脚本
|
||||||
|
|
||||||
- [ ] market-analyst skill:调用 `/technical/composite`, `/historical`
|
```bash
|
||||||
- [ ] fundamentals-analyst skill:调用 `/metrics`, `/financials`
|
#!/bin/bash
|
||||||
- [ ] sentiment-analyst skill:调用 `/sentiment`, `/insider-trades`, `/reddit/trending`
|
REMOTE="yiukai@192.168.68.108"
|
||||||
- [ ] news-analyst skill:调用 `/macro/overview`, `/economy/*`, `/fixed-income/yield-curve`
|
CLAW="~/.openclaw"
|
||||||
- [ ] 每个 skill 用 `exec` 调用 curl 或封装 Python 脚本
|
|
||||||
|
|
||||||
### Phase 3:辩论 + 风控(1-2 天)
|
# Skills → invest-analyst workspace
|
||||||
|
for s in trade-analyze market-analysis fundamental-analysis sentiment-analysis macro-analysis; do
|
||||||
|
scp -r "openclaw-skills/$s" "$REMOTE:$CLAW/workspace-invest-analyst/skills/"
|
||||||
|
done
|
||||||
|
|
||||||
- [ ] 配置 `agentToAgent.enabled: true`
|
# SOUL.md + AGENTS.md → 各辩论 agent workspace
|
||||||
- [ ] 测试 Bull ⇄ Bear `sessions_send` ping-pong
|
for a in invest-bull invest-bear invest-hawk invest-dove; do
|
||||||
- [ ] 测试 Aggressive ⇄ Conservative ping-pong
|
scp "openclaw-skills/souls/$a.md" "$REMOTE:$CLAW/workspace-$a/SOUL.md"
|
||||||
- [ ] Orchestrator 的 trade-analyze skill 编排完整流程
|
scp "openclaw-skills/agents/$a.md" "$REMOTE:$CLAW/workspace-$a/AGENTS.md"
|
||||||
|
done
|
||||||
|
|
||||||
### Phase 4:记忆 + 复盘(1 天)
|
ssh $REMOTE "openclaw gateway restart"
|
||||||
|
```
|
||||||
- [ ] 利用 OpenClaw 内建 memory 系统
|
|
||||||
- [ ] 每次决策存入 `memory/YYYY-MM-DD.md`
|
|
||||||
- [ ] 用 `memory_search` 在辩论时检索相似历史
|
|
||||||
- [ ] 实现 reflect 机制:对比实际收益,更新记忆
|
|
||||||
|
|
||||||
### Phase 5:通道对接 + 优化(1 天)
|
|
||||||
|
|
||||||
- [ ] 绑定 Telegram/WhatsApp,直接聊天触发分析
|
|
||||||
- [ ] 优化 prompt(减少 token 消耗)
|
|
||||||
- [ ] 添加 openbb-invest-api 独有数据源(做空、期权、DeFi)
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 六、与 TradingAgents 的差异对比
|
## 七、验证方案
|
||||||
|
|
||||||
|
1. **网络连通**: SSH → `curl http://invest-api.k8s.home:8000/health`
|
||||||
|
2. **单个 Skill**: Discord `/market-analysis NVDA` → 技术分析报告
|
||||||
|
3. **辩论 Ping-Pong**: `sessions_send` invest-bull → ping-pong invest-bear
|
||||||
|
4. **完整流程**: `/trade-analyze AAPL` → 4 报告 + 辩论 + 裁决
|
||||||
|
5. **回归检查**: invest-analyst 日报 cron + ds-* agents 正常
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、与 TradingAgents 的差异
|
||||||
|
|
||||||
| 维度 | TradingAgents (LangGraph) | OpenClaw 混合架构 |
|
| 维度 | TradingAgents (LangGraph) | OpenClaw 混合架构 |
|
||||||
|------|---|---|
|
|------|---|---|
|
||||||
| 编排 | 显式状态机,条件路由 | sessions_spawn + sessions_send |
|
| 编排 | 显式状态机,条件路由 | sessions_spawn + sessions_send |
|
||||||
| 并行 | 4 分析师真并行 | sessions_spawn 并行 |
|
| 并行 | 4 分析师真并行 | Skill 串行(分析师不需要并行,数据采集很快) |
|
||||||
| 辩论 | 多轮循环,独立 LLM 调用 | ping-pong 机制,最多 5 轮 |
|
| 辩论 | 多轮循环,独立 LLM 调用 | ping-pong 机制,最多 5 轮 |
|
||||||
| 记忆 | 自建 BM25 | OpenClaw 内建(BM25 + 向量 + 时间衰减) |
|
| 记忆 | 自建 BM25 | OpenClaw 内建(BM25 + 向量 + 时间衰减) |
|
||||||
| 数据 | yfinance 直调 | openbb-invest-api(133+ 端点) |
|
| 数据 | yfinance 直调 | openbb-invest-api(133+ 端点) |
|
||||||
| 交互 | 纯 CLI/API | WhatsApp/Telegram/Discord 直接对话 |
|
| 交互 | 纯 CLI/API | Discord/Telegram 直接对话 |
|
||||||
| 部署 | 需要自托管 | OpenClaw 本地运行,开箱即用 |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
- [[TradingAgents 原始架构分析]]
|
||||||
- [[openbb-invest-api]]
|
- [[openbb-invest-api]]
|
||||||
- [[OpenClaw]]
|
- [[OpenClaw 部署配置分析]]
|
||||||
|
- [[OpenClaw Stock Agent 配置详情]]
|
||||||
|
|||||||
Reference in New Issue
Block a user