-
Notifications
You must be signed in to change notification settings - Fork 163
11_Tech_Agent_Design
Wyckoff edited this page Jun 21, 2026
·
48 revisions
本文为 Wyckoff Trading Agent 设计与实现机制的导航索引。为提升阅读体验,原技术文档已拆分为 9 篇独立章节:
-
(一) 运行时 Loop 与 Provider 抽象
- CLI/TUI Agent 核心主循环与事件流。
- Provider 适配层抽象、滑动提示词缓存生命周期与度量。
-
(二) 工具调度与高风险确认
- 必需工具识别、高风险工具静默拦截与
ask_user二次确认机制。
- 必需工具识别、高风险工具静默拦截与
-
(三) 上下文双向切分与可恢复压缩
- 动态安全垫计算、双向切分与尾部依赖保护。
- 预裁剪、记忆刷写与原文归档流程。
-
(四) 记忆系统分层与四路召回
- L1/L2/L3 三层语义记忆模型。
- FTS5 全文检索、精确匹配、2-gram LIKE 与历史归档四路召回算法。
-
(五) Loop Guard 死循环拦截
- 重试纠偏与 Doom-loop 死循环检测算法。
-
(六) 后台长任务与通知唤醒
- 长任务注册、并发调度与
[SYSTEM NOTIFICATION]唤醒机制。
- 长任务注册、并发调度与
-
(七) Sub-Agent 委派编排
- Supervisor 委派模式、白名单治理、预算裁剪与 fallback 降级。
-
(八) Scratchpad 运行追踪与可观测性
- 会话 turn 级别运行轨迹 JSONL 结构及可观测性。
-
(九) 多端应用适配 (Web & MCP & Skills)
- Web Agent 面向 CF Pages 的轻量化实现。
- MCP Server Tier 1-3 权限设计与 FastMCP 封装。
- Skills / Prompt 模板延迟加载与故障切换。
本页记录 WyckoffAgent 当前代码中的 Agent(智能体)工程设计,重点解释 CLI(命令行)/ TUI(终端图形界面)里的完整 Agent Runtime(智能体运行时),以及 Web(网页端)、MCP(模型上下文协议)如何复用工具层但采用不同运行时。
| 英文术语 | 中文释义 |
|---|---|
| Agent | 智能体:能根据目标自主选择工具、多轮执行并输出结果的程序 |
| Runtime | 运行时:负责模型调用、工具执行、循环控制、上下文压缩和追踪 |
| CLI | 命令行界面:通过终端命令使用系统 |
| TUI | 终端图形界面:在终端里显示类似 GUI 的交互界面 |
| Web | 网页端:浏览器里的在线读盘室 |
| CF Pages | Cloudflare Pages 边缘页面:承载 Web 前端和边缘函数 |
| MCP | 模型上下文协议:给 Claude Code、Cursor 等外部 Agent 暴露工具的协议 |
| Provider | 模型适配层:把不同模型供应商统一成同一套调用接口 |
| Tool Schema | 工具定义:告诉模型工具名、用途和参数格式 |
| Tool Call | 工具调用:模型决定调用某个工具并给出参数 |
| ReAct | 推理-行动循环:模型先推理,再调用工具,观察结果后继续推理 |
| Loop Guard | 循环守卫:运行时强制模型补调必须工具的保护机制 |
| Doom-loop | 死循环:模型反复用同一参数调用同一工具 |
| Scratchpad | 运行追踪文件:记录一轮对话中的模型、工具、压缩和最终结果 |
| Sub-agent | 子智能体:只负责某类任务的小 Agent |
| Context Window | 上下文窗口:模型一次请求能容纳的最大上下文长度 |
| Compaction | 上下文压缩:把旧对话压成摘要,给后续轮次腾空间 |
| Memory | 记忆:跨会话保留的稳定偏好和决策逻辑 |
| Fallback | 故障切换:主模型失败时自动换备用模型 |
| Reasoning | 推理内容:部分模型输出的内部思考过程 |
| Token | 令牌:模型上下文长度和计费的基本单位 |
| SSE | 服务端事件流:流式响应的一种传输格式 |
| Daemon Thread | 守护线程:后台线程,进程退出时自动回收 |
| System Prompt | 系统提示词:约束模型行为的顶层指令 |
| Skill | 技能模板:预设的一类用户任务提示 |
WyckoffAgent 不是单一入口,而是三条通道共享同一套金融能力:
| 通道 | 入口 | 运行时 | 对话/工具编排 | 适合场景 |
|---|---|---|---|---|
| React Web(网页端)/ CF Pages(Cloudflare Pages 边缘页面) | web/apps/web/ |
Vercel AI SDK(Vercel 的 AI 工具包)streamText(流式文本生成) |
Web 端独立工具循环,stopWhen(stepCountIs(10))(达到 10 步就停止) |
在线读盘室、浏览器用户 |
| CLI(命令行)/ TUI(终端图形界面) | wyckoff |
cli/runtime.py::AgentRuntime |
完整 ReAct loop(推理-行动循环)、记忆、上下文压缩、后台任务、sub-agent(子智能体) | 本地深度投研和工具型 Agent |
| MCP Server(模型上下文协议服务) | wyckoff-mcp |
FastMCP stdio(标准输入输出通信) | 无内置对话 loop(循环),只暴露工具 | Claude Code / Cursor 等外部 Agent 调用 |
共享层是 agents/chat_tools.py 和核心分析引擎;不同入口只是在运行时、权限、展示和状态管理上分化。
关键边界:
- CLI/TUI 是最完整的 Agent Runtime(智能体运行时):负责 provider(模型适配层)调用、工具执行、并发分批、上下文压缩、Loop Guard(循环守卫)、doom-loop(死循环)检测、scratchpad(运行追踪文件)、后台任务和 sub-agent(子智能体)。
-
Web 不复用
AgentRuntime:它使用web/apps/web/src/lib/chat-agent.ts中的 Vercel AI SDK(Vercel 的 AI 工具包)工具循环,保留流式输出、工具调用、上下文本地摘要和 reasoning(推理内容)透传,但不接入 CLI 的 SQLite(本地轻量数据库)记忆、scratchpad(运行追踪文件)和 sub-agent(子智能体)。 -
MCP 不具备会话智能:
mcp_server.py只是把 Wyckoff 能力注册成 MCP tools(模型上下文协议工具),推理和多轮编排由外部客户端负责。
- Home
- 01_Product_Overview
- 02_Finance_Wyckoff_Method
- 03_Finance_Quantitative_Metrics
- 04_Finance_Sector_Rotation_Regime
- 05_Finance_Risk_Management
- 06_Backtest_Methodology
- 07_Backtest_Simple_vs_Compound
- 08_Research_Strategy_Decay
- 09_Tech_Architecture
- 10_Tech_LLM_RAG_Integration
- 12_Tech_Actions_Operations
- 13_Tech_Python_Engineering