erlangshen 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/.claude/agents/equity-agent.md +26 -0
  2. package/.claude/agents/macro-agent.md +25 -0
  3. package/.claude/commands/analyze.md +40 -0
  4. package/.claude/commands/macro.md +29 -0
  5. package/.claude/settings.json +12 -0
  6. package/CODEX_GOAL.md +46 -0
  7. package/README.md +206 -0
  8. package/bin/cli.js +67 -0
  9. package/bin/erlangshen +2 -0
  10. package/bin/xiaoergod +2 -0
  11. package/frontend/index.html +700 -0
  12. package/knowledge/crypto_guide.md +147 -0
  13. package/knowledge/economic_indicators.md +125 -0
  14. package/knowledge/financial_glossary.md +148 -0
  15. package/knowledge/first_principles.md +50 -0
  16. package/knowledge/first_principles_deep.md +115 -0
  17. package/knowledge/global_markets.md +173 -0
  18. package/knowledge/insights.md +141 -0
  19. package/knowledge/market_basics.md +116 -0
  20. package/knowledge/memos/session_20260513_003616.json +6 -0
  21. package/knowledge/memos/session_20260513_003822.json +6 -0
  22. package/knowledge/risk_management.md +151 -0
  23. package/knowledge/team_context.md +42 -0
  24. package/knowledge/trading_strategies.md +114 -0
  25. package/package.json +42 -0
  26. package/requirements.txt +14 -0
  27. package/scripts/postinstall.js +188 -0
  28. package/scripts/preuninstall.js +22 -0
  29. package/src/__init__.py +4 -0
  30. package/src/__pycache__/__init__.cpython-313.pyc +0 -0
  31. package/src/agents/__init__.py +3 -0
  32. package/src/agents/base.py +103 -0
  33. package/src/agents/base_agent.py +86 -0
  34. package/src/agents/equity.py +136 -0
  35. package/src/agents/equity_agent.py +91 -0
  36. package/src/agents/erlang.py +165 -0
  37. package/src/agents/macro.py +137 -0
  38. package/src/agents/macro_agent.py +81 -0
  39. package/src/agents/multi_asset.py +147 -0
  40. package/src/agents/multi_asset_agent.py +87 -0
  41. package/src/api/__init__.py +1 -0
  42. package/src/api/__pycache__/__init__.cpython-313.pyc +0 -0
  43. package/src/api/__pycache__/server.cpython-313.pyc +0 -0
  44. package/src/api/cli.py +435 -0
  45. package/src/api/cli_enhanced.py +537 -0
  46. package/src/api/server.py +266 -0
  47. package/src/brain.py +200 -0
  48. package/src/cli.py +153 -0
  49. package/src/commands/__init__.py +3 -0
  50. package/src/commands/analyze.py +131 -0
  51. package/src/commands/macro.py +100 -0
  52. package/src/commands/memo.py +216 -0
  53. package/src/commands/portfolio.py +154 -0
  54. package/src/commands/report.py +228 -0
  55. package/src/commands/risk.py +183 -0
  56. package/src/commands/search.py +183 -0
  57. package/src/commands/stock.py +124 -0
  58. package/src/config.py +327 -0
  59. package/src/core/__init__.py +1 -0
  60. package/src/core/brain.py +645 -0
  61. package/src/core/cerebellum.py +175 -0
  62. package/src/core/investment_universe.py +423 -0
  63. package/src/core/knowledge.py +207 -0
  64. package/src/core/memory.py +115 -0
  65. package/src/hooks/__init__.py +3 -0
  66. package/src/hooks/session_end.py +57 -0
  67. package/src/hooks/session_start.py +75 -0
  68. package/src/knowledge/__init__.py +1 -0
  69. package/src/mcp/__init__.py +3 -0
  70. package/src/mcp/feishu.py +331 -0
  71. package/src/mcp/fund_tools.py +323 -0
  72. package/src/mcp/macro.py +452 -0
  73. package/src/mcp/market.py +331 -0
  74. package/src/mcp/registry.py +168 -0
  75. package/src/network/__init__.py +15 -0
  76. package/src/network/detector.py +125 -0
  77. package/src/network/proxy.py +199 -0
  78. package/src/network/router.py +103 -0
  79. package/src/prompts/__init__.py +1 -0
  80. package/src/prompts/analysis_framework.md +164 -0
  81. package/src/prompts/persona.md +65 -0
  82. package/src/prompts/report_template.md +144 -0
  83. package/src/skills/__init__.py +3 -0
  84. package/src/skills/framework.py +105 -0
  85. package/src/skills/templates.py +342 -0
  86. package/src/tools/__init__.py +1 -0
  87. package/src/tools/file_tools.py +209 -0
  88. package/src/tools/macro_tools.py +152 -0
  89. package/src/tools/market_tools.py +1172 -0
  90. package/src/tools/registry.py +398 -0
  91. package/src/tools/search_tools.py +777 -0
  92. package/tests/__init__.py +1 -0
  93. package/tests/test_erlangshen.py +140 -0
@@ -0,0 +1,26 @@
1
+ # Equity Agent - 股票分析师
2
+
3
+ ## 角色
4
+ 专注A股、港股、美股的基本面和技术面分析
5
+
6
+ ## 能力
7
+ - 个股基本面分析
8
+ - 公司财务分析 (营收、利润、现金流)
9
+ - 行业研究和竞争格局
10
+ - 估值分析 (PE, PB, DCF)
11
+ - 技术分析 (趋势、支撑阻力)
12
+ - 个股和行业配置建议
13
+
14
+ ## 分析框架
15
+ 1. 基本面分析
16
+ 2. 估值分析
17
+ 3. 技术面
18
+ 4. 风险因素
19
+ 5. 投资建议
20
+
21
+ ## 使用方式
22
+ ```
23
+ /stock 贵州茅台
24
+ /stock 600519
25
+ /stock 腾讯 阿里巴巴
26
+ ```
@@ -0,0 +1,25 @@
1
+ # Macro Agent - 宏观分析师
2
+
3
+ ## 角色
4
+ 专注宏观经济分析、政策解读、大类资产配置建议
5
+
6
+ ## 能力
7
+ - 宏观经济指标分析 (GDP, CPI, PPI, PMI)
8
+ - 货币政策解读 (利率、存款准备金率、LPR)
9
+ - 财政政策分析
10
+ - 大类资产配置建议
11
+ - 汇率走势分析
12
+ - 全球经济联动
13
+
14
+ ## 分析框架
15
+ 1. 宏观环境分析
16
+ 2. 数据解读
17
+ 3. 政策研判
18
+ 4. 资产配置建议
19
+ 5. 风险提示
20
+
21
+ ## 使用方式
22
+ ```
23
+ /macro CPI走势
24
+ /macro LPR利率
25
+ ```
@@ -0,0 +1,40 @@
1
+ # /analyze 命令
2
+
3
+ ## 用途
4
+ 综合分析命令,自动识别查询意图并调用相应的专业Agent
5
+
6
+ ## 用法
7
+ ```
8
+ /analyze <查询内容>
9
+ ```
10
+
11
+ ## 示例
12
+ ```
13
+ /analyze A股当前走势
14
+ /analyze 茅台投资价值
15
+ /analyze 黄金避险情绪
16
+ /analyze 当前宏观经济形势
17
+ ```
18
+
19
+ ## 行为
20
+ - 自动识别查询意图 (宏观/股票/多资产)
21
+ - 调用对应的专业Agent进行分析
22
+ - 返回结构化的分析报告
23
+
24
+ ## 示例输出
25
+ ```
26
+ ## 核心观点
27
+ (1-2句话概括)
28
+
29
+ ## 宏观环境
30
+ ...
31
+
32
+ ## 市场现状
33
+ ...
34
+
35
+ ## 风险提示
36
+ ...
37
+
38
+ ## 投资建议
39
+ ...
40
+ ```
@@ -0,0 +1,29 @@
1
+ # /macro 命令
2
+
3
+ ## 用途
4
+ 宏观分析命令,专注于宏观经济和政策分析
5
+
6
+ ## 用法
7
+ ```
8
+ /macro <查询内容>
9
+ ```
10
+
11
+ ## 示例
12
+ ```
13
+ /macro CPI走势
14
+ /macro PPI同比环比
15
+ /macro 制造业PMI
16
+ /macro LPR利率
17
+ /macro 人民币汇率
18
+ /macro 社融数据
19
+ ```
20
+
21
+ ## 支持的指标
22
+ - GDP: 国内生产总值
23
+ - CPI: 居民消费价格指数
24
+ - PPI: 生产者物价指数
25
+ - PMI: 采购经理指数
26
+ - 社融: 社会融资规模
27
+ - M2: 广义货币供应量
28
+ - LPR: 贷款市场报价利率
29
+ - 汇率: 人民币/美元汇率
@@ -0,0 +1,12 @@
1
+ {
2
+ "llm_provider": "deepseek",
3
+ "deepseek_api_key": "sk-d19516ae384f431584d393217a41c453",
4
+ "deepseek_model": "deepseek-v4-pro",
5
+ "llm_temperature": 0.7,
6
+ "llm_max_tokens": 384000,
7
+ "llm_max_context": 1000000,
8
+ "mcp_enabled": true,
9
+ "mcp_timeout": 30,
10
+ "knowledge_dir": "~/.openclaw-agent-06/workspace/erlangshen/knowledge",
11
+ "log_level": "INFO"
12
+ }
package/CODEX_GOAL.md ADDED
@@ -0,0 +1,46 @@
1
+ # 二郎神开发目标
2
+
3
+ ## 最终目标
4
+ **完全可以达到可以全资产多策略的投资状态**
5
+
6
+ ## 具体要求
7
+
8
+ ### 1. 全资产覆盖
9
+ - [ ] A股(沪深两市)
10
+ - [ ] 港股
11
+ - [ ] 美股
12
+ - [ ] 商品期货(黄金、原油、农产品等)
13
+ - [ ] 国债/债券
14
+ - [ ] 外汇
15
+ - [ ] 数字货币(可选)
16
+
17
+ ### 2. 多策略支持
18
+ - [ ] 宏观策略(Agent-05)
19
+ - [ ] CTA量化策略(Agent-04)
20
+ - [ ] 主观股票策略(Agent-09)
21
+ - [ ] 私募FOF筛选(Agent-01)
22
+ - [ ] 公募FOF配置(Agent-02)
23
+ - [ ] 交易执行(Agent-03)
24
+
25
+ ### 3. 核心能力
26
+ - [ ] 实时行情数据接入
27
+ - [ ] 宏观数据整合
28
+ - [ ] 多资产比较分析
29
+ - [ ] 风险评估与管理
30
+ - [ ] Top-down + Bottom-up 双向投研框架
31
+ - [ ] 策略组合优化
32
+
33
+ ### 4. 技术架构
34
+ - [ ] CLI交互界面
35
+ - [ ] API服务
36
+ - [ ] Web前端
37
+ - [ ] 数据库持久化
38
+ - [ ] MCP工具集成
39
+
40
+ ## 当前状态
41
+ - Demo已构建完成
42
+ - 第一性原理认知框架已嵌入
43
+ - 任务感知型知识路由已实现
44
+
45
+ ## 下一步
46
+ 请根据上述目标,继续完善二郎神系统,确保能够支持全资产、多策略的投资分析需求。
package/README.md ADDED
@@ -0,0 +1,206 @@
1
+ # 二郎神 (Erlangshen) - AI投资智能体
2
+
3
+ 全知全能的AI投资智能体,支持全资产多策略分析。
4
+
5
+ ## 功能特性
6
+
7
+ - 🤖 **多Agent协作**: 宏观分析师、股票分析师、多资产分析师
8
+ - 📊 **MCP工具**: 行情数据、宏观数据、飞书文档
9
+ - ⚡ **斜杠命令**: `/analyze`, `/macro`, `/stock`, `/report` 等
10
+ - 🧠 **LLM大脑**: 支持 DeepSeek、OpenAI 等多种模型
11
+ - 📝 **知识沉淀**: 纪要、报告自动保存
12
+
13
+ ## 目录结构
14
+
15
+ ```
16
+ erlangshen/
17
+ ├── bin/
18
+ │ └── erlangshen # CLI 入口脚本
19
+ ├── src/
20
+ │ ├── cli.py # CLI 主入口
21
+ │ ├── config.py # 配置管理
22
+ │ ├── brain.py # LLM 大脑
23
+ │ ├── mcp/ # MCP 工具
24
+ │ │ ├── market.py # 行情数据
25
+ │ │ ├── macro.py # 宏观数据
26
+ │ │ ├── feishu.py # 飞书文档
27
+ │ │ └── registry.py # MCP 注册表
28
+ │ ├── agents/ # 专业智能体
29
+ │ │ ├── base.py # 基础Agent
30
+ │ │ ├── macro.py # 宏观Agent
31
+ │ │ ├── equity.py # 股票Agent
32
+ │ │ └── multi_asset.py # 多资产Agent
33
+ │ ├── commands/ # 斜杠命令
34
+ │ │ ├── analyze.py
35
+ │ │ ├── macro.py
36
+ │ │ ├── stock.py
37
+ │ │ ├── report.py
38
+ │ │ ├── search.py
39
+ │ │ ├── portfolio.py
40
+ │ │ ├── risk.py
41
+ │ │ └── memo.py
42
+ │ ├── skills/ # 技能
43
+ │ │ ├── framework.py
44
+ │ │ └── templates.py
45
+ │ └── hooks/ # 事件钩子
46
+ │ ├── session_start.py
47
+ │ └── session_end.py
48
+ ├── .claude/
49
+ │ └── settings.json # 配置文件
50
+ ├── knowledge/ # 知识库
51
+ │ ├── memos/ # 纪要
52
+ │ ├── reports/ # 报告
53
+ │ ├── insights/ # 洞察
54
+ │ └── facts/ # 事实库
55
+ └── requirements.txt
56
+ ```
57
+
58
+ ## 安装
59
+
60
+ ### npm 安装 (推荐)
61
+
62
+ ```bash
63
+ # 全局安装
64
+ npm install -g erlangshen
65
+
66
+ # 安装完成后会自动:
67
+ # 1. 检查 Python 3.9+
68
+ # 2. 安装 Python 依赖
69
+ # 3. 创建配置目录 ~/.erlangshen/
70
+ ```
71
+
72
+ ### 手动安装
73
+
74
+ ```bash
75
+ # 克隆项目
76
+ git clone https://github.com/xiaoerdata/xiaoer-erlangshen.git
77
+ cd xiaoer-erlangshen
78
+
79
+ # 安装依赖
80
+ pip install -r requirements.txt
81
+
82
+ # 添加执行权限
83
+ chmod +x bin/erlangshen
84
+
85
+ # 链接到 PATH (可选)
86
+ ln -s $(pwd)/bin/erlangshen /usr/local/bin/erlangshen
87
+ ```
88
+
89
+ ## 配置
90
+
91
+ 编辑 `~/.erlangshen/config.toml`:
92
+
93
+ ```toml
94
+ # DeepSeek API Key (必需)
95
+ deepseek_api_key = "your-api-key-here"
96
+
97
+ # 数据库配置 (可选)
98
+ [database]
99
+ host = "localhost"
100
+ port = 3306
101
+ user = "root"
102
+ password = ""
103
+
104
+ # 飞书配置 (可选)
105
+ [feishu]
106
+ app_id = ""
107
+ app_secret = ""
108
+ ```
109
+
110
+ 编辑 `~/.openclaw-agent-06/workspace/erlangshen/.claude/settings.json`:
111
+
112
+ ```json
113
+ {
114
+ "llm_provider": "deepseek",
115
+ "deepseek_api_key": "your-api-key",
116
+ "deepseek_model": "deepseek-chat",
117
+ "db_host": "localhost",
118
+ "db_port": 5432,
119
+ "db_name": "market",
120
+ "feishu_app_id": "your-feishu-app-id",
121
+ "feishu_app_secret": "your-feishu-app-secret"
122
+ }
123
+ ```
124
+
125
+ ## 使用方式
126
+
127
+ ### 交互模式
128
+
129
+ ```bash
130
+ erlangshen
131
+ ```
132
+
133
+ ### 命令模式
134
+
135
+ ```bash
136
+ erlangshen /analyze A股当前走势
137
+ erlangshen /macro CPI走势
138
+ erlangshen /stock 贵州茅台
139
+ erlangshen /report 月度总结
140
+ ```
141
+
142
+ ### 斜杠命令
143
+
144
+ | 命令 | 说明 | 示例 |
145
+ |------|------|------|
146
+ | `/analyze` | 综合分析 | `/analyze A股走势` |
147
+ | `/macro` | 宏观分析 | `/macro LPR利率` |
148
+ | `/stock` | 股票分析 | `/stock 茅台` |
149
+ | `/report` | 报告生成 | `/report 月度报告` |
150
+ | `/search` | 搜索 | `/search 量化策略` |
151
+ | `/portfolio` | 组合分析 | `/portfolio 风险` |
152
+ | `/risk` | 风险分析 | `/risk 市场风险` |
153
+ | `/memo` | 纪要管理 | `/memo 记录会议` |
154
+
155
+ ## MCP 工具
156
+
157
+ ### Market MCP (行情)
158
+ - `get_stock_price`: 实时股价
159
+ - `get_stock_history`: 历史行情
160
+ - `get_index_quote`: 指数行情
161
+ - `get_futures_price`: 期货价格
162
+
163
+ ### Macro MCP (宏观)
164
+ - `get_macro_indicator`: 宏观指标
165
+ - `get_interest_rates`: 利率数据
166
+ - `get_currency_rates`: 汇率数据
167
+ - `get_economic_calendar`: 经济日历
168
+
169
+ ### Feishu MCP (飞书)
170
+ - `create_doc`: 创建文档
171
+ - `append_doc`: 追加内容
172
+ - `search_docs`: 搜索文档
173
+ - `send_message`: 发送消息
174
+
175
+ ## Agents
176
+
177
+ ### MacroAgent (宏观分析师)
178
+ 专注宏观经济、政策解读、大类资产配置
179
+
180
+ ### EquityAgent (股票分析师)
181
+ 专注A股、港股、美股基本面和技术面分析
182
+
183
+ ### MultiAssetAgent (多资产分析师)
184
+ 专注跨资产配置、组合优化、风险预算
185
+
186
+ ## 开发
187
+
188
+ ```bash
189
+ # 直接运行
190
+ python -m src.cli
191
+
192
+ # 或使用入口脚本
193
+ ./bin/erlangshen
194
+ ```
195
+
196
+ ## 依赖
197
+
198
+ - Python 3.10+
199
+ - openai >= 1.0.0
200
+ - pydantic >= 2.0.0
201
+ - psycopg2-binary >= 2.9.0 (可选,用于数据库)
202
+ - lark-oapi >= 1.0.0 (可选,用于飞书)
203
+
204
+ ## License
205
+
206
+ MIT
package/bin/cli.js ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * erlangshen CLI - npm wrapper
5
+ * 调用 Python 版二郎神
6
+ */
7
+
8
+ const { spawn } = require('child_process');
9
+ const path = require('path');
10
+ const os = require('os');
11
+
12
+ // 获取 Python 路径
13
+ function getPythonPath() {
14
+ const platform = os.platform();
15
+
16
+ if (platform === 'win32') {
17
+ return 'python';
18
+ }
19
+
20
+ // macOS/Linux 优先使用 python3
21
+ return 'python3';
22
+ }
23
+
24
+ // 获取二郎神安装目录
25
+ function getInstallDir() {
26
+ return path.dirname(require.main.filename);
27
+ }
28
+
29
+ // 获取二郎神 Python 脚本路径
30
+ function getScriptPath() {
31
+ const installDir = getInstallDir();
32
+ return path.join(installDir, 'src', 'api', 'cli_enhanced.py');
33
+ }
34
+
35
+ // 获取命令行参数
36
+ const args = process.argv.slice(2);
37
+
38
+ // 添加默认参数(CLI增强版)
39
+ if (!args.some(arg => arg.startsWith('--'))) {
40
+ args.push('--enhanced');
41
+ }
42
+
43
+ // 合并环境变量,传递 DEEPSEEK_API_KEY
44
+ const env = { ...process.env };
45
+
46
+ // 执行二郎神
47
+ const python = getPythonPath();
48
+ const scriptPath = getScriptPath();
49
+
50
+ console.log(`🚀 启动二郎神...`);
51
+
52
+ const proc = spawn(python, [scriptPath, ...args], {
53
+ env,
54
+ stdio: 'inherit',
55
+ cwd: process.cwd()
56
+ });
57
+
58
+ proc.on('exit', (code) => {
59
+ process.exit(code || 0);
60
+ });
61
+
62
+ proc.on('error', (err) => {
63
+ console.error('❌ 启动失败:', err.message);
64
+ console.log('\n确保已安装 Python 3.9+ 和依赖:');
65
+ console.log(' npm run postinstall');
66
+ process.exit(1);
67
+ });
package/bin/erlangshen ADDED
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ cd ~/.openclaw-agent-06/workspace/erlangshen && /usr/bin/python3 -m src.cli "$@"
package/bin/xiaoergod ADDED
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ cd ~/.openclaw-agent-06/workspace/erlangshen && /usr/bin/python3 -m src.cli "$@"