Imported from luobangkui/trade-line (
SKILL.md). Install upstream withnpx skills add luobangkui/trade-line. Copyright stays with the author.
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 期对比生成 │
└────────────────────────────────────────────────┘
↕ 推理写入
┌─ 评估与建议面(不强制下单) ──────────────────┐
│ next_trade_plan (次日交易计划,主线) │
│ 每日一张:市场观点/计划标的/观察池/持仓处理 │
│ 用户对自己次日操作的主观主动规划 │
│ permission (风险评估卡 / 交易档位卡) │
│ 每日一张:风险档位/建议总仓上限/高风险动作 │
│ Agent 综合数据生成(仅作风险评估和建议参考) │
│ pretrade (盘中买入风险评估) │
│ 外部行情 + next_trade_plan + 风险评估卡 + 战法 │
│ → 四档建议(REJECT/WAIT/ALLOW_SMALL/ALLOW) │
│ 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/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
│
├─ 写入"明日风险评估卡 / 交易档位卡"(仅作风险评估摘要,不强制限制下单)
│ ├─ 写入/覆盖一张卡 → 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
│
├─ 导入/查询"战法库"(给盘中预审提供检查清单)
│ ├─ 导入 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/next-trade-plan?date=
│ ├─ 查今日风险评估卡 → GET /api/permission/today 或 /api/permission/: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=(critical=高风险信号 / warning / info)
│ 详情: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: [复盘, 我的私货]
---
# My Skill
## 何时用
...
## SOP
1. ...
2. ...
## 附件
- `templates/morning.md` — 晨会模板
- `scripts/snapshot.sh` — 一键拉行情快照
EOF
随后再往同目录下放 templates/、scripts/ 等附件即可。Agent 只要看到 has_attachments=true 就会用 list_skill_files / read_skill_file 去取。
✅ 最终自检清单(每次复盘任务结束前对照)
- 所有写入都带了
source: "agent:..."标识 - 写入失败时是否检查了 HTTP 状态码 / response.error
- 文字字段是否符合 content-quality.md 准则(含具体场景 + 触发条件 + 量化)
- 没有产生空话/口号式内容
- 是否处理了 insights 中的 recurring_mistakes(至少 1 条)
- 是否避免了重复写入(用 GET 先确认 / 用 PATCH 而非新建)
- 长文 journal 是否有 status=final(草稿请用 draft)
- 涉及金额/价格的数字是否准确(不要捏造)
- 盘中预审是否优先看
/api/next-trade-plan?date=,再结合风险评估卡,输出明确的 REJECT / WAIT / ALLOW_SMALL / ALLOW 建议等级 - 盘中预审是否匹配战法库,并把缺失确认/禁忌项写入预审依据
- 盘后是否调用
/api/violations?date=检查"风险信号"(critical 优先复盘) - 次日是否为持仓生成
/api/position-plan逐票操作建议 - 次日交易计划(next_trade_plan)是否覆盖:市场观点 / 计划标的 / 观察池 / 持仓处理
- 远程调用是否带
--noproxy '*'(在沙箱内部)
🚀 30 秒快速上手
BASE_URL=http://vzil1451410.bohrium.tech:50001
WEEK="2026-W17"
# 1. 触发周聚合
curl -X POST "$BASE_URL/api/review/weekly/$WEEK/aggregate"
# 2. 拉取本周聚合 + 历史洞察
curl -s "$BASE_URL/api/review/weekly?period=$WEEK"
curl -s "$BASE_URL/api/review/weekly/$WEEK/insights?lookback=4"
# 3. 写入周复盘文字(覆盖 plan 字段)
curl -X POST "$BASE_URL/api/review/weekly/$WEEK/plan" \
-H 'Content-Type: application/json' \
-d '{"narrative":"...","improvements":["..."],"playbook_updates":["..."],"next_actions":["..."]}'
# 4. 写一篇周记日志
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。