Feiyu's Technical Blog
Notes on software, systems, and things I am learning.
Interactive study guide
LeetCode Java: Problems 1–500
Read the problem, reveal interview hints, compare solutions, and step through visual explanations alongside runnable Java code.
游戏设计文档 · 上古纪元
稳定模块接口、可见信息边界与交互流程:区分当前合同、待实现提案和已弃用设计。
这里记录现在有意义的设计。当前采用不等于整个系统已实现;每篇都写明范围和下一步。实验结果仍在下方的视觉理解系列中。
游戏智能体的模块边界:稳定接口,独立实现
Perception、Simulator、AI 如何各自改进;哪些变更必须共同讨论,以及设计文档怎样保持有效。
阅读设计 →Perception 薄观察接口:只传看见的证据
已实现的 v1 如何保存对象、数值、来源、坐标和时间,又如何防止未知值、旧帧和内部数据混进 AI。
阅读设计 →让 AI 主动查看界面:查询也要一步一步执行
待实现设计:将批量预览拆成真实的打开、选择、悬停和读取,区分观察、解释、决策与执行。
阅读设计 →
已弃用的设计 · 1 篇(保留原因与替代入口)
- B020:从游戏视频到可审核的场景与 UI 状态
跨模块总合同角色已被替代;保留场景分层设计,第 5 节另记 2026-09-10 的 Perception 内部流水线实测,不修改公开合同。
查看替代设计 →
Agents & Automation
Local models, tool-using agents, and practical information-extraction workflows.
Three Ways I Tried to Automate 1Point3Acres Daily Check-In and Quiz Answering
Direct Codex browser control, a supervised WebContentAgent library, and a fully local LLM workflow—what failed, what I use now, and what I am still exploring.
[2/2] How I Made a Codex-to-ChatGPT Bridge Verifiable
A local bridge sends one authorized request and brings back a checked answer. Its failures explain what message identity, durable state and realistic tests must get right.
[1/2] (Deprecated) How I Let Codex Talk to ChatGPT Through My Signed-In Chrome
The first prototype made the round trip work. Its failures taught me why browser mechanics need a smaller, testable home.
Local LLM + Agent for Web Information Extraction
A local agent architecture for semantic web extraction, browser automation, bounded model context, and durable task state.
游戏视觉理解 · 上古纪元
将竞技场截图转为结构化游戏状态:按证据类型分组,按理解顺序阅读。
方法因果边界 · 实验与验证
时序与回放的证据边界
区分当前像素观测、只看过去的时序证据与评估侧答案。当前模块合同请先看上方的游戏设计文档。
- 视频帧
- 可见 UI 状态
- 时序变化
- 可审核证据
方法B033 · 稳定窗口与短提示供样
从视频采集训练原图
96组五帧开发比较和完整视频试跑:允许待机动画,保留短提示候选;长区间去重仍有失败。
- 原视频
- 稳定与变化候选
- 可回看的原图
- 场景及元素标注
方法现在看到了什么画面?
识别当前场景
B021 用文字与空间规则识别页面;B022 研究文字不足时的加载页、战场等固定 UI。展开文章查看真实原图、全部命中类别和待审核样本。
- OCR 与位置
- 视觉补充
- 场景证据或拒识
方法这个页面里有哪些对象和数值?
理解场景内部的元素与字段
B023–B027 读取标题、图标、字段和面板;B028–B030 继续连接战场对象、左右 HUD、计时与日志证据。
- 已知场景
- 标题与图标
- 身份与可用性
- 英雄属性与时间
B023:把文字、图标与游戏身份连接起来
以英雄、主技能、子技能、宝物和生物五类真实画面,展示标题文字与图标槽位的关系,并公开未解析结果。
B024:从小标题到整屏数字,怎样选择离线 OCR
新增 24 张原图、15 段录像、1,018 个参考字段:比较三种 OCR 引擎与切块策略。精度优先,保留数量牌、行动条、计时与日志的漏检和错读。
B025:读懂战斗面板、属性、法术与日志
从给定区域读取战斗面板字段,保留首轮实验与控件审核;新增 OCR 检索后的 16 图、230 字段参考,与 B030 日志合计 20 图、276 字段,不冒充整图准确率。
B027:自动找到战斗面板,再读出属性
从全图 OCR 的名称、阶级和数字位置定位英雄、生物、魔法书与日志;比较固定坐标与锚点平移,并用其他录屏检查漏读与错误接受。
B028:把战场生物候选连接到同帧对象
把 B13 检测框交给 B12 身份分类器,在 8 张开发截图上生成 71 个候选;结果说明物种候选可用,但面板立绘、数量与实例绑定仍需单独判断。
B029:固定位置读战斗 UI——英雄 HUD、计时与行动条
行动条只检测顶部:保留 12 图训练和 36 图检查,新增 12 图、156 张稀缺类别卡片参考。累计覆盖 132/141 个 Arena 生物;身份未知仍保留位置。
B030:从战斗日志中提取可审核的行动证据
日志现在可以读出效果名称与记载时长:新增 35 条日志参考,并复用 1 条说明反例;35 条效果日志中 33 条结构化正确、2 条拒识。日志时长不等于当前剩余回合。
B034:读懂攻击、技能和法术的释放前预览
从三段录像核对50张原图,区分目标伤害、说明文字与实际日志;用全图OCR和两行数字位置做首次定位实验。技能预览仍缺数据。
B035:识别生物状态图标,还缺哪些数据?
实验暂缓:优先从战斗日志读取效果名称与记载时长。已有状态图标资源调研保留,只有日志覆盖不足时再评估视觉补充;没有训练结果。
方法B11 · 已知位置
固定裁图分类与拒识
假设目标位于已知 UI 槽位,单独研究身份分类和裁图是否可用。
- 已知槽位
- 固定裁图
- 分类与拒识
方法B12–B13 · 自由位置与遮挡
战场生物检测与身份
B12 记录生物框与身份,B13 比较目标检测器;B032 在不改身体框的前提下,单独定位数量牌、读取数字并建立空间关系。
- 完整战场截图
- 生物框
- 目录身份
方法B15–B16 · 已知几何与可见范围
网格位置与格子状态
B15 比较图像证据能否改善保存的网格标定;B16 在已知网格上读取高亮范围、障碍物与路径候选。
- 标定网格
- 格子位置
- 障碍物、范围与路径
方法位置未知 · 学习定位
学习式目标检测
不预先提供图标位置。检测器提出框,独立图鉴匹配器建议身份;目前证据来自小规模选择页试验。
- 完整截图
- 学习式检测器
- 框与身份
方法位置未知 · 代码生成候选
滑动窗口图标检测
用大量候选裁图搜索整屏,提取视觉特征,再与已知图鉴匹配。
- 完整截图
- 候选裁图
- 图鉴匹配
游戏概率与数据 · 上古纪元
根据已核对的游戏数据计算竞技场概率,说明抽取事件、版本与证据范围。