多智能体协同
多智能体协同是长程投资任务的支撑机制,不是独立产品。Bastix 把一个 TAP 拆成含多个 agent 节点的有向无环图,同层并行 fan-out、层间串行,每个节点一次 agent 生成,结论随运行结束回主会话消费。它服务研究分工,不是多个 AI 替你交易。
先说定位,避免误解:多智能体协同是长程投资任务的支撑机制,不是一个独立产品。 它解决的问题是——当一个投研任务需要"研究、风控、执行"等多种角色分工时,这些角色怎么在一次无人值守运行里被组织起来协同推进。1
它服务的是研究分工,不是"多个 AI 替你交易"。所有对外动作仍然回到主会话,由你决定。23
一个 TAP 内部长什么样:多节点的有向无环图
一个长程投资任务(TAP,可持续运行策略单元)在运行时不是"一个 AI 从头跑到尾",而是一张有向无环图(DAG):从 START 开始,经过多个 agent 节点(可承担研究、风控、执行等角色),到 EXECUTE 收尾。4
换句话说,你的一个研究任务,内部可以被组织成一支"分好工的小队",而不是一个全能单点。
它怎么协同:分层并行 fan-out,层间串行
真正的协同发生在运行时。Bastix 把这张图按执行层级推进:7
| 机制 | 含义 | 好处 |
|---|---|---|
| 同层并行(fan-out) | 同一层的多个 agent 节点用 Promise.all 并发执行 | 互不依赖的研究分支同时跑,不必排队 |
| 层间串行 | 下游层要等上游层跑完 | 下游节点能看到直接上游的输出,形成依赖链 |
| 单节点一次生成 | 每个 agent 节点 = 一次模型生成 | 每个角色独立产出、可分别追溯 |
这套"同层并行、层间串行"就是多智能体协同的实质:该并行的并行、该等待的等待,既快又保持依赖顺序。78
协同的结果去哪了:回主会话消费
多个 agent 节点协同跑完,结论不会"自己去做点什么"。运行结束时,任务把一个结论摘要回传给主会话:9
- 回传的是指针 + 结论摘要(
result_summary,抽取各节点结论文本、丢弃工具中间态并截断),让你的主会话被唤醒时当场拿到可消化的内容。9 - 完整结果留在该任务自己的运行记录里,需要深挖时按
run_id去读,不会把数 MB 的中间态塞回主会话。9
这正是边界所在:协同只负责把研究做深、做出结论;要不要据此行动,回到主会话由你决定。2
多个任务还能并存:盘前 / 盘中 / 复盘各一支
同一个智能体可以同时拥有多个相互独立的 TAP,按 tap_id 区分——比如"盘前情报""盘中跟踪""盘后复盘"各是一支独立的小队,各有各的触发时点。10
这让"多智能体协同"不只是一个任务内部的分工,也是多条研究线并行推进的组织方式。
它明确不做什么
- 不是"多个 AI 替你交易"。 协同服务研究分工;对外动作回主会话,交易由你决定。23
- 不自动下单、不连接券商。 属禁止声明与 unsupported 能力。1112
- 不保证每个节点结论正确。 每个节点是一次模型生成,可能出错,不构成投资建议。13
- 不承诺收益或胜率。 属禁止声明。12
谁适合了解它
- 想弄清 Bastix 长程研究底层到底怎么跑的进阶用户;
- 希望盘前/盘中/复盘多条研究线并行运行的人;
- 重视机制可核验、判断有代码依据的个人或团队。
常见问题
Bastix 一个投研任务内部是怎么多智能体分工的?
Bastix 把一个 TAP 拆成从 START 到 EXECUTE、含多个 agent 节点的有向无环图,同层用 Promise.all 并行 fan-out、层间串行,每个节点一次模型生成,各角色独立产出、可分别追溯。47
多个 AI Agent 能替我自动交易吗?
不能——多智能体协同只服务研究分工,跑完只把结论摘要回传主会话;要不要据此行动、任何调仓或交易都回主会话由你决定。23
Bastix 能同时跑多个研究任务吗?
能——同一个智能体可并存多个相互独立的 TAP,按 tap_id 区分,比如盘前情报、盘中跟踪、盘后复盘各是一支独立小队、各有触发时点。10
相关阅读
- 长程投资任务:本页所支撑的主线,研究→观察→持仓→复盘四阶段。
- AI投研智能体:多智能体协同所服务的差异化核心能力。
- 智能体持仓管理:协同运行如何有连续、有状态的仓位记录可读。
- 信息雷达:官方智能体无人值守定时研判公告资讯的已上线实例。
- 标的池管理:多标的批量、逐标的研判的组织方式。
Footnotes
-
Bastix《公开产品事实登记》0.1.0"TAP(可持续运行策略单元)与定时触发"为
production:策略定义、运行记录、启动/停止与调度链路存在;无人值守任务只做研究、观察和整理,不等于自动下单。 ↩ -
apps/web/content/docs/changelog/v1-0-9.mdx:"定时自动运行的持续任务现在只做研究、观察与整理,不再自行发起对外动作;需要对外执行的动作统一回到主会话、由你在场时进行。" ↩ ↩2 ↩3 ↩4 -
apps/agent-api/src/runtime-tools/strategy-position-tool.ts(rejectTapWrite):在tap:{tapId}会话中set_target/reset写操作被门禁拒绝(返回strategy_position_write_forbidden_in_tap)——TAP 只做观察与判断,调仓主张回主会话执行。 ↩ ↩2 ↩3 -
apps/agent-api/src/mastra/tap-workflows/tap-to-mastra-workflow.ts(interpretTapGraph/runGraphLevels)与tap-types.ts(TapWorkflowGraph):一个 TAP 被解释为从 START 到 EXECUTE、含多个 infer 节点的有向无环图,按executionLevels分层推进。 ↩ ↩2 -
apps/agent-api/src/mastra/tap-workflows/tap-normalize.ts(normalizeCanonicalRules):对 TAP 图做规范化,产出可执行的有向无环图并附诊断。 ↩ -
apps/agent-api/src/mastra/tap-workflows/tap-types.ts(TapPayload/TapWorkflowGraph):约束 TAP 载荷与工作流图形态。 ↩ -
apps/agent-api/src/mastra/tap-workflows/tap-to-mastra-workflow.ts(runGraphLevels):for (const level of graph.executionLevels)逐层执行,同层await Promise.all(level.map(...))并行 fan-out,层间串行,下游节点接收直接上游输出(directUpstreamOutputs)。 ↩ ↩2 ↩3 -
apps/agent-api/src/mastra/tap-workflows/tap-infer.ts:每个 agent 节点通过一次agent.generate(messages, ...)完成推理;持续任务单次推理有更充足的步数预算。 ↩ -
apps/agent-api/src/mastra/index.ts(onTapFinished/tap-run-finished信号):运行结束回传tap_id/run_id/status/finished_at与result_summary(summarizeTapResult只抽各节点结论文本、丢弃 metadata 与工具中间态并截断),作为对主会话的汇报;完整结果存于该 TAP 线程(tap_runs.thread_id),按run_id深挖。 ↩ ↩2 ↩3 -
apps/agent-api/src/mastra/prompts/capability-intros.ts(tap_manager):可构建、更新或并存多个 TAP 定义,按tap_id区分——新tap_id新建、复用同一tap_id更新,同一代理可同时拥有盘前/盘中/复盘等多个独立 TAP。 ↩ ↩2 -
产品事实登记"券商连接与真实下单"为
unsupported:生产代码检索未发现券商或下单实现;apps/agent-api/src/runtime-tools无下单工具。 ↩ -
产品事实登记"禁止声明":"自动交易""自动下单""券商同步持仓"及保证收益、稳定跑赢等在任何公开页面均不得使用。 ↩ ↩2
-
产品事实登记"智能体对话与工具调用"为
production:模型输出可能出错,不构成投资建议。 ↩