DPS Build
839 subscribers
131 photos
3 videos
10 files
483 links
AI, coding, data science and startups
Download Telegram
本来制作邮件模版基本是手工活,现在基本全靠代码。

我用的是 resend,先在本地安装 bun install resend,然后在 resend 上生成一个 api key。

之前已经做了一些网页设计,所以直接拿这些素材丢给 claude 之类的 agent,让它设计合适的邮件模版。

本地预览了之后还算满意,就让 claude 写了一个上传的脚本,并且清理之前的版本。

整个流程都在代码里,不需要手工在后台拖拽,而且还还有版本控制。方便太多了!
有朋友问我现在还用不用 IDE,最近基本不怎么用了,返璞归真,回到了 terminal 里。主要是因为 claude code 的 vs 插件和claude code 本身还是有区别,直接在 terminal 里跑,感觉功能更全面。

1. 在一台Mac mini 上配置了 tmux + claude code + codex cli。这样所有的任务都跑在 tmux 里,开了两个 claude session 和一个 codex session。两个 claude 写不同的功能,codex 审核。

2. 用一台机器上还有 orbstack + lm studio,可以随时编译各种服务,调用本地模型测试 prompt 的效果。前端,后端都在 tmux 里跑着,supabase 跑在容器里。因为这台 Mac min 是顶配 M4 Pro,所以编译起来比 MacBook 快多了。

3. 同一台机器上跑着 tailscale + mosh,这样远程可以随时连上去,也不怎么需要折腾多个环境。另外的好处是,即使睡觉了,这台机器也随时跑着;就算回国了,也可以无障碍使用 claude 等服务。

4. 前阵子收了一台翻新的 MacBook Air M4,出门的时候就背这台,15寸的屏幕,13寸 MacBook pro 的重量,性能不是问题。

朋友问我要不要专门买 Mac mini 折腾成这样,我觉得其实手头有闲置的机器都可以折腾,没必要专门买。如果要大内存的机器,在闲鱼上可以看看有没有断头 Mac,性价比可能更高。
4
最近感觉 bug 越修越多,让 claude 和 codex 分别分析了一下,大概40%的时间在 debug 上。

我自己的感觉是:

1. AI slop 确实存在,很多代码越写越烦琐,写得越来越复杂,tech debt 越来越多;

2. 就我本身而言,一下子要学这么多新东西,根本学不过来。后端算是半路出家,前端完全零入门。选了 reflex 作为前端,原本以为是 python 生态下的容易上手,结果一半 python 语法,一半 js 语法,连 agent 都难以上手;

3. agentic engineering 大大压缩了开发时间,短时间可以写出更多的功能,也意味着暴露更多的 bug。也许 bug 总量的变化不大,但是因为在相对短的时间内爆发,所以让我感觉疲于奔命
终于设置了我的 claw,选用了 比较简单的的 nanobot,几千行代码,不像 openclaw 几十万行。

本地分装成 docker,部署到了 orbstack 上跑,限死了权限。本来想部署到另外一台闲置的老机器上跑,然后用 lm-studio 新发布的 lm-link 调用远程的模型,但配置起来更复杂,暂且就这样吧。

模型选了在 lm-studio 上跑最近刚发布的 qwen/qwen3.5-35b-a3b (Q4_K_M, 22G 显存),基本够用。

选了 telegram 作为入口;开启了 claude-code mcp 和 OpenAI's Codex CLI 官方的 codex mcp。

这样一来,可以用本地跑的 qwen 3.5 指挥 claude code 和 codex 干活。既然我本来就订阅了 claude 和 ChatGPT,这样的配置没有额外的开销。

不知道今晚会不会发布更强劲的 Mac mini,也许跑可以跑更强的本地模型。
昨天看到一个逆向工程 Apple ANE 的项目,于是顺手丢给 Claude 改了改跑 Qwen 3.5 的 dense model。

一开始效果一般,只能跑通 0.8b 的模型,4b 和 9b 都跑不起来。因为 ANE 有119 kernels 的限制。

今天看到 ANE-LM 这个项目,有更多的创新,于是又让 Claude 改了改,这下三个模型都能在 M4 Pro 上跑起来了。

效果见截图,模型越大,ANE 的优势越明显。

- Opt 1: Saves ~64KB zeroing × 96 calls/forward → minor latency reduction
- Opt 2: Eliminates 320 powf/cosf/sinf calls per layer → measurable CPU savings
- Opt 3: Removes inner loops in conv1d hot path → tighter CPU code
- Opt 4: Saves 1 ane_eval + 1 IOSurface round-trip per layer → ~36ms total for ANE mode (biggest win)
- Opt 5: Eliminates MPS object allocation per matvec → GPU mode overhead reduction

最后再贴一个项目:

https://github.com/vipuldivyanshu92/ANEgpt
周末开始跑 Karpathy 的新工具,试了两个场景,一个是 SEO 优化,一个是爬虫数据的清洗。

步骤很简单:

1. 让 agent 读取 autoresearch 的文档和代码;
2. 让它根据你的需求改写条件和目标,审核之后,就开始跑。

很适合跑多种组合+明确目标+快速迭代的实验。

https://github.com/karpathy/autoresearch
DPS Build
周末开始跑 Karpathy 的新工具,试了两个场景,一个是 SEO 优化,一个是爬虫数据的清洗。 步骤很简单: 1. 让 agent 读取 autoresearch 的文档和代码; 2. 让它根据你的需求改写条件和目标,审核之后,就开始跑。 很适合跑多种组合+明确目标+快速迭代的实验。 https://github.com/karpathy/autoresearch
仔细想想,这个和机器学习里的 grid search 理念有点相似。

grid search 是在机器学习中找 hyperparameter 时常用的方法。即暴力穷举各种可能,然后开始跑 cross validation。当然一次只能针对一个算法跑,所以局限在机器学习的场景里。

最近碰到清洗数据的问题,最早用了基于规则的方法清洗,几乎所有 agent 给出的最先方案都是这些。当然拿来做 baseline 也不错。但很快就遇到瓶颈。于是我想着本地能跑的模型性能也还不错,不如再加上 llm,这些是现在业界常用的清洗方法。

两种方法各有长短:

1. 基于 regex 的规则写起来快,处理速度也快,但是维护起来困难,而且非常容易 overfit

2. nlp 写起来慢,处理起来也慢,但是维护起来相对容易,也更容易拓展到新数据上。

上面的截图里,baseline 是基于 regex 写的规则,抽取率是 31%。我希望达到的目标是提高抽取率,同时慢慢用 nlp 取代冗长的 regex 规则,经过 A - G 轮的迭代,抽取率从 31% 提高到了68%,直接翻番。

全程我就是定义了目标,让 claude 自己读取文档,然后根据数据写 regex,写 nlp 算法,然后自行组合做 auto-research,半天时间就把抽取率翻倍,这在以前想都不敢想!
2
把博士论文用到的 R 代码丢给 Claude,让它重构一遍。不到半小时,砍掉了 68% 的重复代码 🤣
最近帮朋友优化 Wordpress,不得不感叹,有了 agent 之后简单太多了:

1. 让 claude 写了一个 Wordpress MCP,直接可以读取/更新文章,不用再去 Wordpress 后台一篇篇贴;

2. 朋友把所有相关文档存在 google drive 里,问 claude 怎么可以批量获取数据,推荐了 mcp 和 rclone 两个方案,选了后者。一步步在 google cloud 上配置好权限之后,我们就顺利获得了文件;

3. 朋友的品牌设计林林总总好多个文件,字体文件,PDF 等等不同的格式。让 claude 读取了之后,直接生成一个 token.json 和 vi.html,所有视觉设计的要素就浓缩成几十 kb 的两个文件了。
费了老半天劲,终于把开发环境部署到了 railway 上,架设在 tailscale 里,使用 cloudflare tunnel + access:

1. Container: node:22-slim based, deployed on Railway
2. Persistent volume: Railway volume — stores tools, workspace, Tailscale state
3. SSH access: Tailscale SSH
4. Browser access: code-server via Cloudflare Tunnel
5. Auth: Cloudflare Access

加了 persistent volume,所以现在部署很快。

code server 很不好部署,一直和 tailscale 有冲突,最后加了 cloudflare tunnel,绑定在自己的域名下。用 cloudflare 鉴权就可以通过浏览器访问了。

codex 可以用 device code 登陆。
DPS Build
费了老半天劲,终于把开发环境部署到了 railway 上,架设在 tailscale 里,使用 cloudflare tunnel + access: 1. Container: node:22-slim based, deployed on Railway 2. Persistent volume: Railway volume — stores tools, workspace, Tailscale state 3. SSH access: Tailscale SSH 4. Browser access:…
其实我把开发环境丢在家里的 Mac mini 上好几个月了,没啥大问题,但是首次连接会有些小问题。

另外考虑到回国之后没法用很多工具,所以就在 railway 上部署了另一个环境。

以后应该会把 railway 作为主环境,家里的 mac mini 作为备份。
昨天在国内一个高校分享了这一年多来的编程体验,我的理解是差不多经历了现金支付,信用卡支付再到移动支付三个时代。

所谓的现金支付阶段,是指开着一个 AI 聊天窗口,问一个问题,AI 生成一段代码,然后把代码带回 IDE 里跑一下,如此往复循环;

而到了信用卡支付阶段,开始在终端里跑 agent,agent 可以了解整个 repo 的上下文,对整个项目有更全面的了解,进而有更强的自主性,人的角色也慢慢变成了参与者;

现在到了移动支付阶段,agent 可以根据上下文,根据需求制定计划,人审核之后,agent 可以拆分子任务交给不同的 subagents 执行,执行完还可以调用其他模型审核代码。人的角色慢慢变成了架构师。

当然这些都在极速变化,我们可以 keep calm and catch on。

来听讲座的大概有二三十位数学系/统计系的同学,除了个别几位用到了移动支付阶段的 AI 编程,剩下的大部分都还停留在现金支付阶段。
👍4