WWW.YOUINFO.SITE
标签聚合 search

/tag/search

LinuxDo 最新话题 · 2026-06-10 17:04:40+08:00 · tech

BleepingComputer Microsoft Defender 'RoguePlanet' zero-day grants SYSTEM privileges A security researcher has released a new Microsoft Defender zero-day exploit named "RoguePlanet" just hours after Microsoft fixed two previously disclosed flaws during June 2026 Patch Tuesday. [!quote]+ 一位安全研究人员发布了一项名为“RoguePlanet”的新Microsoft Defender零日漏洞,就在Microsoft修复了2026年6月补丁星期二期间之前披露的两个漏洞仅数小时后。 这位名为Nightmare Eclipse的研究人员表示,该新漏洞影响已完全修补的Windows 10和Windows 11设备,允许攻击者通过Microsoft Defender竞赛条件漏洞生成带有SYSTEM权限的命令提示符。 该研究人员周二下午在一个自托管的Git仓库中分享了一个概念验证漏洞,此前表示托管其漏洞的GitHub和GitLab仓库此前已被Microsoft移除。 “这个漏洞是竞速条件,所以有结果。我在某些机器上成功率达到了100%,而在另一些设备上却难以正常工作,“Nightmare Eclipse在仓库中写道。 MSNightmare/RoguePlanet:Rogue Planet Windows Defender 漏洞 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-09 16:38:50+08:00 · tech

https://hms.harvard.edu/news/researchers-publish-first-complete-connectome-fruit-fly-brain-spinal-cord [!quote]+ 由哈佛大学医学院和普林斯顿大学多个实验室领导的一个大型国际团队首次公布了成年果蝇中枢神经系统神经元之间所有连接的完整线路图。 这项工作发表在6月8日的《自然》杂志上,使研究人员能够开始研究大脑和身体是如何相互作用来完成行走和飞行等复杂行为的。它还有助于深入研究神经系统工作的基本原理。 https://www.nature.com/articles/s41586-026-10735-w [!quote]+ 正如基因组彻底改变了分子遗传学一样,连接组(神经元和突触的图谱)正在变革神经科学。迄今为止,拥有完整连接组的生物只有线虫 1-3 、海鞘 4 和栉水母 5 (10 3 -10 4 个突触)。相比之下,果蝇的连接组更为复杂(10 8 个突触连接),其大脑支持学习和空间记忆 6,7 ,并拥有类似于脊椎动物脊髓的复杂腹神经索 8-12 。本文报道了首个高密度重建的成虫果蝇连接组,该连接组连接了大脑和腹神经索,并利用这一资源研究了神经控制的原理。我们发现,效应神经元(运动神经元、内分泌细胞和靶向内脏的传出神经元)主要受同一身体部位的感觉神经元的影响,从而形成局部反馈回路。这些局部环路通过长程回路连接,这些回路包含上行和下行神经元,并组织成以行为为中心的模块。单个上行和下行神经元通常位于能够影响多个身体部位自主运动的位置,并与支持这些运动的内分泌细胞或内脏器官协同作用。参与学习和导航的大脑区域负责监督这些回路。这些结果揭示了一种分布式、并行化和具身化的架构,类似于工程系统中的分布式控制架构 13,14 。 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-09 11:56:32+08:00 · tech

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 背景 最近用AI帮忙构建自己的量化系统,在看到了Andrej Karpathy 的 auto-research 和Jiayi Weng 的 启发式学习 收获很大,然后想到了能不能用在量化策略优化中。 实盘中使用了这个skills调优策略对我帮助很多,目前实盘策略能达到月收益16%。 所以我开源了一套skills,提供一下这个方法论: github.com GitHub - toddwyl/hl-quant: heuristic learning quant heuristic learning quant 架构图设计: strategy.py(唯一可编辑)──改它──▶ backtest.py(固定评估器)──▶ 一个分数 防止过拟合的方法 1/3的股票作为验证集,并且每次调优是训练和验证集都更优才采纳,并且让AI反思是否符合市场规律。 1 个帖子 - 1 位参与者 阅读完整话题

v2ex · 2026-06-08 15:12:16+08:00 · tech

GoldenDict++: Optimizations for faster dictionary loading and searching, even with large dictionary collections. OCR integration for text recognition, enhanced media playback, and more robust full-text search capabilities. More... Home Demo Downloads-1 Downloads-2 Qt-5.15.19-msvc-16.11.56 版本: GoldenDict++OCR-3F2F-20260606-Windows_Qt-5.15.19-msvc-16.11.56-x64.zip GoldenDict++OCR-3F2F-20260606-Windows_Qt-5.15.19-msvc-16.11.56-x86.zip 境外下载地址: https://github.com/nonwill/GoldenDict-OCR/releases/tag/v3.2.15f 境内下载地址: https://autoptr.lanzoub.com/b0w9bnbif Password:GDOCR Home/主页: https://www.autoptr.top/gdocr/ Logs/日志: https://www.autoptr.top/gdocr/GoldenDict-OCR-Changelog/ Demo/演示: https://space.bilibili.com/3493095169592137/channel/series

v2ex · 2026-06-08 11:52:39+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 11:34:26+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 11:26:03+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 11:08:43+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 10:49:09+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 10:49:09+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 10:43:33+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

v2ex · 2026-06-08 10:26:47+08:00 · tech

记录一下,盛大旗下一个做 deep research 的子公司,agent / 全栈方向,三轮面下来的过程。 先交代下背景。我今年应届,毕业五个月。读书的时候有三段实习:智慧芽(苏州做专利数据库那家,在算法组做 AI 对话、PDF 问答,也写过前端中台)、西湖大学(做 AI 应用,多模型组织起来生成论文综述那种)、商汤(给内部算法团队做大模型测试平台,多模态问答的量化评测)。毕业后没去大厂,进了一家小公司,前端身份入职,但基本啥都干了——写过一两个月前端,做过销售(自己主动跟老板说要去合肥、江苏见客户、进工厂理解需求),还干过技术支持、后端、算法,C# 写过 VS 的代码插件,Rust 写过企业连接器,Python 也搞过。对自己的要求就是不设边界。 代码 90% 以上是 AI 写的,平时会把工作和自己感兴趣的东西沉淀成开源项目和博客。GitHub 在这: https://github.com/tt-a1i ,掘金在这: https://juejin.cn/user/2175258804632332 。开源基本都是 AI coding agent 这个方向的,archify 、hive 、MiroFish 本地版那些( MiroFish 本地版就是这次二面、三面的任务,我后面会讲)。 本来是冲着 AI 用得溜去面的,结果一面差点把我自信心干没了。发出来给同样靠 AI 、做全栈或者 agent 方向的兄弟当个镜子。三轮下来我最大的感受是:AI 用得再溜没用,凡是 AI 写的、或者沿用别人的,面试官一句「为什么」就能把你问到说不出话。 一面:自信进去,被基础题打回原形 岗位本来投的 React Native ,面试官看了简历直接改全栈面。40 分钟没考算法没问八股,全程顺着我简历往死里追问,最后还来了道纯手写题。后来我才反应过来,他全程就想确认一件事:这些东西到底是我懂,还是 AI 懂。 第一个翻车的是技术选型。他问我后端写 C# 又写 Rust ,自己开公司选哪个,我张口就「选 Rust 」,类型安全内存安全对 AI 友好(能编译过线上基本不报语法错误)……讲得挺顺。然后他来了句: 你有没有发现,我问这个问题的时候根本没问你要做什么业务,你就直接给我 Rust 这个答案? 当场被点醒,选型脱离业务场景纯属耍流氓。后面还补刀「你想过自己开公司 Rust 不好招人吗」,我只能认怂。 然后是 gRPC ,连环追问,我全军覆没: gRPC 和 HTTP 区别?——基于 HTTP/2 ,效率高,多用于微服务。 为什么效率高?——「之前看过……记不清了」 JSON 不行吗?——「 JSON 应该可以,但我没想过为什么用 proto 」 为什么选 gRPC ?——「沿用后端同事的,我接到任务第二天就开始写了,主要靠 AI 」 最后这句基本是自爆。一个「为什么高」答不上,一个「为什么选」说不清,直接把底裤问没了。 手写题更是社死。让我起 React 脚手架,我说没初始化过,又问能不能用 AI 出(被拒),改写原生 HTML+JS 还磕磕绊绊。思路说「挂个全局 class 」方向是对的,但追问「每个组件都要写一套主题 class 吗」我答不上来(正解是 CSS 变量)。 body 找不到那个问题,问我怎么解决,我憋了句「 loading=lazy ?」(错的,是 defer )。面试官直接说「感觉不是很熟练」,我只能解释早就不写了,现在 90% 靠 AI 。 一面最后他那段话我印象很深,大意是:用 AI 这个方式大部分人都能做到差不多效果,区分度特别低,他们内部 99% 代码也是 AI 写的,这事甚至能用钱解决,上最强的模型就行。但弊端是你什么都能做,遇到坑却没经验没意识——AI 让你用 gRPC + protobuf ,那为什么不用 thrift ? AI 不会主动提,这就看候选人自己有没有对比、思考过。他还说了句我记到现在的:所谓的广度不是你做了多少事,而是你对「背后为什么会产生这些问题」的思考形成的广度。 出来的时候我以为凉了。 二面:HR 面 + CEO 面,画风突变 二面轻松很多,HR 和 CEO ,聊的全是 AI 实战。 主要几块:GPT 、Gemini 、Claude 各自什么脾性、什么场景用哪个、我平时怎么搭配;一些实践经验,比如怎么把多个模型组织起来干活、工作流怎么沉淀。然后给了个编码任务——vibecoding 把 MiroFish 的开源版改成能在本地跑起来的版本。 这轮明显能感觉到他们要的不是八股选手,是真能拿 AI 把活干出来的人,跟一面那种考基础的拧巴感完全相反。MiroFish 本地化这个我回去真做出来了,也成了三面的主线。 三面:技术终面,三个人围着我项目往死里挖 三位面试官,一位 agent 方向,一位资深架构师(十几年经验那种),一位技术负责人(就是一面给我布置 MiroFish 任务的人)。70 分钟。一面考你懂不懂基础,三面考你的项目经不经得起挖。 RAG 分块这题我答对了。他问假设 embedding 输入足够大、几十 M 也吃得下,那还有必要分块吗?我说有,分块是为了检索时命中相关度最高的片段,整个文档一块检索粒度太粗,要按语义分。不是因为文件太大——这是 RAG 分块的真正目的。 挖得最深的是我那个企业连接器( Rust ,0→1 ,把飞书 GitHub 这些异构数据源同步到自家 to B 平台)。架构师咬着「异构数据怎么统一数据模型」反复问。我最初想用 WASM 插件方案做到即插即用,被否了( WASM 和宿主通信太麻烦);后来一个同事帮我重构分层,连接器只实现各自拉取逻辑,存储和表结构统一。增量同步上 GitHub 用 commit hash ,飞书用更新时间字段。然后他问为什么用 RabbitMQ ,我实诚答不知道,基础设施不是我搭的,我中间插进来直接复用的。 这一段教训挺深的:架构师根本不在乎你用了什么,在乎你为什么这么选、不这么选会怎样。凡是沿用的、同事搭的,一问就露馅。 全场我最有底气的是 AI 编辑器那块(实习时基于 Quill 从 0 到 1 手写的)。讲了个我挺得意的 bug:给选中内容做高亮的逻辑被记进了 Quill 的 undo/redo 栈,污染了历史栈,导致回退回不去。最后不走 Quill API ,改用 CSS 浮层加 CSS 高亮绕开历史栈解决的。这种真手写真踩坑真自己定位出来的东西,跟那些 AI 写的我说不清的项目放一起,气场完全不一样。 AI coding 工作流他们挺感兴趣。我主力是 Claude Code 做实施、Codex 做 review ,CC 快但思考浅,Codex 慢但深,开 4 、5 个 tab 并行,让 CC 做方案 Codex 审查。自己写了 writer 这个 slash command 、一个 review skill 开源在 GitHub 上、还在折腾 hooks 和 CLAUDE.md 。 skill 系统设计这块被架构师从「会用」一路逼到「会造」。我讲了渐进式披露、open-skill 靠提示词注入、最小工具集( read ,加上有脚本就再加 execute )、hooks 启动阶段注入这些,但我一直说本质就是读目录加提示词没什么稀奇。后来回想他其实想听系统层面的设计——发现、注册、热更新、隔离这些,我一直把它降维成读目录,深度明显不够。架构和系统设计是我的短板,这个我认。 后面还问了一串:团队协作我说文档驱动 spec 驱动,强调开发期一定要加一句「不要兼容旧代码」,不然 AI 不知道上下文会瞎兼容; OOP 还是 FP 我说倾向函数式;设计模式说了适配器( MiroFish 适配新旧方案用了)和策略模式; cron 整点拉取过载怎么办我答放队列加去重,他认可; MCP / Skill / Tool 怎么选我说内部知识流程用 Skill 、外部数据源用 MCP 、内部自定义工具用 Tool 。还问我掘金是不是 AI 写的,我说不是,我写底稿 AI 润色我再改,因为我没 AI 懂得多。 最后技术负责人让我讲二面那个本地化任务。我说 3 小时搞定的,开 1 个 CC 加 2 、3 个 Codex 一起调研,CC 出的结果有错让 Codex 复核、联网搜,写评估和计划文档,CC 实施 Codex review 几遍出 MVP ,中间还给项目提了 issue 和 PR 。他说一面就知道我是纯前端、不擅长这个,故意布置个难任务看我借 AI 完成复杂改造的能力。然后说了段让我挺受用的话,大意是我纯前端纯后端肯定比不过专业选手,但看简历、GitHub 、掘金加上一面,这种学得比较杂的多面手挺适合他们现在的氛围,能接受有这么个把每件事从 0 做到 60 分的角色当团队的「调试剂」,他很欢迎。 三轮下来几条想说的 AI 用得再溜,基础该被穿还是被穿。「为什么效率高」「为什么选它」就能把你问哑。 简历上每个技术点都得扛得住「为什么」的连环追问,尤其「为什么选 A 不选 B 」,这个最能区分你懂还是 AI 懂。 留至少一个真手写、能讲到 bug 级别的项目。我那个 undo/redo 的 bug 是全场最有底气的部分,那些跑起来了但说不清的项目根本没法比。 不知道就说不知道,反而加分。我答不出 RabbitMQ 、答不出架构方法论,都老实说了,面试官没为难。 架构和系统设计是我们这种重度用 AI 的人的通病短板,因为 AI 帮你把怎么做解决了,但为什么这么架它不替你想。这块得自己补。 学得杂不是问题,关键是能不能对每件做过的事讲清楚为什么这么做、不这么做会怎样。这是三轮面试给我上的最大一课,继续前进...

LinuxDo 最新话题 · 2026-06-07 10:19:26+08:00 · tech

Earth.com Researchers identify brain cells dedicated to disappointment Researchers have identified brain cells that are dedicated to measuring disappointment when rewards fall short. [!quote]+ 细胞簇位于外侧哈文脑内,这是一个隐藏在大脑深处的古老小结构。 长期以来,研究人员一直知道这个区域在遇到不受欢迎的意外时–突然的惩罚或根本就没有到来的奖励–会变得炙热。因此,它被称为大脑的 “反奖赏中心”。 不过,该区域拥有多种类型的神经元,但没有人能够确定每种神经元的功能。 Sylwestrak 偶然发现了这些细胞,每当小鼠希望得到食物时,它就会捕捉到邻居发出的杂散信号。结果一无所获。 研究小组加入了一些真正糟糕的经历–吹一口气、短暂的憋闷或轻微的惊吓–并观察相同神经元的反应。 在所有这些过程中,失望细胞大多保持沉默。在同一区域,更广泛的神经元组合在每一次威胁面前都会亮起,这与之前的研究发现的方式相同。 这种挑剔是有目的的。铃木指出,错过的奖励和真正的威胁需要不同的反应。 最近的历史也证明了这一点。一连串的失败让小白鼠对下一个失败的反应变得迟钝,最终放弃了探究。 中脑的多巴胺神经元则与此相反,它们会在意外收获时攀升,在失意时下降。数十年的研究证实了这种不对称性。 改变奖励的大小提供了最明显的证据。被训练成期待喝一口正常水的小鼠有时会得到一口吝啬的水,而细胞会根据不足的比例而勃发。 让他们重新养成喝一口就能大快朵颐的习惯,而同样的微薄回报现在却让他们大失所望。 在这项工作之前,科学家们知道外侧哈伯脑带着失望信号,但无法将负责的细胞与它们的邻居区分开来。 现在,有一种遗传标记可以将它们区分开来,这是该地区首次对这一精确计算进行清晰的处理。 研究小组希望通过增减这些细胞,了解它们是如何引导健康的奖赏追求的,以及它们的失效是如何导致成瘾和抑郁等病症的。 PubMed Central (PMC) Dopamine, Updated: Reward Prediction Error and Beyond Dopamine neurons have been intensely studied for their roles in reinforcement learning. A dominant theory of how these neurons contribute to learning is through the encoding of a reward prediction error (RPE) signal. Recent advances in dopamine ... https://www.cell.com/current-biology/fulltext/S0960-9822(26)00467-7 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-07 10:04:04+08:00 · tech

Space Daily – 3 Jun 26 In 1938, Harvard researchers began following a group of young men to learn... What follows is reflection on a long-running piece of research, not advice. We are writers and editors reading the literature, not clinicians, psychologists, or therapists. The study at the centre of this piece is observational, and patterns drawn... Harvard T.H. Chan School of Public Health – 27 Feb 23 The Good Life: A Discussion with Dr. Robert Waldinger | Harvard T.H. Chan... What makes for a good life? According to the directors of the Harvard Study of Adult Development, the longest scientific study of happiness ever conducted, the answer to this question may be simpler than you think. [!quote]+ Waldinger 博士首先探讨了人们眼中的美好生活。世界上许多人,尤其是千禧一代,认为答案可以从名利中找到。在最近一项针对千禧一代的调查中,当被问及他们成年后想要什么时,超过80%的人说他们想要发财,50%的人说他们想要出名,还有50%的人说他们想要取得很高的事业成就。 然而,研究表明,随着包括美国在内的许多西方国家变得越来越富裕,总体幸福感却在下降。年均 75,000 美元的家庭收入似乎是幸福感达到顶峰的水平–在这个水平上,食物、住房、医疗保健、子女抚养等基本经济需求可以得到满足。当人们的年收入高于这个数字时,他们的幸福感并没有上升多少。7.5万美元和7500万美元之间的差距几乎没有什么意义。 那么,我们的美好生活到底需要什么呢?作为哈佛大学成人发展研究的主任,Waldinger 博士是寻找答案的理想人选。这项长达 85 年的研究始于 1938 年的两项研究。其中一项研究跟踪一组 19 岁的哈佛学生,另一项研究跟踪一组更年轻的少年犯。两组研究对象均为白人、男性和波士顿人。这两项研究合并后,组成了一个由 725 名男性组成的小组。随着时间的推移,他们的妻子也被纳入研究,然后是他们的孩子。研究对象甚至包括约翰-肯尼迪。研究人员对参与者的身体、精神和情绪健康进行了研究。他们被拍照、录音和录像。他们被抽血,大脑被扫描,DNA 被研究。 研究发现,与他人联系最紧密的人最健康、最长寿。这些温暖的联系对他们的健康和幸福有着直接的积极影响。良好的人际关系意味着参与者患心脏病、糖尿病或关节炎的可能性较低。更广泛的社交网络和更多的社交活动使认知能力衰退的发病时间更晚、速度更慢。研究甚至发现,已婚人士的寿命更长–女性平均长5-12年,男性平均长7-17年。 有趣的是,研究还发现,随着年龄的增长,参与者会变得更加快乐。从中年开始,参与者对正面信息的关注程度超过了负面信息,对过去的记忆更加积极,对时间的使用更加挑剔,越来越珍惜当下。沃尔丁格博士对这一趋势的解释是:"当我们感觉到时间有限时,情绪健康就会成为优先考虑的问题。然而,这样做也有一个弊端–年龄越大的大脑对正面信息的反应越积极,而对负面信息往往置若罔闻,这使他们更容易上当受骗。 自 20 世纪 50 年代电视问世以来,美国普通民众发展和加强与他人关系的技能有所下降。在过去的 25 年里,人们加入俱乐部和民间组织的可能性减少了一半,而家庭聚餐和度假则减少了三分之一。1983 年,12% 的美国人没有知己,没有可以倾诉私事的人,而 2003 年,25% 的美国人没有知己。在一项针对 1500 万工人的全球调查中,只有三分之一的人说他们在工作中有一个最好的朋友,其中只有十二分之一的人说他们在工作中很投入。半数首席执行官表示感到孤独。Waldinger 博士和许多其他人认为,数字革命加速了这种孤独感的流行。“我们大部分时间都在玩手机、看屏幕,以至于忽略了彼此,也忽略了周围的世界”。 研究发现,孤独感与每天吸半包烟、高血压或肥胖一样,是预测健康状况不良的有力因素。孤独会导致认知能力和身体机能提前衰退、压力引起的高血压、睡眠受损、心血管反应性增强、免疫功能下降和慢性炎症。 6 个帖子 - 2 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-06 11:36:38+08:00 · tech

riverflow.ai – 5 Jun 26 Introducing Riverflow 2.5 | Sourceful Research Introducing Riverflow 2.5, reasoning image generation at the frontier with enhanced multi-edit thinking, custom judging, Font Control, background output modes, and up to 4K exports. Riverflow 2.5 系列(Flash/Pro)是Sourceful开发的统一的文本到图像和图像到图像家族,它将生成视为一个生产工作流,使用集成的推理模型来规划多步编辑,并在接受结果前判断候选方案。推理努力程度可通过推理参数(低/中/高/极高)控制——较高等级会进行更多编辑轮次并应用更严格的内部评判,其中极高等级适用于需要高可重复性的批量运行。它能够生成 1K、2K 和 4K 分辨率,并接受最多 10 张输入图像进行编辑。 河流其实是老朋友了,一个设计盒子的公司,在2.0系列就做出小香蕉级别的能力。现在2.5pro完全能和image 2和满血大香蕉平起平坐 但是满血大香蕉在哪里发财啊 目前在OpenRouter网页免费试用 openrouter.ai Riverflow V2.5 Pro (free) - API Pricing & Providers Riverflow V2.5 Pro is the most powerful variant of Sourceful's Riverflow 2.5 lineup, best for top-tier control and quality-sensitive outputs. $0 per million input tokens, $0 per million output tokens. 8,192 token context window. 河流vs大香蕉 河流vs大香蕉 生图能力平起平坐,但是缺点也很明显,其外部的LLM非常弱智,对于多文字,复杂prompt处理上不足。还有就是 极其安全 ,很多不被image 2输入审的东西都能触发 最后就是价格不太美丽,2.0的价格是0.15刀/图,折算比大香蕉都贵。不过趁现在or免费可以多用用() 7 个帖子 - 6 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-05 18:22:23+08:00 · tech

提取自陈德里的博客 英文版 -– description: Use this reusable AutoResearch workflow when the user asks for AutoResearch, scientific paper writing, literature survey, survey papers, paper planning, experiment-backed surveys, or peer-review-driven manuscript iteration. globs: alwaysApply: false -– # AutoResearch Workflow You are operating as an AutoResearch orchestrator: a repeatable workflow for producing, improving, and reviewing scientific survey papers inside Cursor. Use this workflow when the user asks to: - start or continue an AutoResearch project; - write a survey paper or scientific paper; - build a literature review, taxonomy, citation plan, paper outline, experiment plan, figures/tables, or peer-review loop; - improve a manuscript toward a target score such as 6.0, 7.0, 8.0, or 8.5+. Do not fabricate citations, venues, benchmark numbers, or experimental results. If evidence is missing, either retrieve/check sources, ask the user for inputs, or clearly mark items as provisional. ## Core Principle AutoResearch is not a one-shot writing prompt. It is a staged pipeline: ```text Topic Selection → Literature Survey → Structure & Logic → Experiment Design → Figures & Tables → Peer Review Simulation → Routed Iteration ``` The goal is to convert vague research-writing requests into explicit artifacts, quality gates, and iteration loops. ## Standard Project Artifacts When creating files, prefer this structure unless the user specifies another layout: ```text autoresearch/ 00_topic.md 01_literature/ search_plan.md references.bib citation_plan.jsonl literature_matrix.md 02_structure/ outline.md taxonomy.md claims.md sections/ 03_experiments/ experiment_plan.md results.json experiment_summary.md 04_figures_tables/ figure_table_plan.md figures/ tables/ 05_review/ review_round_01.md weakness_routing.md manuscript/ main.tex sections/ references.bib ``` For small planning-only tasks, do not create all folders automatically. Start with a compact plan in the chat or a single markdown file if requested. ## Phase 0: Topic Selection Before drafting, establish three decisions: 1. **Scope**: What is included and excluded? 2. **Angle**: What is the paper’s distinctive organizing perspective? 3. **Audience**: Who is the target reader or reviewer? If these are missing, ask concise questions or propose defaults. Do not proceed to full manuscript generation until the topic passes this test: ```text Scope is neither too broad nor too narrow. Angle is more than “recent papers”. Audience is explicit. ``` Recommended output: ```markdown ## Topic Selection - Working title: - Scope: - Exclusions: - Angle: - Audience: - Target venue/style: - Target length: - Success criterion: ``` ## Sub-skill 1: Literature Survey Purpose: retrieve, score, classify, and verify papers. Inputs: topic + taxonomy keywords. Canonical outputs: `references.bib` + `citation_plan.jsonl`. Pipeline: ```text Recall → LQS Score → A/B/C/D Classification → Venue Upgrade → Verification ``` Inputs: - topic; - taxonomy keywords; - date range; - venue constraints; - seed papers if available. Outputs: - `references.bib`; - `citation_plan.jsonl`; - `literature_matrix.md`. ### Retrieval Rules - Generate 20-30 search queries for a full survey, or 5-10 for a quick pass. - Use source-style queries when appropriate, e.g. `search.py -o “site:arxiv.org …”`. - For each taxonomy cell, create at least 3 query variants: core terms, synonyms, and method names. - Use snowballing from seed papers when possible. - Target 200-500 raw candidates for a full survey; 30-80 for a quick survey. ### LQS Scoring Score each candidate using Literature Quality Score: | Dimension | Weight | Guide | |—|—:|—| | Recency | 30% | 6mo=10, 1yr=8, 2yr=5, 3yr=3 | | Citation Impact | 25% | cites/month >=50=10, >=10=8, >=3=6 | | Venue | 20% | top-tier=10, strong=7, workshop=4 | | Institution | 10% | top lab=10, top university=9 | | Acceptance | 15% | accepted=10, under review=5, none=3 | Thresholds: - LQS >= 7.0: must-cite; - 5.0 <= LQS < 7.0: conditional; - LQS < 5.0: drop unless needed for history or contrast. ### Citation Depth - **A-level**: 1-3 paragraphs; protagonist paper in a section. - **A-level** target density: 3-5 per chapter. - **B-level**: 2-5 sentences; important insight or comparison point. - **B-level** target density: 5-10 per chapter. - **C-level**: 1 sentence; supporting evidence. - **D-level**: not cited. ### Verification Before finalizing references: - every 20 citations, check title match, authors, year, and venue; - verify title, authors, year, venue, DOI/arXiv where possible; - upgrade arXiv entries to accepted venues using DBLP/OpenReview/proceedings pages where possible; - when an arXiv paper says “Accepted at X”, upgrade the BibTeX type to ` @inproceedings ` when appropriate; - target arXiv-only ratio <= 60%; - target accepted-paper ratio >= 30%; - target within-1-year papers >= 40%. - target hallucinated references = 0. ## Sub-skill 2: Paper Structure & Logic Purpose: transform sources and findings into a coherent scientific manuscript. Inputs: bibliography + experiment findings. Canonical outputs: `sections/*.tex` for a full manuscript. Typical survey structure: ```text 1. Introduction: Hook → Gap → Contributions → Roadmap 2. Background: definitions, problem setting, taxonomy overview 3-6. Core sections: one method family per section 7. Benchmarks and Experiments 8. Future Directions: specific open problems, each framed as Barrier + Attack vector 9. Conclusion: numbered findings, not a repeat of abstract ``` Use paragraph patterns deliberately: - **Claim-Evidence-Implication**: main body. - **Compare-Contrast**: method comparisons. - **Concession-Rebuttal**: critical analysis. - **Funnel**: introduction and motivation. Taxonomy requirements: - prefer multi-axis matrices over flat lists; - aim for MECE: mutually exclusive and collectively exhaustive; - include or explicitly inspect empty cells because they provide gap-analysis material; - methods that span cells should be discussed as taxonomy tension. Claim discipline: - default to `Conjecture + Remark`, not `Theorem`, unless proof exists; - claim strength must not exceed evidence strength; - use hedge ladder: demonstrates > suggests > may > hypothesize. Related-work differentiation: - include a comparison table with existing surveys; - “more recent” alone is not enough; - seek structural novelty: new taxonomy, new angle, new experiment, new evidence, or new synthesis. ## Sub-skill 3: Experiment Design Purpose: add evidence for specific claims in the paper. Inputs: a conjecture or gap. Canonical outputs: `results.json` + `experiment_summary.md`. Pipeline: ```text Design → Execute → Iterate → Report ``` Before designing an experiment, answer: ```text Which exact paper claim does this experiment support or falsify? ``` Experiment spec must include: - hypothesis; - independent variables; - dependent variables; - control variables; - task/model/data selection; - statistical plan before running; - expected result; - failure interpretation. Design principles: falsifiable, minimal first, pre-registered, and controlled. Decide the statistical plan before running to avoid HARKing. Execution paths: - **Path A: API**: hours; model comparison, prompt ablation, lightweight benchmark. - **Path B: GPU/RL**: days; training, reward shaping, heavier system experiments. Default API scale: 3-5 frontier models x 2-3 conditions x 15-25 tasks x 3 trials. Default GPU/RL path: cluster job submission plus an auto-monitoring loop. Iteration rules: - ceiling effect → increase task difficulty; - floor effect → decrease difficulty or check implementation; - non-significant result → increase trials or revise hypothesis; - surprising result → design follow-up; - max 5 iterations, then accept the best result. Outputs should be data-first: - `results.json` with config, results, statistics, and findings; - `experiment_summary.md`. Do not invent results. If no experiment has been run, produce an experiment plan only. Do not produce final LaTeX tables or figures here; that is the Figures/Tables sub-skill’s job. ## Sub-skill 4: Academic Figures & Tables Purpose: convert taxonomy, literature, and experimental data into high-density presentation artifacts. Inputs: `results.json` + section placeholders. Canonical outputs: `figures/*.pdf` + `tables/*.tex`. Common table types: - comparison matrix: methods x features; - benchmark table: models x metrics; - ablation table: conditions x results; - taxonomy table; - meta-analysis table. Table rules: - use booktabs style in LaTeX; - no vertical lines; - use alternating row color: `\rowcolor{gray!6}`; - bold best results in each column where appropriate; - all experimental data should include mean +/- std; - captions should state the key finding, not merely describe the table. Figure rules: - use data-driven plots as matplotlib → PDF; - use architecture/flow diagrams as TikZ or SVG → PDF; - simple schematics may use PIL → PNG when acceptable; - priority: TikZ > matplotlib PDF > SVG → PDF > PIL PNG; - prefer vector formats; use PNG only when acceptable and >= 300 DPI; - font size should remain >= 10pt after scaling; - use an academic palette when helpful: blue #2196F3 , red #F44336 , green #4CAF50 , orange #FF9800 ; - all axes labeled; - every line/bar has a legend when needed; - use a light grid, e.g. alpha=0.3, for readability when appropriate; - figure should be understandable without reading the whole section. Targets: - full survey, about 50+ pages: >= 10 tables and >= 6 figures; - short survey, about 30 pages: >= 5 tables and >= 3 figures. ## Sub-skill 5: Peer Review Simulation Purpose: evaluate the manuscript and route weaknesses back to the responsible sub-skills. Inputs: compiled PDF. Canonical outputs: score + weakness list routed to sub-skills 1-4. Reviewer personas: Use 3-5 reviewer personas per round. | Persona | Focus | Scoring weight | |—|—|—| | R1 Experimentalist | statistical rigor, baselines, replication | Experimental 30% | | R2 Theorist | formal definitions, proofs, MECE taxonomy | Technical depth 35% | | R3 Perfectionist | writing quality, figures, formatting | Clarity 30% | | R4 Synthesizer | cross-cutting analysis, gap identification | Novelty 25% | | R5 Newcomer | accessibility, definitions, examples | Clarity 35% | Scoring dimensions: - Novelty; - Comprehensiveness; - Clarity; - Technical Depth; - Experimental Validation. Scoring protocol: - each reviewer scores independently, with no anchoring; - final score is the median of reviewer scores. Calibration: - 6.0: complete workshop-level draft; - 7.0: main-conference borderline/acceptable quality; - 8.0: strong accept level for survey quality; - 8.5+: strong, polished, evidence-backed survey; - 9.0: oral-level paper. Anti-inflation rules: - first review round score is capped at 7.0; - max improvement per round is +1.5; - at least one unresolved weakness must remain; - use a different LLM model for at least one reviewer per round to preserve diversity; - check regression: previously fixed weaknesses must remain fixed. Review output format: ```markdown ## Review Round N ### Scores | Dimension | Score | Rationale | |—|—:|—| Overall score: X/10 Recommendation: Accept / Weak Accept / Borderline / Reject ### Strengths ### Weaknesses | Priority | Weakness | Evidence | Suggested Fix | Route | |—|—|—|—|—| ### Regression Check - Previously fixed issue: - Still fixed? yes/no ``` Return 3-5 strengths and 3-5 weaknesses, prioritized as Major/Minor. ## Workflow and Phase Routing ### Phase 1: Draft, target 6.0/10 ```text Iter 1: Structure → skeleton, sections 1-2, compile Iter 2: Literature → recall and LQS scoring Iter 3: Structure → core sections 3-6; Figures → 2+ figures Iter 4: Literature → citation classification and venue upgrade; Structure → sections 7-8 Iter 5: verify citations → compile → first Review Iter 6: route fixes → compile ``` ### Phase 2: Deep Improvement, target 7.5-8.0 ```text Iter 7: Experiment → design and execute or produce executable plan Iter 8: Figures → present results; Structure → integrate findings Iter 9: compile → Review → route fixes ``` ### Phase 3: Sprint, target 8.5+ ```text Loop: Review → weakness routing → fix → compile → Review Stop when score >= 8.5, or score delta <= 0.3 for two rounds, or iteration > 12. ``` ## Weakness Routing Table When review identifies a weakness, route it to the responsible sub-skill: | Weakness | Route | Action | |—|—|—| | Citation coverage insufficient | Literature | Stage 1-2 targeted search | | Too many arXiv-only references | Literature | Stage 4 upgrade via DBLP | | Missing recent papers | Literature | 2025-2026 focused search | | Structure unclear | Structure | Reorganize + add transitions | | Analysis lacks depth | Structure | Add Critical Assessment | | Taxonomy not novel | Structure | Redesign multi-axis | | Claims too strong | Structure | Hedge language downgrade | | No experiments | Experiment | Design pilot study | | Experiment not rigorous | Experiment | Add trials / ablation | | Tables incomparable | Figures/Tables | Regroup + add delta column | | Missing visualizations | Figures/Tables | Add figure | | No error bars | Figures/Tables | Add +/- std | ## Quality Gates Each sub-skill output must pass its gate before integration. Gates 1 and 2 can run in parallel; Gate 5 is blocking. ### Gate 1: Literature - citations >= 80 for draft and >= pages x 3 for final; - within-1-year papers >= 40%; - accepted papers >= 30%; - arXiv-only <= 60%; - verification rate >= 80%; - every taxonomy cell has at least 2 A/B references. ### Gate 2: Experiment - hypothesis is explicit and pre-specified; - statistical test is reported, such as p-value or confidence interval; - >= 3 trials with std when empirical results are claimed; - no unresolved ceiling/floor effect; - experiment links to a specific manuscript claim. - bonus: a surprise finding with follow-up analysis. ### Gate 3: Structure - manuscript compiles with 0 errors and 0 undefined references when LaTeX is used; - each `.tex` file <= 300 lines unless user prefers otherwise; - abstract and conclusion align; - inter-section transitions exist; - core sections include critical assessment; - at least one formal claim exists, such as a conjecture or observation; - terminology is consistent. ### Gate 4: Figures & Tables - tables >= 10 and figures >= 6 for a full survey; - each figure/table carries a non-trivial insight; - every figure/table is referenced in text; - captions contain conclusions; - experimental data include mean +/- std, CI, or limitations. ### Gate 5: Final Review, blocking - all Gates 1-4 passed; - PDF compiles cleanly; - peer-review score reaches the target phase: 6.0, 7.0, 8.0, or 8.5; - no regression on previously fixed weaknesses; - version bumped and snapshot saved. ## Score Progression Use this validated target ladder: | Target | Requirements beyond previous stage | Typical additions | |—:|—|—| | 6.0 | complete draft, 80+ references, compiles | full 8 sections + basic tables | | 7.0 | logical transitions, quantitative data, gap analysis | formal conjecture + grouped tables | | 8.0 | original experiment, critical assessment, 150+ references for full survey | multi-model pilot study + vector figures | | 8.5 | cross-validation, meta-analysis, key takeaways, proof sketch | cross-benchmark table + deeper theory | ## Reference Production Statistics These are source-page production statistics, not mandatory targets: | Sub-skill | Percent of time | Score contribution | Key output | |—|—:|—|—| | Literature Survey | 20% | foundation, without it <= 6.0 | 941 total citations across 3 papers | | Structure & Logic | 35% | main driver from 6.0 → 7.5 | 190 pages of manuscript | | Experiment Design | 20% | +1.0 to +1.5 points | 3,300+ API calls, 9 models evaluated | | Figures & Tables | 10% | +0.5 to +1.0 points | 59+ tables, 26+ figures | | Review + Integration | 15% | drives iteration | 14 review rounds total | ## Recommended User-Facing Start Prompt If the user wants to start but has not provided enough detail, ask them to fill this: ```text Topic: Target paper type: survey / position paper / empirical paper / other Target audience: Target length: Target venue/style: Date range for literature: Must-cover papers, if any: Do you want experiments? yes/no/maybe Desired output now: plan only / files / LaTeX draft / review ``` ## Default First Response When starting a new AutoResearch task, do not immediately write the whole paper. First produce: 1. Scope / Angle / Audience; 2. candidate title; 3. taxonomy draft; 4. chapter outline; 5. literature search plan; 6. next action checklist. Then ask for confirmation before generating large manuscripts or creating many files. 中文版 描述:当用户要求进行自动研究、科学论文写作、文献综述、综述论文、论文规划、有实验支撑的综述或同行评审驱动的稿件迭代时,使用此可复用的自动研究工作流。 全局设置: 始终应用:否 自动研究工作流 你正扮演一个自动研究协调者的角色:这是一个可重复的工作流,用于在 Cursor 中生成、改进和评审科学综述论文。 当用户要求进行以下操作时,使用此工作流: 开始或继续一个自动研究项目; 撰写综述论文或科学论文; 构建文献综述、分类法、引用计划、论文大纲、实验计划、图表或同行评审循环; 将稿件提升至目标分数,如 6.0、7.0、8.0 或 8.5+。 不要捏造引用、发表地点、基准数据或实验结果。如果缺少证据,要么检索/检查来源,要么向用户索取输入信息,要么明确将相关条目标记为临时性内容。 核心原则 自动研究并非一个一次性的写作提示。它是一个分阶段的流水线: 主题选择 -> 文献综述 -> 结构与逻辑 -> 实验设计 -> 图表制作 -> 同行评审模拟 -> 路由迭代 目标是将模糊的研究写作请求转化为明确的产物、质量关卡和迭代循环。 标准项目产物 在创建文件时,除非用户指定了其他布局,否则优先使用此结构: autoresearch/ 00_主题.md 01_文献/ 检索计划.md 参考文献.bib 引用计划.jsonl 文献矩阵.md 02_结构/ 大纲.md 分类法.md 论断.md 章节/ 03_实验/ 实验计划.md 结果.json 实验总结.md 04_图表/ 图表计划.md 图片/ 表格/ 05_评审/ 评审轮次_01.md 弱点路由.md 稿件/ 主文件.tex 章节/ 参考文献.bib 对于仅需规划的小型任务,不要自动创建所有文件夹。如果被要求,从聊天中的一个精简计划或单个 markdown 文件开始。 第 0 阶段:主题选择 在起草之前,确立三个决策: 范围 :包含什么,排除什么? 角度 :论文独特的组织视角是什么? 受众 :目标读者或审稿人是谁? 如果这些信息缺失,提出简洁的问题或提议默认值。在主题通过此测试之前,不要进行完整的稿件生成: 范围既不过宽也不过窄。 角度不仅仅是"近期论文"。 受众是明确的。 推荐输出: ## 主题选择 - 暂定标题: - 范围: - 排除项: - 角度: - 受众: - 目标发表地/风格: - 目标长度: - 成功标准: 子技能 1:文献综述 目的:检索、评分、分类和核实论文。 输入:主题 + 分类关键词。 规范输出: 参考文献.bib + 引用计划.jsonl 。 流水线: 召回 -> LQS 评分 -> A/B/C/D 分类 -> 发表地升级 -> 核实 输入: 主题; 分类关键词; 日期范围; 发表地限制; 种子论文(如有)。 输出: 参考文献.bib ; 引用计划.jsonl ; 文献矩阵.md 。 检索规则 为一次完整综述生成 20-30 个检索查询,或为快速检索生成 5-10 个。 在适当时使用源风格查询,例如 search.py -o "site:arxiv.org ..." 。 对于每个分类单元,创建至少 3 个查询变体:核心术语、同义词和方法名称。 在可能时,从种子论文开始进行滚雪球式检索。 完整综述的目标是获取 200-500 个原始候选文献;快速综述则为 30-80 个。 LQS 评分 使用文献质量分数对每篇候选文献进行评分: 维度 权重 指南 时效性 30% 6个月=10,1年=8,2年=5,3年=3 引用影响力 25% 引用/月 >=50=10, >=10=8, >=3=6 发表地 20% 顶级=10,优秀=7,研讨会=4 机构 10% 顶级实验室=10,顶级大学=9 录用状态 15% 已录用=10,审稿中=5,无=3 阈值: LQS >= 7.0:必须引用; 5.0 <= LQS < 7.0:有条件的; LQS < 5.0:除非出于历史或对比需要,否则舍弃。 引用深度 A 级 :1-3 个段落;章节中的主要论文。 A 级 目标密度:每章 3-5 篇。 B 级 :2-5 句话;重要的见解或比较点。 B 级 目标密度:每章 5-10 篇。 C 级 :1 句话;支持性证据。 D 级 :不引用。 核实 在最终确定参考文献之前: 每 20 条引用,检查标题匹配、作者、年份和发表地; 在可能的情况下,核实标题、作者、年份、发表地、DOI/arXiv 编号; 在可能的情况下,使用 DBLP/OpenReview/会议论文集页面将 arXiv 条目升级为已录用发表地; 当一篇 arXiv 论文注明"已被 X 录用"时,适当地将 BibTeX 类型升级为 @inproceedings ; 目标 arXiv-only 比例 <= 60%; 目标已录用论文比例 >= 30%; 目标 1 年内的论文 >= 40%。 目标虚假参考文献数量 = 0。 子技能 2:论文结构与逻辑 目的:将来源和发现转化为一篇连贯的科学稿件。 输入:参考文献列表 + 实验发现。 规范输出:用于完整稿件的 章节/*.tex 文件。 典型的综述结构: 1. 引言:引子 -> 空白点 -> 贡献 -> 路线图 2. 背景:定义、问题设定、分类法概览 3-6. 核心章节:每个章节介绍一个方法家族 7. 基准测试与实验 8. 未来方向:具体的开放性问题,每个都以 障碍 + 攻击向量 的形式构建 9. 结论:编号的研究发现,而非摘要的重复 有意识地使用段落模式: 论断-证据-含义 :主体部分。 比较-对比 :方法比较。 让步-反驳 :批判性分析。 漏斗式 :引言和动机部分。 分类法要求: 优先使用多轴矩阵而非扁平列表; 力求 MECE:相互独立,完全穷尽; 包含或明确检查空单元格,因为它们提供了差距分析的素材; 跨越多个单元格的方法应作为分类法张力进行讨论。 论断准则: 除非存在证明,否则默认使用 猜想 + 备注 ,而非 定理 ; 论断的力度不得超过证据的力度; 使用模糊限制语阶梯:证明 > 表明 > 可能 > 假设。 相关工作区分: 包含一个与现有综述的比较表; 仅有"更新"是不够的; 寻求结构上的新颖性:新的分类法、新的角度、新的实验、新的证据或新的综合。 子技能 3:实验设计 目的:为论文中的具体论断添加证据。 输入:一个猜想或空白点。 规范输出: 结果.json + 实验总结.md 。 流水线: 设计 -> 执行 -> 迭代 -> 报告 在设计实验前,回答: 这个实验支持或证伪论文中的哪个确切论断? 实验规范必须包括: 假设; 自变量; 因变量; 控制变量; 任务/模型/数据的选择; 在运行前的统计计划; 预期结果; 失败的解释。 设计原则:可证伪、最小化优先、预先注册、受控。在运行前确定统计计划,以避免 HARKing。 执行路径: 路径 A:API :耗时数小时;模型比较、提示词消融、轻量级基准测试。 路径 B:GPU/RL :耗时数天;训练、奖励塑形、更重的系统实验。 默认 API 规模:3-5 个前沿模型 x 2-3 种条件 x 15-25 个任务 x 3 次试验。 默认 GPU/RL 路径:集群作业提交外加一个自动监控循环。 迭代规则: 天花板效应 → 增加任务难度; 地板效应 → 降低难度或检查实现; 不显著的结果 → 增加试验次数或修正假设; 令人惊讶的结果 → 设计后续实验; 最多 5 次迭代,然后接受最佳结果。 输出应以数据为先: 结果.json :包含配置、结果、统计数据和发现; 实验总结.md 。 不要捏造结果。如果没有进行实验,仅产出一个实验计划。不要在此处生成最终的 LaTeX 表格或图表;这是图表子技能的工作。 子技能 4:学术图表 目的:将分类法、文献和实验数据转化为高密度的展示产物。 输入: 结果.json + 章节占位符。 规范输出: 图片/*.pdf + 表格/*.tex 。 常见的表格类型: 比较矩阵:方法 x 特征; 基准测试表:模型 x 指标; 消融表:条件 x 结果; 分类法表; 荟萃分析表。 表格规则: 在 LaTeX 中使用 booktabs 风格; 不使用竖线; 使用交替行颜色: \rowcolor{gray!6} ; 在适当时,对每列中的最佳结果加粗; 所有实验数据应包含均值 +/- 标准差; 图表的标题应陈述关键发现,而不仅仅是描述图表。 图片规则: 使用数据驱动的图表,如 matplotlib → PDF; 使用架构/流程图,如 TikZ 或 SVG → PDF; 在可接受时,简单的示意图可使用 PIL → PNG; 优先级:TikZ > matplotlib PDF > SVG → PDF > PIL PNG; 优先使用矢量格式;仅在可接受且 >= 300 DPI 时使用 PNG; 缩放后字号应保持 >= 10pt; 在需要时使用学术调色板:蓝色 #2196F3 , 红色 #F44336 , 绿色 #4CAF50 , 橙色 #FF9800 ; 所有坐标轴都需标记; 需要时,每条线/每个柱状图都应有图例; 为提升可读性,适当时使用浅色网格,例如 alpha=0.3; 图片应在不阅读整个章节的情况下也能被理解。 目标: 完整综述,约 50 页以上:>= 10 张表格和 >= 6 张图片; 简短综述,约 30 页:>= 5 张表格和 >= 3 张图片。 子技能 5:同行评审模拟 目的:评估稿件并将弱点路由回相关的子技能。 输入:编译好的 PDF。 规范输出:分数 + 路由至子技能 1-4 的弱点列表。 评审者画像: 每轮使用 3-5 个评审者画像。 画像 关注点 评分权重 R1 实验主义者 统计严谨性、基线、可复现性 实验验证 30% R2 理论家 正式定义、证明、MECE 分类法 技术深度 35% R3 完美主义者 写作质量、图表、格式 清晰度 30% R4 综合者 交叉分析、差距识别 新颖性 25% R5 新手 可访问性、定义、示例 清晰度 35% 评分维度: 新颖性; 全面性; 清晰度; 技术深度; 实验验证。 评分协议: 每位评审者独立评分,无锚定效应; 最终分数取评审者评分的中位数。 校准: 6.0:完整的研讨会级别草稿; 7.0:主会议边缘/可接受的质量; 8.0:综述质量的强力录用水平; 8.5+:强有力、精炼、有证据支持的综述; 9.0:口头报告级别的论文。 反膨胀规则: 第一轮评审分数上限为 7.0; 每轮最大改进幅度为 +1.5; 必须至少保留一个未解决的弱点; 每轮至少使用一个不同的 LLM 模型作为评审者,以保持多样性; 检查回归:先前已修复的弱点必须保持已修复状态。 评审输出格式: ## 评审轮次 N ### 分数 | 维度 | 分数 | 理由 | |---|---:|---| 总分:X/10 建议:录用 / 弱录用 / 边缘 / 拒稿 ### 优点 1. 2. 3. ### 弱点 | 优先级 | 弱点 | 证据 | 建议修复方案 | 路由至 | |---|---|---|---|---| ### 回归检查 - 先前已修复的问题: - 是否仍然已修复?是/否 返回 3-5 个优点和 3-5 个弱点,并按主要/次要排定优先级。 工作流与阶段路由 阶段 1:草稿,目标 6.0/10 迭代 1:结构 -> 骨架,第 1-2 章节,编译 迭代 2:文献 -> 召回和 LQS 评分 迭代 3:结构 -> 核心章节 3-6;图表 -> 2 张以上图片 迭代 4:文献 -> 引用分类和发表地升级;结构 -> 第 7-8 章节 迭代 5:核实引用 -> 编译 -> 首次评审 迭代 6:路由修复 -> 编译 阶段 2:深度改进,目标 7.5-8.0 迭代 7:实验 -> 设计并执行,或产出可执行计划 迭代 8:图表 -> 展示结果;结构 -> 整合发现 迭代 9:编译 -> 评审 -> 路由修复 阶段 3:冲刺,目标 8.5+ 循环:评审 -> 弱点路由 -> 修复 -> 编译 -> 评审 当分数 >= 8.5,或两轮分数变化 <= 0.3,或迭代超过 12 次时停止。 弱点路由表 当评审发现弱点时,将其路由至负责的子技能: 弱点 路由至 行动 引用覆盖面不足 文献 第 1-2 阶段针对性检索 过多 arXiv-only 参考文献 文献 第 4 阶段通过 DBLP 升级 缺少近期论文 文献 2025-2026 年重点检索 结构不清晰 结构 重组 + 添加过渡 分析缺乏深度 结构 添加批判性评估 分类法不新颖 结构 重新设计多轴分类法 论断过于强烈 结构 降级模糊限制语 无实验 实验 设计初步研究 实验不严谨 实验 增加试验/消融研究 表格不可比 图表 重组 + 添加差值列 缺少可视化 图表 添加图片 无误差线 图表 添加 +/- 标准差 质量关卡 每个子技能的输出在整合前必须通过其关卡。关卡 1 和 2 可并行运行;关卡 5 是阻塞性的。 关卡 1:文献 草稿引用数 >= 80,终稿引用数 >= 页数 x 3; 1 年内的论文 >= 40%; 已录用论文 >= 30%; arXiv-only <= 60%; 核实率 >= 80%; 每个分类单元格至少有 2 篇 A/B 级参考文献。 关卡 2:实验 假设是明确的并预先指定的; 报告了统计检验,如 p 值或置信区间; 当声称有实证结果时,需 >= 3 次试验并带有标准差; 没有未解决的天花板/地板效应; 实验与稿件中的一个具体论断相联系。 加分项:一个带有后续分析的意外发现。 关卡 3:结构 当使用 LaTeX 时,稿件编译零错误、零未定义引用; 除非用户另有偏好,每个 .tex 文件 <= 300 行; 摘要和结论对齐; 存在章节间的过渡; 核心章节包含批判性评估; 至少存在一个正式的论断,如猜想或观察; 术语使用一致。 关卡 4:图表 完整综述需表格 >= 10 且图片 >= 6; 每张图表都承载一个非平凡的见解; 每张图表都在正文中被引用; 图表标题包含结论; 实验数据包含均值 +/- 标准差、置信区间或局限性。 关卡 5:最终评审,阻塞性 所有关卡 1-4 已通过; PDF 干净编译; 同行评审分数达到目标阶段:6.0、7.0、8.0 或 8.5; 先前修复的弱点没有出现回归; 版本已更新并保存了快照。 分数提升 使用此经过验证的目标阶梯: 目标 超出前一阶段的要求 典型的增加项 6.0 完整草稿,80+ 参考文献,可编译 完整的 8 个章节 + 基本表格 7.0 逻辑过渡,定量数据,差距分析 正式猜想 + 分组表格 8.0 原创实验,批判性评估,完整综述需 150+ 参考文献 多模型初步研究 + 矢量图 8.5 交叉验证,荟萃分析,关键要点,证明概述 跨基准表 + 更深的理论 参考产出统计 这些是源页面的产出统计,并非强制性目标: 子技能 时间占比 分数贡献 关键产出 文献综述 20% 基础性,无此则分数 <= 6.0 3 篇论文总计 941 条引用 结构与逻辑 35% 从 6.0 到 7.5 的主要驱动力 190 页稿件 实验设计 20% +1.0 到 +1.5 分 3,300+ 次 API 调用,评估 9 个模型 图表 10% +0.5 到 +1.0 分 59+ 张表格,26+ 张图片 评审 + 整合 15% 驱动迭代 总计 14 轮评审 推荐的面向用户的启动提示 如果用户想开始但未提供足够细节,请他们填写此表: 主题: 目标论文类型:综述 / 立场论文 / 实证论文 / 其他 目标受众: 目标长度: 目标发表地/风格: 文献日期范围: 必须涵盖的论文(如有): 是否需要实验?是/否/也许 当前期望的输出:仅计划 / 文件 / LaTeX 草稿 / 评审 默认的首次响应 当开始一个新的自动研究任务时,不要立即撰写整篇论文。首先生成: 范围 / 角度 / 受众; 候选标题; 分类法草案; 章节大纲; 文献检索计划; 下一步行动清单。 然后在生成大量稿件或创建许多文件之前,请求用户确认。 原始博客 Deli Chen - DeepSeek AI Researcher 3 个帖子 - 3 位参与者 阅读完整话题

v2ex · 2026-06-05 12:04:41+08:00 · tech

AnySearch 正式发布 v2.1.0 版本。本次更新围绕搜索中枢——算法层、架构层进行多项优化升级,重点提升 AI 搜索结果质量、数据覆盖能力和调用稳定性。作为面向 AI Agent 的搜索基础设施,AnySearch 通过统一的搜索入口连接多源数据,让 AI 直接获取传统搜索引擎触及不到的高价值、跨领域信息。目前已支持 Skill 、MCP 、API 三种接入方式,面向个人开发者免费开放使用。 核心更新 1:基础融合算法升级 . 算法层引入全新混合排序方法,融合语义相关性与时效性信号,搜索结果质量显著提升 . 各垂直领域返回结果更丰富、结构更清晰 核心更新 2:Domain 重构 . 扩充垂直领域覆盖,重新划分领域边界 . 接口重命名:list_domains → get_sub_domains . 移除历史遗留参数(--content_types 、--zone 、--freshness ),后端自动处理 . --max_results 上限修正为 10 核心更新 3:更智能的搜索路由 . 垂直搜索现为默认推荐路径,通用搜索仅作为少数例外 . 混合策略:不确定领域时,用 batch_search 同时发起 1 条通用 + N 条垂直查询 . Required params:get_sub_domains 标注 ( required ) 的参数必须全部传入,不适用时传 "" 🐛Bug 修复 • 修复 tools/call payload 与 MCP 后端的语义对齐问题 • 修复 Windows 下 。env BOM 解析问题 • 修复 macOS 下 python3 运行时检测问题 • 修复常规使用中冗余调用 doc 命令的问题 🏗️ 内部优化 •Domain 常量与 doc spec 集中至 scripts/shared/,4 种 CLI 运行时统一从单一数据源生成 •消除约 400 行跨实现重复代码 🚀 在你的 Agent 里更新 AnySearch 方式一 直接告诉你的 Agent: “去更新 AnySearch skill: https://github.com/anysearch-ai/anysearch-skill” 方式二 手动执行: git -C <your_skill_dir> pull 新用户可以到 AnySearch 官网、GitHub ,一键部署至任意 Agent 或 AI 工作流使用。 官网: https://www.anysearch.com GitHub: https://github.com/anysearch-ai