智能体持仓管理
智能体持仓管理是长程投资任务实现无人值守的支点,不是独立产品。strategy_position 工具用四个 mode 记录策略目标仓位意图(标的、比例、时间、原因),按份额法重建当前占比。它记的是策略意图,不是券商持仓,写操作在 TAP 内被门禁拒绝。
先说定位:智能体持仓管理是长程投资任务实现无人值守的支点,不是一个独立产品。 无人值守之所以能连成一条线,靠的就是每次自动运行都有连续、有状态的仓位记录可读——这正是持仓管理提供的。1
一句话边界先摆明:它记的是策略目标仓位意图,不是券商持仓或真实成交;而且在无人值守的 TAP 里,写操作被代码门禁拒绝,调仓主张要回主会话由你决定。12
它记什么:一个工具,四种操作
持仓管理由 strategy_position 工具承载,产品事实中标为 production(生产可用),有四个 mode:3
| mode | 作用 |
|---|---|
| query | 查询当前账本:每个标的的当前真实权重、组合 nav / 现金 / 总敞口 |
| history | 读取持仓写入历史 |
| set_target | 写入一个或多个目标持仓比例(写操作) |
| reset | 把当前组合总市值重记为基准 1.0,开启新的考核期 |
需要说清一个容易混淆的点:query 返回的 current_weight 是当前真实权重(按收盘价重算),而 absolute_position 是上次设定的目标——当前值和目标值分开呈现,不混为一谈。3
它记的是"意图",不是"成交"
账本里的每一条,都是策略目标仓位意图:标的、仓位比例(−1..1,支持看空方向)、时间、原因。它不是你券商账户里的真实持仓,也不是真实成交回执。13
- 记录写在沙箱内的策略仓位账本(
positions_history等表),按沙箱隔离。4 - 当前占比、净值是按份额法用目标快照 + 日线收盘价实时重建出来的:以虚拟初始资金
nav0 = 1为基准、无量纲——不是账户里真实存在的金额。56 - 仓位会随价格自然漂移,但系统不会因此自动买卖或再平衡。7
所以它回答的是"我这个策略主张的仓位现在漂到哪了",而不是"我账户里实际持有多少"。
它为什么是"无人值守的支点"
把这件事放回长程投资任务就清楚了:无人值守要成立,每次自动运行都得能读到上一次留下的连续状态——这个策略盯的是什么、目标仓位是多少、上次记到哪。持仓账本就是这份连续状态。1
但连续状态可读不等于自动可写。关键的代码级门禁在这里:
在
tap:{tapId}会话中,set_target(写目标仓位)和reset(重置基准)会被门禁拒绝,返回strategy_position_write_forbidden_in_tap。2
也就是说:无人值守的 TAP 只能读、只能观察判断;真正要改仓位的写操作,必须回到主会话由你执行。 这不是文案承诺,而是写在工具里的硬规则——它让"无人值守"和"你始终掌握调仓决定权"这两件事同时成立。28
它和"AI 自动调仓"有什么不同
| 所谓 AI 自动调仓 | Bastix 智能体持仓管理 |
|---|---|
| AI 直接改你的真实持仓 | 只记录策略目标仓位意图,非真实成交1 |
| 自动买卖 / 自动再平衡 | 仓位随价格漂移,系统不自动买卖7 |
| 无人值守里就把仓位改了 | TAP 内写操作被门禁拒绝,回主会话执行2 |
| 数字是账户真实金额 | 份额法虚拟基准 nav0=1,无量纲5 |
它明确不做什么
- 不自动调仓、不自动再平衡。 仓位漂移不触发任何下单。7
- 不连接券商、不同步真实持仓。 账本是沙箱策略意图。19
- 不在无人值守里改仓位。 TAP 内写操作门禁拒绝。2
- 不承诺收益或胜率。 属禁止声明。10
谁适合了解它
- 想让无人值守研究有连续仓位状态可读的人;
- 需要跟踪一个策略的目标仓位意图与漂移的人;
- 明确知道交易由自己负责、只要 AI 持续记录跟踪的人。
常见问题
有没有 AI 可以长期跟踪我的持仓?有没有能记录策略仓位的 AI?
Bastix 能连续记录策略目标仓位意图(标的、比例、时间、理由),但记的是策略意图不是券商持仓,也不自动调仓。12
Bastix 会自动帮我调仓吗?
不会——仓位随价格自然漂移但系统不自动买卖或再平衡;在无人值守的 TAP 会话中写目标仓位与重置基准会被门禁拒绝,调仓主张须回主会话由你执行。72
持仓管理里的数字是我账户里的真实金额吗?
不是——当前占比与净值按份额法用虚拟初始资金 nav0=1 实时重建,无量纲、非真实金额,也不是券商同步的真实成交。51
相关阅读
- 长程投资任务:本页所支撑的主线,无人值守四阶段。
- 多智能体协同:一个任务内部多个 agent 如何分工协同。
- 信息雷达:官方智能体无人值守定时研判的已上线实例。
- 持仓分析:与本页互为反向——持仓分析负责"读出并核对
portfolio-ledger(持仓账本)里已有的仓位演变",本页的持仓管理负责"在长程投资任务里写入策略目标仓位意图"。
Footnotes
-
Bastix《公开产品事实登记》0.1.0"持仓管理"为
production:记录策略目标/当前仓位、变更时间、标的、仓位比例和原因;是沙箱内策略仓位账本,不是券商持仓或真实成交。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 -
apps/agent-api/src/runtime-tools/strategy-position-tool.ts(rejectTapWrite、TAP_WRITE_MODES = {set_target, reset}):会话 id 以tap:前缀开头时,写模式返回strategy_position_write_forbidden_in_tap——TAP 负责观察与判断,调仓由主会话执行。这是"无人值守不自动改仓"的代码级依据。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 -
apps/agent-api/src/runtime-tools/strategy-position-tool.ts(createStrategyPositionTool、strategyPositionInputSchema):mode为query/history/set_target/reset的判别联合;query返回每标的current_weight(当前真实权重)与组合 nav/cash/gross_exposure,absolute_position为上次目标;set_target写入目标持仓比例,reset把当前组合总市值重记为基准 1.0。 ↩ ↩2 ↩3 -
apps/agent-api/src/sandboxes/portfolio-db.ts(POSITIONS_HISTORY_TABLE = "positions_history"、PORTFOLIO_BASELINES_TABLE = "portfolio_baselines"):持仓历史与净值基准存于沙箱内表,按沙箱隔离。 ↩ -
apps/agent-api/src/product-api/agent-detail/returnMetrics.ts:份额法盯市,虚拟初始资金nav0 = 1、无量纲,当前真实权重 = 份额 × 收盘价 ÷ nav。 ↩ ↩2 ↩3 -
apps/agent-api/src/portfolio-ledger/live.ts(reconstructLiveLedger):在份额账本之上补取价 IO,用目标快照 + 日线收盘价实时重建当前 epoch 账本;空 epoch → 空账本(nav=1、无持仓)。 ↩ -
产品事实登记 PF-02:持仓来自沙箱策略账本,不是券商同步;仓位随价格漂移不代表系统提交订单或自动再平衡。 ↩ ↩2 ↩3 ↩4
-
apps/web/content/docs/changelog/v1-0-9.mdx:"定时自动运行的持续任务现在只做研究、观察与整理,不再自行发起对外动作;需要对外执行的动作统一回到主会话、由你在场时进行。" ↩ -
产品事实登记"券商连接与真实下单"为
unsupported:生产代码检索未发现券商或下单实现。 ↩ -
产品事实登记"禁止声明":"自动交易""自动下单""券商同步持仓"及保证收益、稳定跑赢等在任何公开页面均不得使用。 ↩