用WorkBuddy和MCP协议把量化回测压缩到一句话
最近我把量化这条链路彻底换了个玩法用 WorkBuddy 当 AI 操作台把行情数据和回测引擎全部封装成 MCP 工具之后你只需要用一句话说清楚“要哪只股票、什么周期、跑什么策略”WorkBuddy 就会自己去拉数据、写策略、执行回测最后把收益曲线和绩效指标摆在你面前。之前这一套流程我需要打开编辑器、写脚本、改参数、盯输出至少半小时起步现在熟练之后从对话到拿到结果基本在一分钟内。这篇文章就围绕这条链路展开不光讲 WorkBuddy 和 MCP 的配置方式还把数据服务、回测引擎、常见坑位都拆开讲适合已经会一点 Python、但不想再被繁琐流程绑架的量化爱好者。1. 一句话跑通量化到底是怎么回事1.1 WorkBuddy、MCP、量化脚本三个角色初看这个标题很多人会以为“一句话跑通量化”是玄学。其实拆开看底层只有三个角色WorkBuddy 是那个能听懂人话并执行任务的 AI 工作台MCP 是连接工作台和外部工具的标准化协议量化脚本则是真正干活的本地程序。我的做法是先把行情获取、策略回测这些能力写成一个个 MCP 工具注册到同一个服务里然后让 WorkBuddy 去调用它们而不是让 AI 直接靠记忆编造数据或拼凑代码。MCP 全称是 Model Context Protocol本质上是给 AI 开了一组“远程函数接口”。AI 不直接执行 Python 代码它只负责理解你的自然语言把意图拆解成一次或多次工具调用。比如你说“取茅台最近一年的日线数据”WorkBuddy 会看到我这里注册了一个 get_kline 工具于是自动填好 600519、20240101、20241231 这些参数去调用拿到 JSON 之后再继续下一步。这种模式和过去最大的区别在于AI 不再只是写代码给你看它自己就能调工具、跑程序、拿结果。1.2 一次完整会话的链路演示我在本地跑通的第一条完整链路是这样的先有一个名为 quant-server 的 MCP 服务常驻运行里面注册了 get_kline 和 run_backtest 两个核心工具然后打开 WorkBuddy在对话里输入一句话“获取 600519 最近一年的日线数据用 5 日和 20 日均线金叉死叉跑回测初始资金 10 万输出年化收益率和最大回撤。”WorkBuddy 收到这句话后会先通过 MCP 协议发现可用工具列表然后调用 get_kline 拿到行情数据再调用 run_backtest 执行回测。在我这边的实测里整个过程大概十几秒中间不需要我手动复制任何文件。如果换成以前的工作流我得先写一个数据脚本再写一个回测脚本还要处理日期格式、复权方式、结果输出等等人和机器的工作量完全不在一个量级。核心思路就是把重复劳动标准化成工具AI 只做调度和解读。2. 数据服务自己写一个MCP量化服务器2.1 技术选型FastMCP AkShare 本地缓存要接入 WorkBuddy前提是本地有一个能跑起来的 MCP 服务器。我建议直接用 Python 生态里的 FastMCP 封装工具它把 stdio 通信、工具注册、参数校验都处理好了我们只需要写几个函数。数据源我选的是 AkShare免费、无需 token、覆盖 A 股和港美股主要行情用起来非常方便回测部分先接 Backtrader后续想换成向量化引擎也容易。有一点要提前想清楚MCP 服务本身只是个调度壳真正的时间开销在数据网络请求和回测计算上。所以我会在服务端加一层本地缓存第一次从 AkShare 拉到日线数据后存成 Parquet 文件后续再请求相同股票和区间时直接读缓存。这样 AI 反复调错参数时不会每次都去请求远程接口既快又不容易被限流。用大家熟悉的一句话类比远程数据源是仓库本地缓存是货架AI 是店员先把常用货搬到货架上拿货自然快。2.2 先写一个能拉K线的工具先用最小代码实现 get_kline 工具。创建 quant_server.py内容大致如下from mcp.server.fastmcp import FastMCP import akshare as ak import pandas as pd import json mcp FastMCP(quant-server) mcp.tool() def get_kline(symbol: str, start_date: str 20240101, end_date: str 20241231, adjust: str qfq) - str: 获取A股日线行情返回JSON字符串。 symbol: 6位股票代码 adjust: qfq前复权 / hfq后复权 / 不复权 df ak.stock_zh_a_hist( symbolsymbol, perioddaily, start_datestart_date, end_dateend_date, adjustadjust, ) if df is None or df.empty: return json.dumps({error: no data}, ensure_asciiFalse) df df.rename(columns{ 日期: date, 开盘: open, 收盘: close, 最高: high, 最低: low, 成交量: volume, }) df df[[date, open, close, high, low, volume]] return df.tail(500).to_json(orientrecords, force_asciiFalse) if __name__ __main__: mcp.run()这段代码看着简单但有两个细节需要注意。第一函数定义里的 docstring 不要省略WorkBuddy 这类客户端判定工具用途时主要依赖工具名、参数名和函数说明你写得越清晰AI 自动填参就越准。第二返回结果我用 tail(500) 做了截断既保留最近一年大部分日线数据又避免单次返回内容撑爆上下文窗口。实际如果是一年 A 股日线大概 240 个 bar500 足够覆盖如果你要更长周期建议改成服务端分页参数。2.3 工具列表的权限与裁剪很多人在 MCP 服务里会忍不住把所有函数都注册成工具我劝你不要这么做至少不要随便把“执行任意命令”“写入任意文件”这类能力暴露给 AI。原因很简单MCP 协议本身只负责传递调用请求不负责做权限判断AI 一旦被污染或上下文注入就可能调用到一个有破坏性的工具。我的原则是给量化场景暴露刚需的三个工具get_kline 拿行情、get_stock_list 拉股票列表、run_backtest 跑策略其他操作都通过独立脚本完成。要把工具划分清晰最好的办法是像设计内部 API 一样对待每个函数。先想清楚输入是什么、输出是什么、边界条件是什么再注册到 MCP 里。比如 get_stock_list 可以返回全部 A 股代码和简称但不要把财务指标、实时 tick 都塞进去因为回测真正需要的只是干净的日线序列。少一个工具AI 就少一分“胡思乱想”的空间调用链路也更稳定。2.4 启动服务器并自检MCP 服务默认通过标准输入输出和客户端通信所以启动方式很简单pip install mcp akshare pandas pyarrow python quant_server.py启动时有个非常容易踩的坑不要在工具函数之外打印任何无关内容包括调试日志、进度条、print 字典之类的。因为 stdio 通道被 MCP 协议占用任何多余的输出都会污染协议流轻则工具调用失败重则整个连接直接挂掉。想看日志就把日志写到文件或者用 logging 库输出到 stderr而不要去动 stdout。启动之后可以用官方提供的 mcp 调试工具自检一下或者直接在 WorkBuddy 里查看工具列表。如果能看到上面注册的两个函数就说明服务端正常如果看不到优先检查 Python 环境是否是启动 WorkBuddy 时用的同一个环境。这个自检步骤虽然简单但能帮你省下后面排查的不少时间。3. 在WorkBuddy里接入MCP并“调教”调用方式3.1 配置文件路径与写法WorkBuddy 这类支持 MCP 的客户端通常都支持通过一个 JSON 文件声明要加载哪些 MCP 服务。我这边用的是全局配置方式右键打开配置文件后添加一段内容{ mcpServers: { quant: { command: python, args: [D:/workspace/quant_server.py], env: {} } } }配置里的关键字段就三个command 指定启动命令args 指定服务器脚本路径env 可以用来注入环境变量。这里我特别想提醒一句脚本路径尽量写绝对路径。我第一次配置时图省事写了个相对路径结果 WorkBuddy 工作目录一变MCP 服务就直接起不来了。改完配置之后需要重启 WorkBuddy 或重新加载 MCP工具列表刷出来才算连接成功。如果你把项目从一台电脑搬到另一台电脑配置文件里最容易出问题的是路径和 Python 环境。建议在项目根目录放一个 requirements.txt新电脑上先创建虚拟环境、安装依赖再启动 MCP 服务。很多所谓的“MCP 连不上”问题换个角度看其实就是“环境和路径没对上”。3.2 自然语言调用与参数补全连接成功之后WorkBuddy 会拿到工具的函数签名、参数说明、docstring。这时与其说是“让 AI 工作”不如说是“让 AI 做接口编排”。我实际测试下来它的参数补全能力比我想象中强比如我只说“茅台”它可能不确定具体代码所以我一般会在第一次对话里说“茅台 600519”之后 WorkBuddy 会记住这个映射后面再说“茅台”也能自动关联到 600519。为了减少歧义建议在工具描述里把参数边界写清楚比如日期格式统一用 YYYYMMDD复权参数只接受 qfq、hfq、空字符串三种取值。AI 对这些约束的理解能力取决于描述是否精确。我之前的 get_kline 里日期参数没写格式结果 WorkBuddy 有一次自动传入了 2024-01-01 这种带横杠的格式AkShare 直接报错。后来我在 docstring 里明确标注“日期格式为YYYYMMDD”问题就很少再出现。3.3 一句话实操从拉数据到看结果现在做一次完整实操。我在 WorkBuddy 对话框输入“用 quant 服务获取 600519 最近一年日线数据跑双均线回测快线 5 日慢线 20 日初始资金 100000输出收益曲线要点和最大回撤。” 实际执行时WorkBuddy 会先列出我的 MCP 工具然后调用 get_kline 拿到数据再调用 run_backtest 跑回测。因为服务端已经内置了双均线策略它只需要把参数传进去即可。第一次跑的时候我发现它返回的是一段包含年化收益率、总收益率、最大回撤、交易次数等字段的 JSON。说实话这个输出已经挺完整但我还是让它额外画了一张简易净值曲线图。WorkBuddy 没有直接绘图能力但它知道可以用 matplotlib 把结果写到本地 PNG 文件然后再展示出来。整个过程仍然是一句话的事它自己会完成“数据获取、策略执行、结果落盘、文件展示”这一整串动作。3.4 调用失败时如何观察MCP日志再稳定的工具也有翻车的时候。第一次实测时WorkBuddy 提示“工具调用失败not a valid MCP tool name”我查了半天才发现是配置文件里的服务名和实际脚本里 FastMCP 的名称不一致。WorkBuddy 的日志里会把实际加载到的工具名列出来对比一下就能发现差异。如果日志里连工具列表都看不到那大概率是服务没启动成功回到命令行直接运行python quant_server.py看有没有报错。还有一次 AkShare 临时接口挂了get_kline 返回的空 DataFrame 被我包装成了 {error: no data}。这时候 WorkBuddy 不会说“数据源坏了”它只会告诉你“没有拿到数据”。所以工具函数里一定要做好异常捕获和错误信息返回把“数据为空”“接口超时”“参数非法”都明确写进返回体。这样 AI 拿到错误后还能尝试修正或告诉你原因而不是把失败了当成一次普通空结果继续往下跑。4. 回测引擎让MCP直接托管策略运行4.1 为什么不在MCP里写一大套回测框架回测引擎的接入方式有两种一种是把 Backtrader 写成一个完整工具丢给 MCP另一种是只在 MCP 里放一个策略执行入口。我的建议是选后者。原因是 MCP 会话本身不擅长承载长任务状态尤其是几千行策略日志和中间变量如果全部塞进工具返回信息里很容易把上下文窗口撑爆。更合理的设计是MCP 服务只接收策略参数内部调用本地回测脚本最后把压缩后的绩效摘要返回。拿双均线举例MCP 工具 run_backtest 的职责不是复刻一个回测平台而是把“拿数据、建引擎、加策略、跑结果”这几步串起来。这样既能让 WorkBuddy 通过一句话触发回测又不会让 AI 被大量中间计算干扰。如果你想换策略修改的是本地脚本而不是每次都要让 AI 现场写一套新回测代码维护成本会低很多。4.2 用Backtrader实现双均线策略在 quant_server.py 里增加 run_backtest 工具核心代码框架如下import backtrader as bt class MaCross(bt.Strategy): params ((fast, 5), (slow, 20)) def __init__(self): self.fast_ma bt.ind.SMA(periodself.p.fast) self.slow_ma bt.ind.SMA(periodself.p.slow) def next(self): if not self.position and self.fast_ma[0] self.slow_ma[0]: self.buy(size100) elif self.position and self.fast_ma[0] self.slow_ma[0]: self.close() mcp.tool() def run_backtest(symbol: str, start_date: str 20240101, end_date: str 20241231, fast: int 5, slow: int 20, cash: float 100000.0) - str: 对指定股票运行双均线策略回测返回绩效摘要。 df load_kline_from_cache_or_api(symbol, start_date, end_date) if isinstance(df, str): return df cerebro bt.Cerebro() data bt.feeds.PandasData(datanamedf) cerebro.adddata(data) cerebro.addstrategy(MaCross, fastfast, slowslow) cerebro.broker.setcash(cash) cerebro.broker.setcommission(commission0.0003) cerebro.addanalyzer(bt.analyzers.DrawDown, _namedd) cerebro.addanalyzer(bt.analyzers.AnnualReturn, _namear) results cerebro.run() strat results[0] stats { final_value: round(cerebro.broker.getvalue(), 2), max_drawdown: round(strat.analyzers.dd.get_analysis()[max][drawdown], 2), annual_return: round(strat.analyzers.ar.get_analysis().get(len(df), 0), 4), trade_count: len(strat.analyzers), # 这里仅示意实际用TradeAnalyzer更准确 } return json.dumps(stats, ensure_asciiFalse)代码里有个细节要提醒我没有在回测过程中让 AI 逐步看每个 bar 的持仓只返回绩效摘要。这样处理既能快速得出结论又不会让 MCP 返回体变成几千行难读的日志。如果你真的需要逐日净值可以在脚本里把净值数据存成 CSV把文件路径返回给 WorkBuddy让它去读取展示而不是直接把大对象扔回对话。4.3 回测结果的返回格式设计MCP 工具的返回值本质上就是一个字符串但怎么组织这个字符串决定了 AI 后续能做什么。我常用的做法是统一返回 JSON 对象里面包含“状态、摘要、附加信息”三层结构。状态字段标记 success 或 error摘要字段放年化收益、最大回撤、交易次数等核心指标附加信息字段放 CSV 路径、净值曲线图片路径、参数说明等。这样做的好处是 WorkBuddy 拿到 JSON 后可以非常自然地把摘要在对话里展示给用户还可以根据附加路径继续绘图或读取详细数据。如果返回的是随口乱写的自然语言文案AI 再想进一步操作就得重新解析容易出错。我在实践中还加了一个约定日期区间超过半年的在摘要里继续返回 tail 部分数据区间较短时返回全量净值曲线。这套规则能让对话体验和细节保留做到平衡。4.4 从单股回测扩展到多股与参数扫描单一股票跑通之后很自然的下一步就是多股回测。比如你想同时测试沪深 300 里的多只股票可以使用 Backtrader 的多个 data feeds或者循环调用 run_backtest 然后汇总。我建议在 MCP 工具里新增一个 run_multi_backtest 工具接收股票代码列表循环执行单股回测最后返回一个汇总表格的结构化数据。参数扫描也是一样。双均线策略的快线和慢线参数范围完全可以交给 WorkBuddy 去组合比如它自己枚举 fast 在 3、5、10、15slow 在 20、30、60 之间跑网格然后把每组参数对应的年化和回撤列出来。实测下来这种模式跑一个几十组的小网格很快但要注意别在对话里一次性铺开太多表格只展示最优的前五个其余写进本地结果文件。这样既不浪费上下文又能保留全部计算数据供后续分析。5. 常见问题与避坑实录5.1 MCP工具列表为空或连接超时这是接入时遇到最多的问题没有之一。工具列表为空大概率不是 WorkBuddy 的问题而是 MCP 服务没有启动成功。按下述顺序排查最快先确认路径是否正确再确认 workbuddy 启动时是否使用了同一个 Python 环境最后看命令行单独运行脚本有没有报错。我遇到过因为 AkShare 版本过旧导致接口调用失败服务启动后 Flare 但工具注册不完整升级依赖后就恢复了。连接超时则多发生在数据请求环节。MCP 协议里对单个工具调用本身没有特别短的硬超时但 AI 客户端一般会设置一个请求等待上限。如果你的首次请求就要从 AkShare 拉三年全市场数据大概率会等到超时。解决方案是在服务端做两层处理先拉缓存缓存没有就先返回“数据准备中”的中间状态用异步方式把数据缓存好再让 WorkBuddy 重试。我在实际项目里很少真的用异步因为加了本地缓存后大多数请求都在 200 毫秒内返回根本触发不了超时。5.2 回测结果“虚高”未来函数与复权我在刚跑双均线策略时发现年化收益高到离谱后来定位到两个问题一个是未来函数一个是复权方式选择错误。所谓未来函数就是策略在计算当天信号时不小心用到了当天晚上才知道的数据比如把当天收盘价同时拿来计算信号和成交价这会让回测看起来“未卜先知”。Backtrader 的 next 方法天然会在当前 bar 结束时触发但如果你在指标计算中没有做 shift或者使用了未来一段窗口的平均值就会偷看未来。复权问题更加隐蔽。很多人拉数据时用不复权而股票如果有分红送股历史价格会出现跳空导致均线信号失真。我一般用前复权数据进行回测但要注意前复权的历史价格会随最新价格变动而变化换一个数据截止日同一历史信号可能不完全一样。这种细节不是 MCP 能替你解决的必须在数据层做好标记。WorkBuddy 确实让调用变简单了但策略逻辑的口子还得自己把关我后来在工具描述里强制指定 adjust 默认值为 qfq并让 AI 明白复权参数的选择会直接影响结论。5.3 数据量一大就卡上下文与表格渲染如果 get_kline 返回全量分钟数据单次返回可能上千行这会让 WorkBuddy 的对话窗口不堪重负甚至出现明显的卡顿。很多人开发时喜欢一次把数据全丢给 AI 看这其实是个误区。AI 并不需要真的读完整张表它只需要拿到足够判断的数据结构和几条最新样本真正的计算都放在本地脚本里进行。所以服务端最好默认只返回摘要和最近的若干行完整数据落到本地文件再把文件路径给 WorkBuddy。这个思路和前端里“表格大数据卡顿优化”很像。与其把百万行数据直接绑定到表格控件里不如分页、懒加载、聚合展示。MCP 工具返回数据也是一样能少传就少传能传文件路径就别传全文。如果你后续用 WorkBuddy 展示回测结果也建议只展示绩效指标和净值曲线图而不是把所有交易明细都塞进对话里。5.4 从入门到更换电脑的配置迁移WorkBuddy、MCP Server、量化项目放一起最麻烦的是换电脑。我的项目结构一般是D:/workspace/quant-project/ ├── quant_server.py ├── requirements.txt ├── config/ │ └── mcp.json ├── data_cache/ └── reports/迁移时只要把整个目录拷到新电脑重新创建虚拟环境并安装依赖再把 mcp.json 里的绝对路径改一下即可。之前我图省事直接把 WorkBuddy 的全局配置一起备份恢复结果因为路径前缀不同MCP 服务全挂。后来我把配置里可变的路径都抽成相对项目根目录的写法只在需要的地方拼接绝对路径迁移成本降了很多。这也算是一个从入门到进阶的必踩坑位。5.5 其他值得注意的小坑量化经常涉及“主力大资金指标”“资金全景指标源码”这类玄学策略我建议不要指望 MCP 帮你作弊式选取未来信号MCP 只是工具层策略逻辑必须靠谱。另外如果要做交易比赛或实盘模拟还要特别注意数据时区问题。AkShare 返回的日期是北京时间而本机如果是 UTC直接转时间戳会偏移 8 小时。虽然后回测只关注日期粒度但一旦到分钟级别或者涉及隔夜持仓时区问题就会被放大。6. 让这套流程更稳的一点个人经验6.1 数据缓存永远比重复请求划算我在 quant-server 里统一加了一个缓存函数先查本地 Parquet 文件文件存在且日期覆盖完整就直接读取否则再请求 AkShare 并回写文件。这个改动看起来不起眼但实际运行后把数据环节从平均 2 秒压到了 50 毫秒以内。更重要的是它让 WorkBuddy 反复调参时不那么依赖外网回测的一致性也好很多。对于每天数据量很大的用户甚至可以写个定时脚本提前把当日行情下载到缓存WorkBuddy 白天调用时就完全不碰远程接口。6.2 把“思考”留给AI把“计算”留给本地一开始我也尝试让 WorkBuddy 在每个工具调用里反复读取数据、计算指标、做判断结果发现上下文消耗非常快而且 AI 面对大量数值时很容易“一本正经地胡说”。后来我把计算密集型的部分全部下沉到本地脚本MCP 工具只做黑盒调用你传参数它返回结论。AI 的角色变成理解意图、编排调用、解读结果这正好是它最擅长的事情。整套系统也因此稳定很多。6.3 给自己留一条手动复核的通道WorkBuddy 的自动化让我产生过一种错觉回测跑出高收益就说明策略可行。直到有一次它跑出一个年化 200% 的策略我很兴奋结果手动检查数据时发现收盘价复用出问题。所以我的项目里始终保留一个 generate_report.py 脚本每次 MCP 回测完WorkBuddy 会顺便调用它生成一份完整报告包含数据区间、复权方式、参数网格、交易明细和净值曲线。自动化负责效率手动复核负责底线两者缺一不可。就我个人的实际体验来说用 WorkBuddy 调 MCP 做量化最大价值不是“省去了写代码”而是把量化研究里那些琐碎又容易出错的粘合工作全部自动化了。数据获取、缓存、回测执行、结果汇总原本需要来回切换的五六件事现在都收敛成一个对话入口。对已经有一定 Python 基础的量化爱好者来说这套流程非常值得搭一套即使你现在只做手工交易也不妨先用它跑一跑历史数据看看策略在不同市场环境下到底会怎样表现。最后再分享一个低成本小技巧刚开始不要追求工具数量多先把“一个数据工具加一个回测工具”跑通比一次性上一堆花哨功能有用得多。

相关新闻

Elasticsearch 用户角色管理实战:从权限设计到避坑指南

Elasticsearch 用户角色管理实战:从权限设计到避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 9:05:05 阅读更多 →
Windows免安装CMake:zip包解压即用与多版本共存实战

Windows免安装CMake:zip包解压即用与多版本共存实战

简介:这是 CMake 3.27.9 在 Windows x86_64 平台下的官方发行压缩包,适合需要在 Windows 环境使用或学习 CMake 构建系统的开发者。压缩包内共 2000 个文件,其中 1175 个 txt 文本文件与 825 个 html 帮助文档;html 部分涵盖 cmak…

2026/10/13 9:05:05 阅读更多 →
多智能体+行业工作台:让AI真正嵌入业务系统

多智能体+行业工作台:让AI真正嵌入业务系统

1. 项目概述:这不是一个“AI插件”,而是一套可嵌入业务毛细血管的智能协作系统“开源了!给业务装上 AI 团队:MyCoWork 的多智能体与行业工作台”——这个标题里藏着三个被多数人忽略但极其关键的信号词:“装上”、“AI…

2026/10/13 9:05:05 阅读更多 →

最新新闻

门窗隔声性能实测:数据揭示选购与安装关键

门窗隔声性能实测:数据揭示选购与安装关键

1. 门窗隔声性能实测背景与意义上周帮朋友测试他新装修的录音棚时,发现一个有趣的现象:同样标称隔声量的门窗,实际测试结果差异能达到10dB以上。这促使我系统性地整理了手头积累的84组门窗隔声实测数据,希望用真实数据打破一些行业…

2026/10/13 9:54:05 阅读更多 →
还在为抓不到B站数据发愁?这份B站API使用教程帮你一键搞定视频、用户与弹幕

还在为抓不到B站数据发愁?这份B站API使用教程帮你一键搞定视频、用户与弹幕

还在为抓不到B站数据发愁?这份B站API使用教程帮你一键搞定视频、用户与弹幕 想批量拉取B站热门视频做数据分析,却卡在接口鉴权和参数加密上?想快速查清一位UP主的投稿和粉丝画像,却翻遍网页找不出一条稳定的数据通道?…

2026/10/13 9:54:05 阅读更多 →
MiniOB源码精读:从B+树到缓冲池,掌握数据库内核核心链路

MiniOB源码精读:从B+树到缓冲池,掌握数据库内核核心链路

简介:MiniOB是一款由OceanBase与华中科技大学联合开发的数据库内核入门工具,面向零基础数据库学习者的C源码项目包。它通过简化实现帮助读者快速理解数据库内核各模块的职责与关联,并训练设计高效SQL。资源包共363个文件,压缩包仅…

2026/10/13 9:54:05 阅读更多 →
《Agentic Design Patterns》第 16 章导读:资源感知优化(Resource-Aware Optimization)

《Agentic Design Patterns》第 16 章导读:资源感知优化(Resource-Aware Optimization)

《Agentic Design Patterns》第 16 章导读:资源感知优化(Resource-Aware Optimization)本文是对开源书籍《Agentic Design Patterns》第 16 章的解读与导读,内容忠实呈现原文,并附个人思考。 原书在线阅读:…

2026/10/13 9:54:05 阅读更多 →
列表页面从接口设计到状态管理:彻底搞懂不卡顿的列表实现

列表页面从接口设计到状态管理:彻底搞懂不卡顿的列表实现

列表页面太常见了,常见到我都懒得把它当做一个“项目”来看。但说实话,这些年我经手的电商后台、社交 App、数据可视化平台里,真正说得上“稳定、不卡、状态不混乱”的列表页面,比例并不高。很多人对“列表页面的实现”的理解就是…

2026/10/13 9:54:05 阅读更多 →
WPF/WinForms上位机AI代码生成:把Codex auth.json改到TaoToken的串口通信实战

WPF/WinForms上位机AI代码生成:把Codex auth.json改到TaoToken的串口通信实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 9:53:03 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →