Compare commits
2 Commits
e61baf7e4e
...
ec6373a577
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec6373a577 | ||
|
|
cdba2497a7 |
308
2 - Projects/Trading-Agents/Trading Agents 混合架构方案.md
Normal file
308
2 - Projects/Trading-Agents/Trading Agents 混合架构方案.md
Normal file
@@ -0,0 +1,308 @@
|
|||||||
|
---
|
||||||
|
created: "2026-03-21"
|
||||||
|
type: project
|
||||||
|
status: active
|
||||||
|
deadline: ""
|
||||||
|
tags: [trading, multi-agent, openclaw, openbb, architecture]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Trading Agents 混合架构方案
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
基于 [[openbb-invest-api]] 的数据层,在 OpenClaw 上实现类似 [TradingAgents](https://github.com/TauricResearch/TradingAgents) 的多角色交易决策系统。核心是**辩论驱动的投资决策**。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、TradingAgents 原始架构分析
|
||||||
|
|
||||||
|
### 5 大模块
|
||||||
|
|
||||||
|
| 模块 | 角色 | 职责 |
|
||||||
|
|------|------|------|
|
||||||
|
| **Analyst Team** | 市场/社媒/新闻/基本面 4个分析师 | 并行抓数据,各写分析报告 |
|
||||||
|
| **Researcher Team** | Bull + Bear + 裁判 | 多空辩论 N 轮,裁判出投资方案 |
|
||||||
|
| **Trader** | 交易员 | 根据投资方案做 BUY/SELL/HOLD 决策 |
|
||||||
|
| **Risk Mgmt Team** | 激进/保守/中性 + 裁判 | 三方辩论风险,裁判修正决策 |
|
||||||
|
| **Memory System** | BM25 相似度检索 | 记住历史情况和教训,下次决策参考 |
|
||||||
|
|
||||||
|
### 执行流程(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 所有数据需求,且更丰富。**
|
||||||
|
|
||||||
|
| TradingAgents 数据需求 | openbb-invest-api 端点 | 额外优势 |
|
||||||
|
|---|---|---|
|
||||||
|
| 股票行情 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 没有的)
|
||||||
|
|
||||||
|
- 做空数据 (`/shorts/*`):空头量、FTD、暗池
|
||||||
|
- 期权数据 (`/market/options/*`):期权链、Greeks、IV
|
||||||
|
- 固收数据 (`/fixed-income/*`):收益率曲线、国债、SOFR
|
||||||
|
- DeFi 数据 (`/defi/*`):TVL、收益池、DEX 交易量
|
||||||
|
- A 股/港股 (`/cn/*`):实时行情 + 历史数据
|
||||||
|
- 投资组合分析 (`/portfolio/*`):HRP 优化、风险平价、t-SNE 聚类
|
||||||
|
- 回测引擎 (`/backtest/*`):SMA/RSI/动量策略回测
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、混合架构设计
|
||||||
|
|
||||||
|
### 核心思路
|
||||||
|
|
||||||
|
**并行的地方用 `sessions_spawn`,需要对话的地方用 `sessions_send`。**
|
||||||
|
|
||||||
|
### 架构图
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────┐
|
||||||
|
│ Orchestrator Agent (Judge/PM) │
|
||||||
|
│ Model: Claude Opus (深度推理) │
|
||||||
|
│ SOUL.md: 客观裁判,综合决策 │
|
||||||
|
├─────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ Phase 1: 数据收集 (sessions_spawn 并行) │
|
||||||
|
│ ┌───────────┐ ┌─────────────┐ │
|
||||||
|
│ │ Market │ │ Fundamen- │ │
|
||||||
|
│ │ Analyst │ │ tals │ │
|
||||||
|
│ │ (Sonnet) │ │ (Sonnet) │ │
|
||||||
|
│ └───────────┘ └─────────────┘ │
|
||||||
|
│ ┌───────────┐ ┌─────────────┐ │
|
||||||
|
│ │ Sentiment │ │ News │ │
|
||||||
|
│ │ Analyst │ │ Analyst │ │
|
||||||
|
│ │ (Haiku) │ │ (Haiku) │ │
|
||||||
|
│ └───────────┘ └─────────────┘ │
|
||||||
|
│ │
|
||||||
|
│ Phase 2: 多空辩论 (sessions_send ping-pong) │
|
||||||
|
│ ┌───────────┐ 3-5 轮 ┌───────────┐ │
|
||||||
|
│ │ Bull │◄────────►│ Bear │ │
|
||||||
|
│ │ 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` 方案也更优:
|
||||||
|
|
||||||
|
| 维度 | 群聊辩论 | sessions_send 辩论 |
|
||||||
|
|------|---------|-------------------|
|
||||||
|
| 流程控制 | 混乱,谁先说不确定 | 结构化,轮次可控 |
|
||||||
|
| 循环风险 | 高(可能死循环) | 无(maxPingPongTurns 硬限制) |
|
||||||
|
| 上下文 | 所有人共享一个上下文窗口 | 每个 agent 独立上下文,更专注 |
|
||||||
|
| Token 成本 | N 个 agent × 完整群聊历史 | 仅辩论双方共享必要上下文 |
|
||||||
|
| 可观测性 | 难以追踪谁说了什么 | 完整的 session 记录 |
|
||||||
|
| 当前可用性 | ❌ 未实现 | ✅ 已可用 |
|
||||||
|
|
||||||
|
### 学术依据
|
||||||
|
|
||||||
|
- [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%+
|
||||||
|
- 无结构多 agent 网络会**放大错误达 17.2 倍**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、OpenClaw 配置详情
|
||||||
|
|
||||||
|
### Agent Workspace 结构
|
||||||
|
|
||||||
|
```
|
||||||
|
~/.openclaw/
|
||||||
|
├── 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)
|
||||||
|
|
||||||
|
```json5
|
||||||
|
{
|
||||||
|
agents: {
|
||||||
|
list: [
|
||||||
|
{ id: "orchestrator", workspace: "~/.openclaw/workspace-orchestrator" },
|
||||||
|
{ id: "market-analyst", workspace: "~/.openclaw/workspace-market-analyst" },
|
||||||
|
{ id: "fundamentals-analyst", workspace: "~/.openclaw/workspace-fundamentals-analyst" },
|
||||||
|
{ id: "sentiment-analyst", workspace: "~/.openclaw/workspace-sentiment-analyst" },
|
||||||
|
{ id: "news-analyst", workspace: "~/.openclaw/workspace-news-analyst" },
|
||||||
|
{ 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: {
|
||||||
|
agentToAgent: {
|
||||||
|
enabled: true,
|
||||||
|
allow: ["orchestrator", "bull", "bear", "aggressive", "conservative"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
session: {
|
||||||
|
agentToAgent: {
|
||||||
|
maxPingPongTurns: 5 // Bull/Bear 辩论最多 5 轮
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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 在 localhost:8000 运行
|
||||||
|
- [ ] 安装 OpenClaw,`openclaw onboard`
|
||||||
|
- [ ] 创建 9 个 agent workspace
|
||||||
|
- [ ] 编写各 agent 的 SOUL.md(人格定义)
|
||||||
|
|
||||||
|
### Phase 2:4 个分析师 Skills(2-3 天)
|
||||||
|
|
||||||
|
- [ ] market-analyst skill:调用 `/technical/composite`, `/historical`
|
||||||
|
- [ ] fundamentals-analyst skill:调用 `/metrics`, `/financials`
|
||||||
|
- [ ] sentiment-analyst skill:调用 `/sentiment`, `/insider-trades`, `/reddit/trending`
|
||||||
|
- [ ] news-analyst skill:调用 `/macro/overview`, `/economy/*`, `/fixed-income/yield-curve`
|
||||||
|
- [ ] 每个 skill 用 `exec` 调用 curl 或封装 Python 脚本
|
||||||
|
|
||||||
|
### Phase 3:辩论 + 风控(1-2 天)
|
||||||
|
|
||||||
|
- [ ] 配置 `agentToAgent.enabled: true`
|
||||||
|
- [ ] 测试 Bull ⇄ Bear `sessions_send` ping-pong
|
||||||
|
- [ ] 测试 Aggressive ⇄ Conservative ping-pong
|
||||||
|
- [ ] Orchestrator 的 trade-analyze skill 编排完整流程
|
||||||
|
|
||||||
|
### Phase 4:记忆 + 复盘(1 天)
|
||||||
|
|
||||||
|
- [ ] 利用 OpenClaw 内建 memory 系统
|
||||||
|
- [ ] 每次决策存入 `memory/YYYY-MM-DD.md`
|
||||||
|
- [ ] 用 `memory_search` 在辩论时检索相似历史
|
||||||
|
- [ ] 实现 reflect 机制:对比实际收益,更新记忆
|
||||||
|
|
||||||
|
### Phase 5:通道对接 + 优化(1 天)
|
||||||
|
|
||||||
|
- [ ] 绑定 Telegram/WhatsApp,直接聊天触发分析
|
||||||
|
- [ ] 优化 prompt(减少 token 消耗)
|
||||||
|
- [ ] 添加 openbb-invest-api 独有数据源(做空、期权、DeFi)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、与 TradingAgents 的差异对比
|
||||||
|
|
||||||
|
| 维度 | TradingAgents (LangGraph) | OpenClaw 混合架构 |
|
||||||
|
|------|---|---|
|
||||||
|
| 编排 | 显式状态机,条件路由 | sessions_spawn + sessions_send |
|
||||||
|
| 并行 | 4 分析师真并行 | sessions_spawn 并行 |
|
||||||
|
| 辩论 | 多轮循环,独立 LLM 调用 | ping-pong 机制,最多 5 轮 |
|
||||||
|
| 记忆 | 自建 BM25 | OpenClaw 内建(BM25 + 向量 + 时间衰减) |
|
||||||
|
| 数据 | yfinance 直调 | openbb-invest-api(133+ 端点) |
|
||||||
|
| 交互 | 纯 CLI/API | WhatsApp/Telegram/Discord 直接对话 |
|
||||||
|
| 部署 | 需要自托管 | OpenClaw 本地运行,开箱即用 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Related
|
||||||
|
|
||||||
|
- [[openbb-invest-api]]
|
||||||
|
- [[OpenClaw]]
|
||||||
179
2 - Projects/Trading-Agents/TradingAgents 原始架构分析.md
Normal file
179
2 - Projects/Trading-Agents/TradingAgents 原始架构分析.md
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
---
|
||||||
|
created: "2026-03-21"
|
||||||
|
type: resource
|
||||||
|
tags: [trading, multi-agent, langgraph, architecture, reference]
|
||||||
|
source: "https://github.com/TauricResearch/TradingAgents"
|
||||||
|
---
|
||||||
|
|
||||||
|
# TradingAgents 原始架构分析
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
[TradingAgents](https://github.com/TauricResearch/TradingAgents) 是一个基于 LangGraph 的多角色 LLM 交易决策框架,模拟真实交易公司的协作流程:分析师团队 → 多空辩论 → 交易决策 → 风控辩论 → 最终裁决。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 核心文件结构
|
||||||
|
|
||||||
|
| 文件 | 职责 |
|
||||||
|
|------|------|
|
||||||
|
| `tradingagents/graph/trading_graph.py` | 主入口,编排整个系统 |
|
||||||
|
| `tradingagents/graph/setup.py` | 构建 LangGraph 状态机 |
|
||||||
|
| `tradingagents/graph/conditional_logic.py` | 条件路由(工具调用 / 辩论轮次) |
|
||||||
|
| `tradingagents/agents/analysts/*.py` | 4 个分析师(市场/社媒/新闻/基本面) |
|
||||||
|
| `tradingagents/agents/researchers/*.py` | Bull/Bear 研究员 + Research Manager |
|
||||||
|
| `tradingagents/agents/risk_mgmt/*.py` | 激进/保守/中性风控辩论者 |
|
||||||
|
| `tradingagents/agents/trader/trader.py` | 交易员 |
|
||||||
|
| `tradingagents/agents/utils/agent_states.py` | TypedDict 状态定义 |
|
||||||
|
| `tradingagents/agents/utils/memory.py` | BM25 记忆系统 |
|
||||||
|
| `tradingagents/dataflows/interface.py` | 数据供应商路由 + 降级策略 |
|
||||||
|
| `tradingagents/dataflows/y_finance.py` | yfinance 数据实现 |
|
||||||
|
| `tradingagents/graph/reflection.py` | 交易后复盘,更新记忆 |
|
||||||
|
| `tradingagents/graph/signal_processing.py` | 从冗长输出提取 BUY/SELL/HOLD |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 分析师团队(并行执行)
|
||||||
|
|
||||||
|
### Market Analyst
|
||||||
|
- 技术分析:SMA, EMA, MACD, RSI, Bollinger Bands, ATR, VWMA
|
||||||
|
- 工具:`get_stock_data`, `get_indicators`
|
||||||
|
- 数据源:yfinance + stockstats
|
||||||
|
|
||||||
|
### Social Media Analyst
|
||||||
|
- 公司新闻 + 情感分析
|
||||||
|
- 工具:`get_news`
|
||||||
|
|
||||||
|
### News Analyst
|
||||||
|
- 宏观经济 + 世界大事
|
||||||
|
- 工具:`get_news`, `get_global_news`
|
||||||
|
|
||||||
|
### Fundamentals Analyst
|
||||||
|
- 财务报表 + 公司指标
|
||||||
|
- 工具:`get_fundamentals`, `get_balance_sheet`, `get_cashflow`, `get_income_statement`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 辩论机制
|
||||||
|
|
||||||
|
### 投资辩论(Bull vs Bear)
|
||||||
|
|
||||||
|
1. Bull Researcher 阅读所有报告 + 检索历史相似情况 → 提出看多论点
|
||||||
|
2. Bear Researcher 阅读报告 + 历史 → 反驳
|
||||||
|
3. 循环 `max_debate_rounds` 轮(默认 1 轮)
|
||||||
|
4. Research Manager(裁判)读完整辩论历史 + 过去的裁决记忆 → 输出投资方案
|
||||||
|
|
||||||
|
### 风控辩论(三方)
|
||||||
|
|
||||||
|
1. Aggressive Analyst:高风险高回报
|
||||||
|
2. Conservative Analyst:稳健保守
|
||||||
|
3. Neutral Analyst:平衡两方
|
||||||
|
4. 循环 `max_risk_discuss_rounds` 轮(默认 1 轮 × 3 人 = 3 turns)
|
||||||
|
5. Risk Manager(裁判)修正交易方案 → 最终决策
|
||||||
|
|
||||||
|
### 辩论路由逻辑
|
||||||
|
|
||||||
|
```python
|
||||||
|
# conditional_logic.py
|
||||||
|
def should_continue_debate(state):
|
||||||
|
# 辩论历史长度 >= max_debate_rounds * 2 → 结束
|
||||||
|
# 否则交替 Bull → Bear → Bull → Bear
|
||||||
|
|
||||||
|
def should_continue_risk_analysis(state):
|
||||||
|
# 长度 >= max_risk_discuss_rounds * 3 → 结束
|
||||||
|
# 循环 Aggressive → Conservative → Neutral
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## BM25 记忆系统
|
||||||
|
|
||||||
|
### 结构
|
||||||
|
|
||||||
|
```python
|
||||||
|
class FinancialSituationMemory:
|
||||||
|
# 存储: (market_situation_description, recommendation) 元组列表
|
||||||
|
# 检索: BM25 相似度,取 top-n 最相似历史情况
|
||||||
|
# 无需 API,完全离线
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5 个独立记忆库
|
||||||
|
|
||||||
|
1. Bull Researcher Memory
|
||||||
|
2. Bear Researcher Memory
|
||||||
|
3. Research Manager Memory
|
||||||
|
4. Trader Memory
|
||||||
|
5. Risk Manager Memory
|
||||||
|
|
||||||
|
### 复盘机制
|
||||||
|
|
||||||
|
```python
|
||||||
|
# reflection.py
|
||||||
|
class Reflector:
|
||||||
|
def reflect_and_remember(self, returns_losses):
|
||||||
|
# 分析交易结果(盈亏)
|
||||||
|
# 生成教训总结
|
||||||
|
# 更新各角色的记忆库
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## LangGraph 状态定义
|
||||||
|
|
||||||
|
```python
|
||||||
|
class AgentState(TypedDict):
|
||||||
|
company_of_interest: str # 股票代码
|
||||||
|
trade_date: str # 交易日期
|
||||||
|
market_report: str # 市场分析报告
|
||||||
|
sentiment_report: str # 情感分析报告
|
||||||
|
news_report: str # 新闻分析报告
|
||||||
|
fundamentals_report: str # 基本面报告
|
||||||
|
invest_debate_state: dict # 多空辩论状态
|
||||||
|
risk_debate_state: dict # 风控辩论状态
|
||||||
|
final_trade_decision: str # 最终决策
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 数据供应商抽象层
|
||||||
|
|
||||||
|
```python
|
||||||
|
# interface.py - 供应商路由
|
||||||
|
def route_to_vendor(tool_name, category, params):
|
||||||
|
vendor = config["data_vendors"].get(category, "yfinance")
|
||||||
|
try:
|
||||||
|
return vendors[vendor][tool_name](params)
|
||||||
|
except RateLimit:
|
||||||
|
return vendors["yfinance"][tool_name](params) # 降级
|
||||||
|
```
|
||||||
|
|
||||||
|
支持的供应商:
|
||||||
|
- yfinance(默认,免费)
|
||||||
|
- Alpha Vantage(需 API key)
|
||||||
|
- 按 category 级别配置,支持 tool 级别覆盖
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 调用方式
|
||||||
|
|
||||||
|
```python
|
||||||
|
ta = TradingAgentsGraph(config={
|
||||||
|
"llm_provider": "openai",
|
||||||
|
"deep_think_llm": "gpt-5.2",
|
||||||
|
"quick_think_llm": "gpt-5-mini",
|
||||||
|
"max_debate_rounds": 1,
|
||||||
|
"max_risk_discuss_rounds": 1,
|
||||||
|
})
|
||||||
|
final_state, decision = ta.propagate("NVDA", "2024-05-10")
|
||||||
|
# decision = "BUY" | "SELL" | "HOLD"
|
||||||
|
|
||||||
|
# 复盘
|
||||||
|
ta.reflect_and_remember(returns_losses=1500)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Related
|
||||||
|
|
||||||
|
- [[Trading Agents 混合架构方案]]
|
||||||
|
- [[openbb-invest-api]]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 21:30"
|
created: "2026-03-08 21:30"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [claude-code, AI-tools, development-workflow, reference]
|
tags: [resource, claude-code, AI-tools, development-workflow, reference]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -253,11 +253,19 @@ ECC_DISABLED_HOOKS="pre:bash:tmux-reminder,post:edit:typecheck"
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
### Resources
|
||||||
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
- [[Everything Claude Code 用法速查]]
|
- [[Everything Claude Code 用法速查]]
|
||||||
- [[Claude Code Memory 日常最佳实践]]
|
|
||||||
|
### Zettelkasten
|
||||||
- [[Everything Claude Code 最佳实践]]
|
- [[Everything Claude Code 最佳实践]]
|
||||||
- [[Everything Claude Code Agent 编排模式]]
|
- [[Everything Claude Code Agent 编排模式]]
|
||||||
- [[Everything Claude Code Token 优化]]
|
- [[Everything Claude Code Token 优化]]
|
||||||
|
- [[Everything Claude Code 多服务编排详解]]
|
||||||
|
- [[Claude Code Memory 日常最佳实践]]
|
||||||
|
- [[Hook驱动优于提示词驱动]]
|
||||||
|
- [[MCP数量与上下文窗口的反比关系]]
|
||||||
|
- [[本能学习系统的演化路径]]
|
||||||
|
|
||||||
## Source
|
## Source
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-19 12:00"
|
created: "2026-03-19 12:00"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [claude-code, AI-tools, methodology, best-practices, agent-orchestration]
|
tags: [resource, claude-code, AI-tools, methodology, best-practices, agent-orchestration]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -925,6 +925,18 @@ ECC 自动检测项目使用的包管理器,遵循 6 级优先级:
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
### Resources
|
||||||
- [[Everything Claude Code 完整指南]]
|
- [[Everything Claude Code 完整指南]]
|
||||||
- [[Everything Claude Code 用法速查]]
|
- [[Everything Claude Code 用法速查]]
|
||||||
- [[GSD 方法论与最佳实践]]
|
- [[GSD 方法论与最佳实践]]
|
||||||
|
|
||||||
|
### Zettelkasten
|
||||||
|
- [[Everything Claude Code 最佳实践]]
|
||||||
|
- [[Everything Claude Code Agent 编排模式]]
|
||||||
|
- [[Everything Claude Code Token 优化]]
|
||||||
|
- [[Everything Claude Code 多服务编排详解]]
|
||||||
|
- [[Claude Code Memory 日常最佳实践]]
|
||||||
|
- [[Hook驱动优于提示词驱动]]
|
||||||
|
- [[MCP数量与上下文窗口的反比关系]]
|
||||||
|
- [[本能学习系统的演化路径]]
|
||||||
|
- [[上下文腐烂与全新窗口隔离]]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 22:10"
|
created: "2026-03-08 22:10"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [claude-code, AI-tools, development-workflow, cheatsheet]
|
tags: [resource, claude-code, AI-tools, development-workflow, cheatsheet]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -172,12 +172,16 @@ source: "https://github.com/affaan-m/everything-claude-code"
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
### Resources
|
||||||
- [[Everything Claude Code 完整指南]]
|
- [[Everything Claude Code 完整指南]]
|
||||||
- [[Everything Claude Code 多服务编排详解]]
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
- [[Claude Code Memory 日常最佳实践]]
|
|
||||||
|
### Zettelkasten
|
||||||
- [[Everything Claude Code 最佳实践]]
|
- [[Everything Claude Code 最佳实践]]
|
||||||
- [[Everything Claude Code Agent 编排模式]]
|
- [[Everything Claude Code Agent 编排模式]]
|
||||||
- [[Everything Claude Code Token 优化]]
|
- [[Everything Claude Code Token 优化]]
|
||||||
|
- [[Everything Claude Code 多服务编排详解]]
|
||||||
|
- [[Claude Code Memory 日常最佳实践]]
|
||||||
|
|
||||||
## Source
|
## Source
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-20 10:00"
|
created: "2026-03-20 10:00"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [claude-code, AI-tools, methodology, best-practices, project-management, gsd]
|
tags: [resource, claude-code, AI-tools, methodology, best-practices, project-management, gsd]
|
||||||
source: "https://github.com/gsd-build/get-shit-done"
|
source: "https://github.com/gsd-build/get-shit-done"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -901,6 +901,12 @@ fix(1-C): apply auth middleware to admin routes
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
### Resources
|
||||||
- [[Everything Claude Code 完整指南]]
|
- [[Everything Claude Code 完整指南]]
|
||||||
- [[Everything Claude Code 用法速查]]
|
- [[Everything Claude Code 用法速查]]
|
||||||
- [[Everything Claude Code 方法论与最佳实践]]
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
|
|
||||||
|
### Zettelkasten
|
||||||
|
- [[上下文腐烂与全新窗口隔离]]
|
||||||
|
- [[目标回溯验证vs正向任务检查]]
|
||||||
|
- [[Plans as Prompts设计模式]]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-17"
|
created: "2026-03-17"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [engineering, workflow, azure-devops, jira, slack, billo]
|
tags: [resource, engineering, workflow, azure-devops, jira, slack, billo]
|
||||||
source: "C:/Users/yaoji/git/Billo/release-workflow/SKILL.md"
|
source: "C:/Users/yaoji/git/Billo/release-workflow/SKILL.md"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-10"
|
created: "2026-03-10"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [infrastructure, homelab, kubernetes, ci-cd, gitops]
|
tags: [resource, infrastructure, homelab, kubernetes, ci-cd, gitops]
|
||||||
source: "HomeLab 部署实践"
|
source: "HomeLab 部署实践"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-09"
|
created: "2026-03-09"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [kubernetes, infrastructure, devops, drone-ci, argocd, docker-registry]
|
tags: [resource, kubernetes, infrastructure, devops, drone-ci, argocd, docker-registry, homelab]
|
||||||
source: "openbb-invest-api 项目部署实践"
|
source: "openbb-invest-api 项目部署实践"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- openclash
|
- openclash
|
||||||
- vless-reality
|
- vless-reality
|
||||||
- security-audit
|
- security-audit
|
||||||
|
- networking
|
||||||
- router
|
- router
|
||||||
- homelab
|
- homelab
|
||||||
---
|
---
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- openclash
|
- openclash
|
||||||
- vless-reality
|
- vless-reality
|
||||||
- clash-config
|
- clash-config
|
||||||
|
- networking
|
||||||
- router
|
- router
|
||||||
- dns
|
- dns
|
||||||
- homelab
|
- homelab
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- openclash
|
- openclash
|
||||||
- vless-reality
|
- vless-reality
|
||||||
- proxy
|
- proxy
|
||||||
|
- networking
|
||||||
- macOS
|
- macOS
|
||||||
- homelab
|
- homelab
|
||||||
---
|
---
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- openclash
|
- openclash
|
||||||
- vless-reality
|
- vless-reality
|
||||||
|
- networking
|
||||||
- iStoreOS
|
- iStoreOS
|
||||||
- router
|
- router
|
||||||
- dns
|
- dns
|
||||||
@@ -1,212 +1,214 @@
|
|||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
- openclash
|
- resource
|
||||||
- vless-reality
|
- openclash
|
||||||
- proxy
|
- vless-reality
|
||||||
- setup-guide
|
- proxy
|
||||||
- homelab
|
- networking
|
||||||
---
|
- setup-guide
|
||||||
|
- homelab
|
||||||
# VLESS + XTLS-Vision + REALITY 搭建文档
|
---
|
||||||
|
|
||||||
> 基于 Xray-core 官方仓库,当前最推荐的代理方案。
|
# VLESS + XTLS-Vision + REALITY 搭建文档
|
||||||
> 无需域名、无需 TLS 证书,流量伪装为正常 HTTPS 访问。
|
|
||||||
|
> 基于 Xray-core 官方仓库,当前最推荐的代理方案。
|
||||||
**部署状态:已完成** | 初始部署:2026-03-14 | Xray 版本:v26.2.6
|
> 无需域名、无需 TLS 证书,流量伪装为正常 HTTPS 访问。
|
||||||
**用途:翻墙回国** — 从瑞典通过国内代理访问国内资源
|
|
||||||
|
**部署状态:已完成** | 初始部署:2026-03-14 | Xray 版本:v26.2.6
|
||||||
---
|
**用途:翻墙回国** — 从瑞典通过国内代理访问国内资源
|
||||||
|
|
||||||
## 当前状态总览
|
---
|
||||||
|
|
||||||
### 已完成
|
## 当前状态总览
|
||||||
|
|
||||||
- [x] 阿里云服务器 Xray-core 部署
|
### 已完成
|
||||||
- [x] iStoreOS 从旁路由升级为主网关
|
|
||||||
- [x] Deco BE65 切换为 AP 模式
|
- [x] 阿里云服务器 Xray-core 部署
|
||||||
- [x] DHCP 静态绑定(19 台设备)
|
- [x] iStoreOS 从旁路由升级为主网关
|
||||||
- [x] 端口映射迁移(3 条规则)
|
- [x] Deco BE65 切换为 AP 模式
|
||||||
- [x] OpenClash + mihomo 安装配置
|
- [x] DHCP 静态绑定(19 台设备)
|
||||||
- [x] 内网 DNS(dnsmasq + OpenClash hosts)
|
- [x] 端口映射迁移(3 条规则)
|
||||||
- [x] 广告拦截(OpenClash GEOSITE 规则)
|
- [x] OpenClash + mihomo 安装配置
|
||||||
- [x] 翻墙回国验证(v.qq.com 正常播放)
|
- [x] 内网 DNS(dnsmasq + OpenClash hosts)
|
||||||
- [x] AdGuard Home 移除(由 OpenClash 接管广告拦截和 DNS)
|
- [x] 广告拦截(OpenClash GEOSITE 规则)
|
||||||
|
- [x] 翻墙回国验证(v.qq.com 正常播放)
|
||||||
### 最终方案
|
- [x] AdGuard Home 移除(由 OpenClash 接管广告拦截和 DNS)
|
||||||
|
|
||||||
不使用 AdGuard Home,全部由 OpenClash + dnsmasq 处理:
|
### 最终方案
|
||||||
- dnsmasq(:53) 负责内网 DNS + 转发到 OpenClash
|
|
||||||
- OpenClash(:7874) 负责 fake-ip 分流 + 广告拦截 + 翻墙回国
|
不使用 AdGuard Home,全部由 OpenClash + dnsmasq 处理:
|
||||||
- NameServer 必须用海外 DNS(8.8.8.8),不能用国内 DNS(避免环路)
|
- dnsmasq(:53) 负责内网 DNS + 转发到 OpenClash
|
||||||
|
- OpenClash(:7874) 负责 fake-ip 分流 + 广告拦截 + 翻墙回国
|
||||||
---
|
- NameServer 必须用海外 DNS(8.8.8.8),不能用国内 DNS(避免环路)
|
||||||
|
|
||||||
## 服务器信息
|
---
|
||||||
|
|
||||||
| 项目 | 值 |
|
## 服务器信息
|
||||||
|------|-----|
|
|
||||||
| 服务器 | `8.138.1.192` (Ubuntu 24.04 LTS, 阿里云广州) |
|
| 项目 | 值 |
|
||||||
| 端口 | `443` |
|
|------|-----|
|
||||||
| UUID | `04a7cfe3-10f6-4e38-8319-22a604e24018` |
|
| 服务器 | `8.138.1.192` (Ubuntu 24.04 LTS, 阿里云广州) |
|
||||||
| Private Key | `mLQp0G0_yYYBNeviVJ674UmaYLimx9vbixVQhlESTWU` |
|
| 端口 | `443` |
|
||||||
| Public Key | `RTO_UOk5ncr3DAAYR08g08L0fo5ax9pmGFj8c8lXWgk` |
|
| UUID | `04a7cfe3-10f6-4e38-8319-22a604e24018` |
|
||||||
| 伪装目标 | `www.microsoft.com` |
|
| Private Key | `mLQp0G0_yYYBNeviVJ674UmaYLimx9vbixVQhlESTWU` |
|
||||||
|
| Public Key | `RTO_UOk5ncr3DAAYR08g08L0fo5ax9pmGFj8c8lXWgk` |
|
||||||
### 分享链接
|
| 伪装目标 | `www.microsoft.com` |
|
||||||
|
|
||||||
```
|
### 分享链接
|
||||||
vless://04a7cfe3-10f6-4e38-8319-22a604e24018@8.138.1.192:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.microsoft.com&fp=chrome&pbk=RTO_UOk5ncr3DAAYR08g08L0fo5ax9pmGFj8c8lXWgk&type=tcp#VLESS-Reality
|
|
||||||
```
|
```
|
||||||
|
vless://04a7cfe3-10f6-4e38-8319-22a604e24018@8.138.1.192:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.microsoft.com&fp=chrome&pbk=RTO_UOk5ncr3DAAYR08g08L0fo5ax9pmGFj8c8lXWgk&type=tcp#VLESS-Reality
|
||||||
---
|
```
|
||||||
|
|
||||||
## 网络拓扑
|
---
|
||||||
|
|
||||||
### 当前状态
|
## 网络拓扑
|
||||||
|
|
||||||
```
|
### 当前状态
|
||||||
光猫 (拨号, 瑞典 ISP)
|
|
||||||
│
|
```
|
||||||
▼ WAN (eth0, DHCP, 公网 IP)
|
光猫 (拨号, 瑞典 ISP)
|
||||||
iStoreOS / EasePi (192.168.68.63) ← 主网关
|
│
|
||||||
├── DHCP 服务器 (网关=.63, DNS=.63)
|
▼ WAN (eth0, DHCP, 公网 IP)
|
||||||
├── AdGuard Home Docker (:53) ← 临时,待迁出
|
iStoreOS / EasePi (192.168.68.63) ← 主网关
|
||||||
├── OpenClash (已安装,未启用,与 AGH 冲突)
|
├── DHCP 服务器 (网关=.63, DNS=.63)
|
||||||
├── 端口映射 (2200, 443, 51888)
|
├── AdGuard Home Docker (:53) ← 临时,待迁出
|
||||||
│
|
├── OpenClash (已安装,未启用,与 AGH 冲突)
|
||||||
▼ LAN (eth1/eth2/eth3)
|
├── 端口映射 (2200, 443, 51888)
|
||||||
├── Deco BE65 (AP 模式) → mesh WiFi → 手机/平板/笔记本
|
│
|
||||||
└── 交换机 (2楼) → PVE + NAS + 其他有线设备
|
▼ LAN (eth1/eth2/eth3)
|
||||||
```
|
├── Deco BE65 (AP 模式) → mesh WiFi → 手机/平板/笔记本
|
||||||
|
└── 交换机 (2楼) → PVE + NAS + 其他有线设备
|
||||||
### 目标架构
|
```
|
||||||
|
|
||||||
```
|
### 目标架构
|
||||||
光猫 → iStoreOS (192.168.68.63, 主网关)
|
|
||||||
├── DHCP (网关=.63, DNS=AGH的IP)
|
```
|
||||||
├── OpenClash (:7874, fake-ip + DNS劫持)
|
光猫 → iStoreOS (192.168.68.63, 主网关)
|
||||||
├── 端口映射
|
├── DHCP (网关=.63, DNS=AGH的IP)
|
||||||
│
|
├── OpenClash (:7874, fake-ip + DNS劫持)
|
||||||
├── Deco BE65 (AP) → WiFi 设备
|
├── 端口映射
|
||||||
└── 交换机 (2楼)
|
│
|
||||||
├── PVE (192.168.68.69) → VM 跑 AdGuard Home
|
├── Deco BE65 (AP) → WiFi 设备
|
||||||
└── NAS (192.168.68.70)
|
└── 交换机 (2楼)
|
||||||
|
├── PVE (192.168.68.69) → VM 跑 AdGuard Home
|
||||||
DNS 链路:
|
└── NAS (192.168.68.70)
|
||||||
设备 → AdGuard Home (PVE VM:53, 广告过滤+内网重写)
|
|
||||||
└→ 上游: OpenClash (192.168.68.63:7874, fake-ip)
|
DNS 链路:
|
||||||
├→ 国内域名 → VLESS 代理回国
|
设备 → AdGuard Home (PVE VM:53, 广告过滤+内网重写)
|
||||||
└→ 海外域名 → 直连
|
└→ 上游: OpenClash (192.168.68.63:7874, fake-ip)
|
||||||
```
|
├→ 国内域名 → VLESS 代理回国
|
||||||
|
└→ 海外域名 → 直连
|
||||||
---
|
```
|
||||||
|
|
||||||
## 物理布局
|
---
|
||||||
|
|
||||||
```
|
## 物理布局
|
||||||
1楼: 光猫 → iStoreOS (EasePi) → Deco BE65 主机
|
|
||||||
2楼: 交换机 ← 网线连接 Deco → PVE 服务器 + NAS
|
```
|
||||||
```
|
1楼: 光猫 → iStoreOS (EasePi) → Deco BE65 主机
|
||||||
|
2楼: 交换机 ← 网线连接 Deco → PVE 服务器 + NAS
|
||||||
注意:2楼设备通过 Deco AP 桥接到 iStoreOS,不是直连。
|
```
|
||||||
|
|
||||||
---
|
注意:2楼设备通过 Deco AP 桥接到 iStoreOS,不是直连。
|
||||||
|
|
||||||
## 相关文档
|
---
|
||||||
|
|
||||||
| 文档 | 说明 |
|
## 相关文档
|
||||||
|------|------|
|
|
||||||
| [主网关配置](./VLESS-REALITY-Router-iStoreOS.md) | iStoreOS 网络/DHCP/端口映射/OpenClash 配置 |
|
| 文档 | 说明 |
|
||||||
| [macOS 客户端](./VLESS-REALITY-Client-macOS.md) | ClashX Meta 客户端配置(外出时使用) |
|
|------|------|
|
||||||
| [AdGuard Home 备份](./adguardhome-backup-20260315.tar.gz) | 完整备份(配置+数据,89MB) |
|
| [主网关配置](./VLESS-REALITY-Router-iStoreOS.md) | iStoreOS 网络/DHCP/端口映射/OpenClash 配置 |
|
||||||
|
| [macOS 客户端](./VLESS-REALITY-Client-macOS.md) | ClashX Meta 客户端配置(外出时使用) |
|
||||||
---
|
| [AdGuard Home 备份](./adguardhome-backup-20260315.tar.gz) | 完整备份(配置+数据,89MB) |
|
||||||
|
|
||||||
## PVE 虚拟机列表
|
---
|
||||||
|
|
||||||
| VMID | 名称 | IP | 状态 | 说明 |
|
## PVE 虚拟机列表
|
||||||
|------|------|-----|------|------|
|
|
||||||
| 100 | HA (Home Assistant) | - | running | 智能家居 |
|
| VMID | 名称 | IP | 状态 | 说明 |
|
||||||
| 101 | k8s-cp1 | - | running | K8s 控制面 |
|
|------|------|-----|------|------|
|
||||||
| 102 | Wireguard | 192.168.68.107 | running | VPN |
|
| 100 | HA (Home Assistant) | - | running | 智能家居 |
|
||||||
| 103 | k8s-w1 | - | running | K8s 工作节点 |
|
| 101 | k8s-cp1 | - | running | K8s 控制面 |
|
||||||
| 104 | k8s-w2 | - | running | K8s 工作节点 |
|
| 102 | Wireguard | 192.168.68.107 | running | VPN |
|
||||||
| 105 | pg-01 | - | running | PostgreSQL |
|
| 103 | k8s-w1 | - | running | K8s 工作节点 |
|
||||||
| 106 | network-scanner | 192.168.68.84 | running | 网络扫描 |
|
| 104 | k8s-w2 | - | running | K8s 工作节点 |
|
||||||
| 110 | adguard-home (LXC) | 192.168.68.110 | running | AdGuard Home(网络不稳定,待修复) |
|
| 105 | pg-01 | - | running | PostgreSQL |
|
||||||
|
| 106 | network-scanner | 192.168.68.84 | running | 网络扫描 |
|
||||||
---
|
| 110 | adguard-home (LXC) | 192.168.68.110 | running | AdGuard Home(网络不稳定,待修复) |
|
||||||
|
|
||||||
## 踩坑记录
|
---
|
||||||
|
|
||||||
### 1. OpenClash + AdGuard Home 53 端口冲突
|
## 踩坑记录
|
||||||
|
|
||||||
OpenClash fake-ip 模式需要 DNS 劫持(占 53 端口),与 AdGuard Home 冲突。
|
### 1. OpenClash + AdGuard Home 53 端口冲突
|
||||||
尝试的方案:
|
|
||||||
- 关闭 DNS 劫持 → fake-ip 不生效,无法代理
|
OpenClash fake-ip 模式需要 DNS 劫持(占 53 端口),与 AdGuard Home 冲突。
|
||||||
- 开启防火墙转发 → dnsmasq 不运行,DNS 全断
|
尝试的方案:
|
||||||
- AdGuard Home 上游指向 OpenClash → 其他设备(旁路由模式下)拿到 fake-ip 断网
|
- 关闭 DNS 劫持 → fake-ip 不生效,无法代理
|
||||||
|
- 开启防火墙转发 → dnsmasq 不运行,DNS 全断
|
||||||
**结论:必须分开部署在不同机器上。**
|
- AdGuard Home 上游指向 OpenClash → 其他设备(旁路由模式下)拿到 fake-ip 断网
|
||||||
|
|
||||||
### 2. Deco BE65 不支持自定义 DHCP 网关/DNS
|
**结论:必须分开部署在不同机器上。**
|
||||||
|
|
||||||
Deco 系列路由器的 DHCP 设置完全封闭,无法自定义下发网关和 DNS。
|
### 2. Deco BE65 不支持自定义 DHCP 网关/DNS
|
||||||
**解决方案:** Deco 切 AP 模式,iStoreOS 接管 DHCP。
|
|
||||||
|
Deco 系列路由器的 DHCP 设置完全封闭,无法自定义下发网关和 DNS。
|
||||||
### 3. PVE LXC 容器网络延迟不稳定
|
**解决方案:** Deco 切 AP 模式,iStoreOS 接管 DHCP。
|
||||||
|
|
||||||
Ubuntu 25.04 LXC 容器 eth0 不能自动启动,需要手动 `ip link set eth0 up`。
|
### 3. PVE LXC 容器网络延迟不稳定
|
||||||
即使手动配置后,ping 延迟在 9ms~200ms 之间波动。
|
|
||||||
PVE 主机和 NAS 延迟正常(3-7ms),说明是 LXC 网络栈的问题。
|
Ubuntu 25.04 LXC 容器 eth0 不能自动启动,需要手动 `ip link set eth0 up`。
|
||||||
**待解决:改用完整 VM 或修复 LXC 网络。**
|
即使手动配置后,ping 延迟在 9ms~200ms 之间波动。
|
||||||
|
PVE 主机和 NAS 延迟正常(3-7ms),说明是 LXC 网络栈的问题。
|
||||||
### 4. 旁路由模式 bypass_gateway_compatible
|
**待解决:改用完整 VM 或修复 LXC 网络。**
|
||||||
|
|
||||||
OpenClash 旁路由模式下必须开启 `bypass_gateway_compatible=1`,否则转发流量不通。
|
### 4. 旁路由模式 bypass_gateway_compatible
|
||||||
同时必须关闭 `enable_redirect_dns=0`,否则会劫持所有设备 DNS 导致断网。
|
|
||||||
|
OpenClash 旁路由模式下必须开启 `bypass_gateway_compatible=1`,否则转发流量不通。
|
||||||
### 5. 1Password SSH Agent
|
同时必须关闭 `enable_redirect_dns=0`,否则会劫持所有设备 DNS 导致断网。
|
||||||
|
|
||||||
SSH 到新 IP 时需要在 `~/.ssh/config` 中添加 `IdentityAgent` 配置指向 1Password socket。
|
### 5. 1Password SSH Agent
|
||||||
不能用 `IdentitiesOnly=yes`,否则会阻止 1Password agent。
|
|
||||||
|
SSH 到新 IP 时需要在 `~/.ssh/config` 中添加 `IdentityAgent` 配置指向 1Password socket。
|
||||||
---
|
不能用 `IdentitiesOnly=yes`,否则会阻止 1Password agent。
|
||||||
|
|
||||||
## 服务器管理
|
---
|
||||||
|
|
||||||
### 阿里云服务器 (8.138.1.192)
|
## 服务器管理
|
||||||
|
|
||||||
```bash
|
### 阿里云服务器 (8.138.1.192)
|
||||||
ssh admin@8.138.1.192
|
|
||||||
|
```bash
|
||||||
# Xray 管理
|
ssh admin@8.138.1.192
|
||||||
systemctl status xray
|
|
||||||
systemctl restart xray
|
# Xray 管理
|
||||||
journalctl -u xray -f
|
systemctl status xray
|
||||||
|
systemctl restart xray
|
||||||
# 更新
|
journalctl -u xray -f
|
||||||
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
|
||||||
```
|
# 更新
|
||||||
|
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||||
### iStoreOS 主网关 (192.168.68.63)
|
```
|
||||||
|
|
||||||
```bash
|
### iStoreOS 主网关 (192.168.68.63)
|
||||||
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.63
|
|
||||||
|
```bash
|
||||||
# 紧急恢复(如果 OpenClash 搞坏了网络)
|
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.63
|
||||||
/etc/init.d/openclash stop
|
|
||||||
nft -a list chain inet fw4 dstnat | grep 'DNS Hijack' | grep -o 'handle [0-9]*' | while read h; do nft delete rule inet fw4 dstnat $h; done
|
# 紧急恢复(如果 OpenClash 搞坏了网络)
|
||||||
nft -a list chain inet fw4 nat_output | grep 'DNS Hijack' | grep -o 'handle [0-9]*' | while read h; do nft delete rule inet fw4 nat_output $h; done
|
/etc/init.d/openclash stop
|
||||||
```
|
nft -a list chain inet fw4 dstnat | grep 'DNS Hijack' | grep -o 'handle [0-9]*' | while read h; do nft delete rule inet fw4 dstnat $h; done
|
||||||
|
nft -a list chain inet fw4 nat_output | grep 'DNS Hijack' | grep -o 'handle [0-9]*' | while read h; do nft delete rule inet fw4 nat_output $h; done
|
||||||
### PVE (192.168.68.69)
|
```
|
||||||
|
|
||||||
```bash
|
### PVE (192.168.68.69)
|
||||||
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.69
|
|
||||||
|
```bash
|
||||||
# LXC 管理
|
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ssh root@192.168.68.69
|
||||||
pct list
|
|
||||||
pct start/stop/restart 110
|
# LXC 管理
|
||||||
pct exec 110 -- bash
|
pct list
|
||||||
```
|
pct start/stop/restart 110
|
||||||
|
pct exec 110 -- bash
|
||||||
|
```
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-15"
|
created: "2026-03-15"
|
||||||
type: project
|
type: resource
|
||||||
status: active
|
|
||||||
deadline: ""
|
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- openclash
|
- openclash
|
||||||
- vless-reality
|
- vless-reality
|
||||||
- proxy
|
- proxy
|
||||||
|
- networking
|
||||||
- homelab
|
- homelab
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-19 17:00"
|
created: "2026-03-19 17:00"
|
||||||
type: project
|
type: resource
|
||||||
status: active
|
tags: [resource, openclaw, ai-agent, discord, multi-agent, homelab]
|
||||||
tags: [openclaw, ai-agent, discord, multi-agent]
|
|
||||||
source: "ssh yiukai@192.168.68.108 ~/.openclaw/openclaw.json"
|
source: "ssh yiukai@192.168.68.108 ~/.openclaw/openclaw.json"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-19 17:00"
|
created: "2026-03-19 17:00"
|
||||||
type: project
|
type: resource
|
||||||
status: active
|
tags: [resource, openclaw, ai-gateway, discord, homelab, deployment]
|
||||||
tags: [openclaw, ai-gateway, discord, homelab, deployment]
|
|
||||||
source: "ssh yiukai@192.168.68.108 ~/.openclaw/"
|
source: "ssh yiukai@192.168.68.108 ~/.openclaw/"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-10"
|
created: "2026-03-10"
|
||||||
type: resource
|
type: resource
|
||||||
tags: [openclaw, ai-gateway, claude-code, skill]
|
tags: [resource, openclaw, ai-gateway, claude-code, skill, homelab]
|
||||||
source: "https://docs.openclaw.ai/"
|
source: "https://docs.openclaw.ai/"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
created: "2026-03-08"
|
created: "2026-03-08"
|
||||||
type: resource
|
type: resource
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- security
|
- security
|
||||||
- openvas
|
- openvas
|
||||||
- vulnerability-scanning
|
- vulnerability-scanning
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08"
|
created: "2026-03-08"
|
||||||
type: project
|
type: resource
|
||||||
status: active
|
|
||||||
deadline: ""
|
|
||||||
tags:
|
tags:
|
||||||
|
- resource
|
||||||
- homelab
|
- homelab
|
||||||
- security
|
- security
|
||||||
- proxmox
|
- proxmox
|
||||||
- networking
|
- networking
|
||||||
|
- vulnerability-scanning
|
||||||
---
|
---
|
||||||
|
|
||||||
# PVE Security Scanner
|
# PVE Security Scanner
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-07 12:00"
|
created: "2026-03-07 12:00"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [concept, PKM]
|
tags: [zettel, concept, PKM, knowledge-management, zettelkasten]
|
||||||
source: "Tiago Forte - Building a Second Brain / Niklas Luhmann - Zettelkasten"
|
source: "Tiago Forte - Building a Second Brain / Niklas Luhmann - Zettelkasten"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 21:30"
|
created: "2026-03-08 21:30"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, best-practices, AI-tools]
|
tags: [zettel, claude-code, best-practices, AI-tools]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -43,5 +43,7 @@ source: "https://github.com/affaan-m/everything-claude-code"
|
|||||||
## Related
|
## Related
|
||||||
|
|
||||||
- [[Everything Claude Code 完整指南]]
|
- [[Everything Claude Code 完整指南]]
|
||||||
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
|
- [[Everything Claude Code 用法速查]]
|
||||||
- [[Everything Claude Code Agent 编排模式]]
|
- [[Everything Claude Code Agent 编排模式]]
|
||||||
- [[Everything Claude Code Token 优化]]
|
- [[Everything Claude Code Token 优化]]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 21:31"
|
created: "2026-03-08 21:31"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, agent-orchestration, workflow]
|
tags: [zettel, claude-code, agent-orchestration, workflow]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -47,6 +47,7 @@ Phase 5: VERIFY (build-error-resolver) → done or loop
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
- [[Everything Claude Code 完整指南]]
|
||||||
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
- [[Everything Claude Code 多服务编排详解]]
|
- [[Everything Claude Code 多服务编排详解]]
|
||||||
- [[Everything Claude Code 最佳实践]]
|
- [[Everything Claude Code 最佳实践]]
|
||||||
- [[Everything Claude Code 完整指南]]
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 21:32"
|
created: "2026-03-08 21:32"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, token-optimization, cost]
|
tags: [zettel, claude-code, token-optimization, cost]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -43,5 +43,7 @@ Skill 启动时只读描述(约 100 tokens),只在相关时才加载完整
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
- [[Everything Claude Code 完整指南]]
|
||||||
|
- [[Everything Claude Code 用法速查]]
|
||||||
- [[Everything Claude Code 最佳实践]]
|
- [[Everything Claude Code 最佳实践]]
|
||||||
- [[Everything Claude Code Agent 编排模式]]
|
- [[Everything Claude Code Agent 编排模式]]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 22:15"
|
created: "2026-03-08 22:15"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, multi-agent, orchestration, workflow]
|
tags: [zettel, claude-code, multi-agent, orchestration, workflow]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -568,9 +568,10 @@ Team Lead 通过 Task 状态自动判断何时启动下一阶段,不需要人
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
- [[Everything Claude Code 完整指南]]
|
||||||
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
- [[Everything Claude Code 用法速查]]
|
- [[Everything Claude Code 用法速查]]
|
||||||
- [[Everything Claude Code Agent 编排模式]]
|
- [[Everything Claude Code Agent 编排模式]]
|
||||||
- [[Everything Claude Code 完整指南]]
|
|
||||||
|
|
||||||
## Source
|
## Source
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-08 23:30"
|
created: "2026-03-08 23:30"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, memory, persistence, workflow, best-practice]
|
tags: [zettel, claude-code, memory, persistence, workflow, best-practices]
|
||||||
source: "daily usage + ECC documentation"
|
source: "daily usage + ECC documentation"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -180,9 +180,10 @@ Claude → 更新 MEMORY.md 索引
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
- [[Everything Claude Code 多服务编排详解]]
|
|
||||||
- [[Everything Claude Code 用法速查]]
|
|
||||||
- [[Everything Claude Code 完整指南]]
|
- [[Everything Claude Code 完整指南]]
|
||||||
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
|
- [[Everything Claude Code 用法速查]]
|
||||||
|
- [[Everything Claude Code 多服务编排详解]]
|
||||||
|
|
||||||
## Source
|
## Source
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-19 12:01"
|
created: "2026-03-19 12:01"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, agent-reliability, automation]
|
tags: [zettel, claude-code, agent-reliability, automation]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-19 12:02"
|
created: "2026-03-19 12:02"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, context-window, performance, mcp]
|
tags: [zettel, claude-code, context-window, performance, mcp]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -24,5 +24,6 @@ source: "https://github.com/affaan-m/everything-claude-code"
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
- [[Everything Claude Code 完整指南]]
|
||||||
- [[Everything Claude Code 方法论与最佳实践]]
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
- [[Hook驱动优于提示词驱动]]
|
- [[Hook驱动优于提示词驱动]]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-19 12:03"
|
created: "2026-03-19 12:03"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, machine-learning, continuous-improvement, agent-evolution]
|
tags: [zettel, claude-code, machine-learning, continuous-improvement, agent-evolution]
|
||||||
source: "https://github.com/affaan-m/everything-claude-code"
|
source: "https://github.com/affaan-m/everything-claude-code"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -26,5 +26,6 @@ ECC 的 Continuous Learning v2.1 实现了一个 AI Agent 自我改进的闭环
|
|||||||
|
|
||||||
## Related
|
## Related
|
||||||
|
|
||||||
|
- [[Everything Claude Code 完整指南]]
|
||||||
- [[Everything Claude Code 方法论与最佳实践]]
|
- [[Everything Claude Code 方法论与最佳实践]]
|
||||||
- [[Hook驱动优于提示词驱动]]
|
- [[Hook驱动优于提示词驱动]]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-20 10:01"
|
created: "2026-03-20 10:01"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [claude-code, context-window, ai-quality, gsd]
|
tags: [zettel, claude-code, context-window, ai-quality, gsd]
|
||||||
source: "https://github.com/gsd-build/get-shit-done"
|
source: "https://github.com/gsd-build/get-shit-done"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-20 10:02"
|
created: "2026-03-20 10:02"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [verification, methodology, ai-quality, gsd]
|
tags: [zettel, claude-code, verification, methodology, ai-quality, gsd]
|
||||||
source: "https://github.com/gsd-build/get-shit-done"
|
source: "https://github.com/gsd-build/get-shit-done"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
created: "2026-03-20 10:03"
|
created: "2026-03-20 10:03"
|
||||||
type: zettel
|
type: zettel
|
||||||
tags: [prompt-engineering, ai-architecture, gsd]
|
tags: [zettel, claude-code, prompt-engineering, ai-architecture, gsd]
|
||||||
source: "https://github.com/gsd-build/get-shit-done"
|
source: "https://github.com/gsd-build/get-shit-done"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user