AI Agent 量化课程 · 第 1 课

看懂 AI Agent 怎么干活

从 0 拉起你的量化研究项目 —— 一句话需求,如何变成一份可验证的行情数据

课程结束时:你会拿到一份真实产出的 data/market/1d/SHSE.600000.parquet, 并且能说清 Agent 为什么按这个顺序读文件、调接口、给证据。
开场

两个学员,同一句话,两种结果

学员 A:帮我下载浦发银行的数据
学员 B:帮我下载浦发银行的数据
AI:先确认一下——是 SHSE.600000 吗?要日线还是分钟线?哪段日期?
AI:好的,正在写一个 download_stock.py 帮你下载……
同一句话、同样是 AI,为什么一个先反问、一个直接动手写脚本?差别会在结果上体现出来吗?
这节课结束时

你能做到

  • 区分 AI Chatbot 与 AI Agent(能不能真正调用工具)
  • 用"标的 + 频率 + 日期"三要素说清一个数据需求
  • 解释 Context Window、渐进式披露、工具调用这三个概念,以及它们怎么串起来
  • 预测一次真实任务里 Agent 会按什么顺序读文件、调接口,并和真实执行结果对照
今天不讲任何量化策略知识——下载一份日线数据,只是用来观察 Agent 工作方式的载体。
组块 A:Prompt / Context Window 组块 B:渐进式披露 / 工具调用 综合应用:真实案例复盘
开始之前 · 工具准备

认识你的工具:CodeBuddy IDE

AI coding 工具 = 一个内置了 AI Agent 的代码编辑器——本课程以 CodeBuddy 为例, 其他同类 AI coding 工具的核心结构和用法是一样的。

左侧:文件树
看到项目目录结构
+ 中间:编辑区
查看文件/代码内容
+ 对话面板
用自然语言提任务
开始之前 · 工具准备

打开本项目:一步确认

打开 CodeBuddy 打开文件夹,选择 QuantSpace 仓库所在目录 左侧文件树里能看到 skills/、strategies/、scripts/、AGENTS.md
验收标准:能在文件树里找到 AGENTS.md——这正是待会儿组块 A 要讲到的、Agent 接下来会自动读取的第一个文件。
组块 A · Prompt

Prompt:先把这一次要什么说清楚

Prompt 是用户在这一次交互中交给 AI 的任务说明——它只负责"这一次要什么数据"。

symbol:下载什么 + frequency:什么频率 + date range:哪段日期
帮我下载 SHSE.600000 从 20230101 到 20231231 的日线数据。

数据源、公共 API、保存格式、目录约定、验证方式——这些不需要每次写进 Prompt,项目长期维护它们。

组块 A · Context Window

Context Window:AI 的当前工作台

AI 当前这一刻能一起参考的信息范围,容量有限——就像修理机器时的工作台。

上下文太少
可能遗漏项目规则、误解接口
上下文太多
无关信息占空间、分散注意力、稀释关键规则

Context Window 不是项目硬盘——没被读取的文件不会自动出现在当前上下文里;工具调用返回的新结果,也会占用并更新当前上下文。

Prompt、AGENTS.mdSKILL.md

信息来源主要回答的问题作用时间本课示例
Prompt这一次要完成什么?当前任务symbol、日期、频率
AGENTS.md在这个项目里应该怎样工作?项目内长期适用uv run、优先复用 skills/
skills/ingest/SKILL.md这一类任务有哪些现成方法?相关任务触发时加载PandaDataClient、symbol 转换
一句话记忆:Prompt 说目标,AGENTS.md 说规矩,SKILL.md 说方法。

动手看看:工作台会不会被挤爆

不看笔记回答 · 自己动手写
「帮我下载浦发银行的数据」——
1. 这句话已经说清了什么?
2. AI 要完成任务还缺哪三类信息?
3. 把这三类信息补全,改写成一句可执行的 Prompt。
组块 B · 渐进式披露

渐进式披露:需要什么,再读什么

不是新的模型算法,而是一种上下文工程设计原则——先看到能判断相关性的少量信息,再按任务逐层深入。

层级先看到什么解决的问题
1 · 索引Skill 名称、简介、路径这项能力与当前任务有关吗?
2 · 说明SKILL.md 正文应该怎样完成这类任务?
3 · 细节references/、脚本这个具体情况还需要什么?
组块 B · 具体例子

套到今天的任务上:Agent 怎么找到这个方法?

还是这句 Prompt:「帮我下载 SHSE.6000002023010120231231 的日线数据」。

1 · 索引层:扫描 skills/*/SKILL.md 的 name+description → 判断 ingest(取数)、store(存数)都相关 2 · 说明层:分别打开这两份 SKILL.md 正文 摘出 fetch_market_data(...)DataManager.save_symbol(...)

注意:Agent 没有打开 skills/backtest/skills/ml/ 等和"下载一份日线数据"无关的正文—— 这就是渐进式披露"先索引、再按需读正文"在真实调用里的样子,不是一句抽象口号。

组块 B · 工具调用

Chatbot 与 Agent:差在能不能真正动手

Chatbot 主要生成回答;Agent 能通过工具调用读取外部信息、执行真实动作,再根据结果继续工作。

模型决定下一步 发出工具请求(调用哪个工具/什么参数) 环境真正执行 返回结果,模型据此决定下一步
不看笔记回答 · 独立完成
如果把「帮我下载 SHSE.6000002023010120231231 的日线数据」 发给一个遵守 QuantSpace 项目规则的 Agent,它会按什么顺序读取文件、调用哪些接口?
只写顺序清单,不需要写出具体参数。
综合应用 · 真实案例

一句话背后,项目真的做了什么?

学员:帮我下载 SHSE.600000 从 20230101 到 20231231 的日线数据。
下一页把这句话背后 Agent 真实经历的每一步拆开,逐步演示给你看。

动手看看:Agent 是怎么一步步做完的

真实产出证据

验收项实际结果
行数242
日期范围2023-01-03 ~ 2023-12-29
保存路径data/market/1d/SHSE.600000.parquet
索引eob,时间升序且唯一
OHLCV 质量检查PASS
现在拿出你刚才写的预测清单:顺序对上了吗?漏了哪一步?多写了真实执行里没有的哪一步?

今天学到了什么?

先补完这张图的两个空格,再用一句话总结——这也是今天要带走的课堂核心产出之一。

Prompt AGENTS.md 工具调用
用自己的话写一句话:今天我学到的最重要一件事是……(不能照抄大纲文字)
课后作业

本节课有两个作业

作业 1:补完这张图的两个空格,再用一句话总结。
Prompt AGENTS.md 工具调用
作业 2:自己通过和 AI 对话,来下载一份数据。
下节预告

从一个标的,到批量下载

第 2 课:四个期货品种、两个频率、一段日期——同样一句话讲清业务目标,Agent 如何自动拆成多个数据任务?

今天的 Prompt / Context Window / 渐进式披露 / 工具调用这套心智模型不会变,变的只是任务的复杂度。