| name | trade-baseline-review |
| description | Trade Baseline v2 复盘工作助手技能(精简入口版)。Agent 可通过本 skill 完成完整复盘闭环: (1) 同步市场客观基线;(2) 记录交易操作并自动评估; (3) 自动聚合日/周/月复盘 + 历史模式洞察;(4) 写入独立复盘日志报告; (5) 在编辑覆盖 / 重新聚合 / 清空重推 / 单条删除多接口间正确选择; (6) 写入「明日权限卡」把复盘转成事前刹车(状态/最大仓位/结构化风控矩阵); (7) 盘中买入预审:拉外部行情/历史走势并检查交易权限,输出允许/拒绝/等待; (8) 管理下一交易日交易计划、持仓计划卡和违规检测,把手动交易纳入行为约束闭环; (9) 内置聊天通道(OpenAI 兼容)+ 只读工具,agent 可在面板里直接调内部 API / 行情 / skill 文档。 详细 SOP 与接口手册按需读取 skill/ 子目录对应文件。 BASE_URL 默认生产地址 http://vzil1451410.bohrium.tech:50001。 |
Trade Baseline v2 — Agent 复盘工作助手(入口)
🎯 让 agent 不只是同步数据,而能完整执行复盘 — 从拉数据、生成评估,到识别行为模式、写出可执行的改进规则。
📂 本文件是精简入口(~3k tokens)。完整 SOP 与接口字段都在 skill/ 子目录下,按需读取,避免上下文炸裂。
配置
| 变量 | 说明 | 值 |
|---|
BASE_URL | 服务地址 | 生产:http://vzil1451410.bohrium.tech:50001 / 本地:http://localhost:50001 |
⚠️ 在远程机器内部用 curl 调用时需加 --noproxy '*',否则会被 Privoxy 代理拦截。
🗺️ 能力地图
┌─ 客观面 ──────────────────────────────────────┐
│ baseline (市场基线) │
│ ├─ snapshot 当日阶段/情绪/风险 │
│ ├─ event 市场事件 │
│ ├─ future 未来观察项 │
│ └─ override 人工修正 │
└────────────────────────────────────────────────┘
↕ 双向关联
┌─ 主观面 ──────────────────────────────────────┐
│ review (个人复盘) │
│ ├─ operation 一笔操作 │
│ ├─ evaluation 操作评估 (agent/self) │
│ └─ daily 当日复盘汇总 (自动) │
└────────────────────────────────────────────────┘
↕ 时间聚合
┌─ 聚合面 ──────────────────────────────────────┐
│ period (周/月聚合) ← 自动 + 编辑覆盖 │
│ journal (独立日志) ← 纯自由写,可多篇 │
│ insights (历史洞察) ← 基于历史 N 期对比生成 │
└────────────────────────────────────────────────┘
↕ 推理写入
┌─ 控制面 ──────────────────────────────────────┐
│ permission (明日权限卡) │
│ 每日一张:状态/最大仓位/允许模式/风控矩阵 │
│ Agent 综合上述三层数据推理生成(事前刹车) │
│ pretrade (盘中买入预审) │
│ 外部行情 + 历史走势 + 权限卡 + 战法 → 四档结论 │
│ tactics (战法库) │
│ 可导入/查询/匹配,给预审提供检查清单和禁忌项 │
│ position-plan / violations │
│ 逐票明日动作 + 盘后违规检测 │
└────────────────────────────────────────────────┘
🧭 接口选择决策树(开始任何工作前先看这里)
你要做什么?
│
├─ 写入"客观市场"信息
│ ├─ 当日的阶段/情绪/事件 → POST /api/baseline/input
│ ├─ 未来要发生的事件 → POST /api/baseline/input (data_type=future_event)
│ ├─ 修正之前 agent 的误判 → POST /api/baseline/override
│ └─ 完全清空某日重来 → POST /api/baseline/reset/:date
│ 详情:skill/api-baseline.md
│
├─ 写入"用户操作 / 个人复盘"
│ ├─ 一笔具体操作 → POST /api/review/operation
│ ├─ 给某笔操作打分/评价 → POST /api/review/operation/:id/eval
│ ├─ 当日总结 / 计划 → POST /api/review/daily/:date/plan
│ └─ 删错某笔操作 → DELETE /api/review/operation/:id
│ 详情:skill/api-review.md
│
├─ 写入/修改"周或月的聚合复盘"
│ ├─ 让系统自动重聚合 → POST /api/review/weekly|monthly/:key/aggregate
│ ├─ 改 narrative/改进/手册 → POST /api/review/weekly|monthly/:key/plan
│ ├─ 推倒重来(含手写内容) → DELETE /api/review/weekly|monthly/:key?reaggregate=1
│ └─ 想看历史模式洞察 → GET /api/review/weekly|monthly/:key/insights
│ 详情:skill/api-period.md
│
├─ 写入"自由复盘日志"(一周/月可写多篇长文)
│ ├─ 新建一篇 → POST /api/review/journal
│ ├─ 增量补内容 → PATCH /api/review/journal/:id
│ ├─ 完整替换 → PUT /api/review/journal/:id
│ └─ 删错一篇 → DELETE /api/review/journal/:id
│ 详情:skill/api-journal.md
│
├─ 写入"明日权限卡"(事前刹车 — 状态/仓位/风控矩阵)
│ ├─ 写入/覆盖一张卡 → POST /api/permission
│ ├─ 查今日卡 → GET /api/permission/today
│ ├─ 查某日卡 → GET /api/permission/:date
│ ├─ 锁定/解锁 → POST /api/permission/:date/lock {locked:true|false}
│ ├─ 强制覆盖锁定卡 → POST /api/permission?force=1
│ └─ 删除 → DELETE /api/permission/:date
│ 详情:skill/api-permission.md / skill/sop-permission.md
│
├─ 写入"下一交易日交易计划"(计划内标的 / 观察池 / 持仓处理)
│ ├─ 写入/覆盖计划 → POST /api/next-trade-plan
│ ├─ 查某日计划 → GET /api/next-trade-plan?date=
│ ├─ 查区间计划 → GET /api/next-trade-plan?start=&end=
│ ├─ 锁定/解锁 → POST /api/next-trade-plan/:date/lock
│ └─ 删除 → DELETE /api/next-trade-plan/:date
│ 详情:skill/api-behavior.md
│
├─ 导入/查询"战法库"(给盘中预审提供检查清单)
│ ├─ 导入 JSON/Markdown 战法 → POST /api/tactics/import
│ ├─ 查战法列表 → GET /api/tactics
│ ├─ 查单条战法 → GET /api/tactics/:id
│ ├─ 改标题/文案 → PATCH /api/tactics/:id
│ ├─ 归档战法 → POST /api/tactics/:id/archive
│ ├─ 删除误导入战法 → DELETE /api/tactics/:id
│ └─ 匹配预审意图 → POST /api/tactics/match
│ 详情:skill/api-tactics.md
│
├─ 做"盘中买入预审"(下单前闸门 — 不自动下单)
│ ├─ 查今日权限卡 → GET /api/permission/today 或 /api/permission/:date
│ ├─ 查今日交易计划 → GET /api/next-trade-plan?date=
│ ├─ 查近期复盘/操作 → GET /api/review/daily + /api/review/operations
│ ├─ 查市场基线 → GET /api/baseline/snapshot?date=
│ ├─ 匹配战法清单 → POST /api/tactics/match
│ ├─ 拉外部行情/历史走势 → 东方财富/同花顺 iFinD 等数据源
│ ├─ 输出 REJECT / WAIT / ALLOW_SMALL / ALLOW
│ └─ 记录预审结果 → POST /api/pretrade(可附 tactic_evaluations)
│ 详情:skill/sop-pretrade.md / skill/api-behavior.md / skill/api-tactics.md
│
├─ 管理"持仓计划 / 违规检测"(手动交易约束层)
│ ├─ 写逐票持仓计划 → POST /api/position-plan 或 /batch
│ ├─ 查某日持仓计划 → GET /api/position-plan?date=
│ └─ 查某日违规检测 → GET /api/violations?date=
│ 详情:skill/api-behavior.md
│
└─ 查询/读取
├─ 某日全景 → GET /api/baseline/snapshot?date= + GET /api/review/daily?date=
├─ 时间区间 → GET /api/baseline/timeline?start=&end=
├─ 周/月时间轴 → GET /api/review/period/timeline?type=week&start=&end=
├─ 全部日志(带过滤) → GET /api/review/journals?scope=&tag=&search=
└─ 权限卡区间 → GET /api/permission?start=&end=
关键原则:
- 写入不破坏:所有 POST/PATCH 默认是"追加 + 自动聚合",不会丢失之前的数据
- 修正用 override / plan:在原数据上叠加,不要直接 reset
- 重置用 reset / DELETE:明确知道要清空时才用,不可恢复
- agent 写入永远带 source 标识:
source: "agent:你的名字",便于追溯
📚 文档索引(按场景读取)
建议读取策略:
- 始终先读 SKILL.md(本文件)拿决策树
- 按"任务类型"读对应 SOP(一份 ~1-2k tokens)
- 写文字字段时读
content-quality.md(~1k tokens)
- 接口字段不熟时再读对应
api-*.md
- 遇到不确定的删除/重置,必读
sop-fixup.md
🧩 Skill Router(参考 Claude Code / OpenClaw)
trade-line 内置一套服务端 skill 系统:每个 skill 是一份 markdown 文档,可选附 frontmatter(name/description/triggers/priority/tags)。聊天 agent 会按你的提问自动匹配相关 skill 注入到 system prompt,也可以主动调工具显式调用某个 skill。
目录约定
| 来源 | 路径 | source 标记 | 备注 |
|---|
| 仓库入口 | <repo>/SKILL.md | repo:entry | 本文件 |
| 仓库内置 | <repo>/skill/*.md | repo:doc | 单文件 skill |
| 用户级(生产默认) | /personal/.trade-line/skills/ | user:doc / user:dir | 部署容器约定 |
| 用户级(兼容) | ~/.trade-line/skills/ | user:doc / user:dir | 本地开发兼容 |
| 显式覆盖 | $TRADE_LINE_SKILL_DIR | user:doc / user:dir | env 优先级最高 |
用户级 skill 既可以是单文件(<root>/<name>.md,source=user:doc),也可以是目录(<root>/<name>/SKILL.md,source=user:dir),后者可携带脚本/模板/配置等附件。
同名 skill 按 user:dir > user:doc > repo:doc > repo:entry 优先级合并,用户级永远覆盖仓库内置,便于在不动主仓的情况下私改 SOP。
Agent 工具(已暴露在 chat 工具集中)
| 工具 | 何时用 |
|---|
list_skill_docs | 查全量 skill 列表(含 has_attachments),不含正文 |
search_skills(query, limit?) | 按关键字 / 任务意图找候选 skill,返回得分与命中原因 |
read_skill_doc(name) | 只想看某 skill 全文,不一定要按它执行任务 |
invoke_skill(name) | 正式调用一个 skill:返回 SKILL.md 全文 + 附件清单,语义上等于"我现在按这份 SOP 干活" |
list_skill_files(name) | 列出目录型 skill 的所有附件(脚本/模板/配置),含 rel_path/大小/是否文本 |
read_skill_file(name, rel_path) | 读取附件正文,文本 utf-8 / 二进制 base64,单文件 ≤ 256KB |
HTTP 路由(同等能力,便于在浏览器或脚本里调试)
GET /api/chat/skills # 列全量 skill
GET /api/chat/skills/debug # 看 registry 元数据(roots / 来源分布)
GET /api/chat/skills/select?q=... # 按关键字模拟 router 排序
GET /api/chat/skills/:id # 读单个 skill 全文
GET /api/chat/skills/:id/files # 列目录型 skill 的附件
GET /api/chat/skills/:id/file?path=... # 读某个附件正文
写一个用户级 skill 的最简模板
mkdir -p /personal/.trade-line/skills/my-skill
cat > /personal/.trade-line/skills/my-skill/SKILL.md <<'EOF'
---
name: my-skill
description: 一句话告诉 router 这个 skill 何时该被匹配
triggers: [关键字1, 关键字2]
priority: 60
tags: [复盘, 我的私货]
---
...
1. ...
2. ...
- `templates/morning.md` — 晨会模板
- `scripts/snapshot.sh` — 一键拉行情快照
EOF
随后再往同目录下放 templates/、scripts/ 等附件即可。Agent 只要看到 has_attachments=true 就会用 list_skill_files / read_skill_file 去取。
✅ 最终自检清单(每次复盘任务结束前对照)
🚀 30 秒快速上手
BASE_URL=http://vzil1451410.bohrium.tech:50001
WEEK="2026-W17"
curl -X POST "$BASE_URL/api/review/weekly/$WEEK/aggregate"
curl -s "$BASE_URL/api/review/weekly?period=$WEEK"
curl -s "$BASE_URL/api/review/weekly/$WEEK/insights?lookback=4"
curl -X POST "$BASE_URL/api/review/weekly/$WEEK/plan" \
-H 'Content-Type: application/json' \
-d '{"narrative":"...","improvements":["..."],"playbook_updates":["..."],"next_actions":["..."]}'
curl -X POST "$BASE_URL/api/review/journal" \
-H 'Content-Type: application/json' \
-d '{"scope":"week","period_key":"'$WEEK'","title":"...","body":"...","status":"final","source":"agent:weekly"}'
完整流程 + 注意事项见 skill/sop-weekly.md 和 skill/examples-e2e.md。