升级打怪

 
Agent Skills 实战

如今,越来越多 AI 产品都已接入 Skills 功能 —— 从 Claude Code、OpenCode 到 CodeX、Antigravity,再到最近刚升级的 Coze 2.0,几乎成了主流 AI 工具的 “标配”。

但问题来了:火爆全网的 Skills,普通人到底该怎么用?


食用指南:


一共安装3个Skill:

  • frontend-design: 创建高质量的前端界面和组件,包括网站、落地页、仪表板、React组件等
  • mcp-builder: 创建MCP (Model Context Protocol) 服务器的指南
  • skill-creator: 创建新技能的指南

👇下面以 Claude Code 为例,讲讲 Skill 的使用和创建:

2026-01-26_18-43

首先检查安装好的 Skill。

当前有哪些skill?
2026-01-26_18-20

然后,使用 “skill-creator” 创建了 “ImageMagick Skill”。

请帮我把开源项目https://github.com/lmageMagick/lmageMagick,打包成一个Skill,方便我以后直接调用它来对我的图片素材进行处理,可以比如格式转换,分辨率修改、压缩等等
2026-01-26_18-20

接着,用自己刚创建的 “ImageMagick Skill”,压缩图片。

请将2026-01-26_18-43.png图片转换成webp,图片大小压缩一下,并保存在原始图片同目录下。
2026-01-26_18-29

看到这里,发现很简单是不是?

“任何可以复用的能力,都建议抽象成技能,一定要Skill化。”

大家可以动手了。

note:使用 npx skills add <owner/repo> 安装的 Skill 可以给电脑上任何 AI 工具使用。自己创建的 Skill 只限于当前的 AI 工具,但是你可以复制到一个公共目录,然后通过软连接共享给其他AI工具。


Ref

 
clawdbot 是啥?流量密码㊙️?
clawdbot

刚用AI写了篇 Homebrew 周报,发现里面竟然有 Clawdbot😺。

老实说,我没有完全理解它的“价值“。


ChatGPT 4.0 发布没多久的时候,我发现了一个非常热门的开源项目:AutoGPT

一开始,我感觉很神奇:AutoGPT 可以根据任务自己搜索网页、下载文件等等,一切都是自动化操作。

我被它这套动作折服,但很快被现实打脸👊,它未解决任何任务‼️。

迄今为止,AutoGPT并没有给我解决任何问题,它就像个玩具


“后面开始接触 Cursor,是它让我感受到 AI 不是骗人的把戏。”

自从使用 Cursor 辅助编程,工作效率提升了很多,原来半天或者一天的工作,可能1~2个小时就完成了。

Cursor,值得付费。


回到 Clawdbot,去它的主页看了看,跟 AutoGPT 很像。

我完全没理解它能做什么?如果抛开 AI,它只剩下壳,如同它的logo,小龙虾🦞。

个人预计,很快就没人会讨论它,Clawdbot。


Ref

 
Penpot 终于官方支持MCP了、撒花🌹
penpot

Web 端的 UI 设计师,主流都是使用 Figma,但 Figma 是商业软件,对于资金有限的 team 来说,是一笔不小的开销💰。


Penpot 是 Figma 的 free 平替,开源程度高,支持自有部署。

如果有较高要求,也可以购买他们的商业许可,获取更多功能。

在 AI Coding 的年代,Penpot 有很大缺憾、缺乏 MCP 支持,显得有点脱节。

现在官方支持 MCP,是个令人振奋的好消息。


Ref

 
🍺 Homebrew 更新周报 #20260126 | 当终端开始重新变得“好用”

当工具不再抢存在感,而是默默接过复杂性

真正有分量的工具更新,
往往不是多给你几个按钮,
而是让你少记几件本该交给系统的事。

这一期 Homebrew 的新增,更像是在底层悄悄铺路。


本周一句话总结

没有明星级工具,
但多了一整批:
当工作流变复杂时,你会开始庆幸它们存在的选项。


本周新增工具速览

🧪 New Formulae

名称 中文说明
durdraw 终端里的 ASCII / ANSI 艺术绘图编辑器
ekphos 类 Obsidian 的终端 Markdown 研究工具
gnuastro 天文数据处理与分析工具集
libigloo Icecast 项目使用的通用 C 框架
magics ECMWF 出品的气象绘图软件
mlx-c MLX 的 C 语言 API
nativefiledialog-extended 原生文件选择对话框库(C/C++ 绑定)
openskills 面向 AI 编程 Agent 的通用技能加载器
pocket-tts 面向 CPU 优化的本地语音合成工具
repeater 基于间隔重复算法的闪卡学习工具
sandvault 在 macOS 沙盒用户中隔离运行 AI Agent
signalwire-client-c SignalWire 的 C 客户端 SDK
tftp-now 单文件版 TFTP 服务器与客户端
tock 命令行时间追踪工具
vtsls VSCode TypeScript 扩展的 LSP 包装器
wik 在终端中浏览维基百科

🧩 New Casks

名称 中文说明
amical AI 语音听写应用
appvolume 按应用调节系统音量
aquaskk@prerelease 无形态分析的输入法
boltai@1 AI 聊天客户端
captains-deck 双栏文件管理器(Norton Commander 风格)
claudebar 菜单栏里的 Claude 使用配额监控工具
clawdbot 个人 AI 助手
codebuddy AI 自适应 IDE
codebuddy-cn CodeBuddy 中文版
finetune 应用级音量混音与路由工具
font-playwrite-nz-basic Playwrite NZ 基础字体
font-playwrite-nz-basic-guides 带书写引导线的 Playwrite NZ 字体
gitfit 等 AI 生成代码时做微运动的小工具
impactor iOS / tvOS 应用侧载工具
lolgato Elgato 灯光控制增强工具
mcpbundler MCP 服务器与 Agent 技能管理器
monologue 会适应你写作风格的 AI 语音听写
mos@beta 平滑滚动与独立滚轮方向控制
plaud 会议 / 通话 / 面对面场景的 AI 记录工具
superset 用于编排 Agent 的终端工具
transmission@beta 开源 BitTorrent 客户端(测试版)

值得留意的几个方向

sandvault:当 AI Agent 开始需要“隔离区”

AI Agent 越来越强,
但也越来越“像另一个用户”。

sandvault 做的事情很克制:
不试图限制 Agent 的能力,
而是给它一个单独的 macOS 用户沙盒

这是一种很成熟的工程判断:
不是假装安全问题不存在,
而是把风险关进可控的房间里。


ekphos:研究型写作,回到终端

知识管理工具越来越重,
但真正写东西的时候,
很多人还是回到了 Markdown。

ekphos 的气质很明确:
不做“第二个 Obsidian”,
而是把“链接、引用、检索”
搬回终端这种低干扰环境。

它更像一个研究用的工具箱,
而不是笔记应用。

ekphos-example

pocket-tts / monologue / amical

当“输入”开始重新被发明

这一期出现了不止一个语音工具,
但它们的方向非常一致:

  • pocket-tts:强调本地、低资源消耗
  • monologue:强调写作风格适配
  • amical:强调随时可用的语音入口

这不是功能堆叠,
而是输入方式在悄悄换代。


openskills / superset / mcpbundler

当工具开始为 Agent 而设计

这一期最明显的信号之一是:
工具开始假设“使用者不只是人”。

  • openskills:为 Agent 提供可加载技能
  • superset:用终端编排 Agent 工作流
  • mcpbundler:集中管理 Agent 能力包

这不是噱头,
而是开发环境结构正在真实变化。

mcpbundler

MCP Bundler


一点个人感受

这一期没有
“你不用就会落后”的工具。

但你会发现,
很多项目都在同一个方向上用力:

  • 把 AI 关进更安全的容器
  • 把输入变得更自然
  • 把复杂的工作流拆解成模块

它们不是为了炫技,
而是为了让未来的工具世界
不至于失控。


结语

Homebrew 的更新,
越来越像一张慢慢展开的地图。

它不催你赶路,
只是告诉你:

这条路上,又多了几种更稳妥的走法。

我们下期再见。

 
再谈 vibe coding

昨天刷到一篇帖子公司开始全面 vibe coding 之后感觉更累了 - V2EX

op 写了大段内容,看着很累,待看到后面的评论区,才知道 op 用了AI排版😓。


“简单说,就是用了 vibe coding 后,开发更累了。”

看了op的 “后续反思”,感觉太低级,有点误人子弟。

还好评论区,有几个不错的建议(#17#19)。

不能说完全解决问题,但是解决问题的路径和对AI的理解确实不是小白可比。


每个人对于AI的使用,其能力是参差不齐的,有的人是“自我总结”,有的人是学习官方文档。

如果一开始,就是零星学习一些散落的AI知识,再结合“自我总结”。

这样的路径,最终会导致不伦不类。


好的路径应该是,首先从官方文档开始学习,然后逐渐递进学习深度,例如:Rules、Skills 等等。

使用AI能力的判断标准,可以通过下面5个维度来看:

Radar-1
  • 输入控制力(Input Control)
  • 输出可控性(Output Control)
  • 任务建模力(Task Modeling)
  • 风险与约束意识(Risk Control)
  • 系统与流程设计力(System Design)

油管上有主播谈了一下,企业中使用 “vibe coding” 开发遇到的问题,将的还蛮好的,可以看看。


还有个主播,讲了很多AI基础和原理性的内容,非常适合新人学习。


最后,我想说,很多使用者都是从 ChatGPT 开始接触 AI 工具,对于“LLA大模型”“模型蒸馏”“Agent”“MCP”“Skill”等等,都只是一知半解。

但是,AI 发展很快,其技术指标一直在迭代,如果不去学习官方文档,根本不清楚当前使用的模型有哪些功能特性,更加不要说 Vibe Coding。


Ref

 
Homebrew 更新周报 #20260120 | 当工具开始替你分担复杂性

当工具开始替你分担复杂性

真正有分量的工具更新,
往往不是让你“能做更多事”,
而是让你少为一些本该被自动化的细节操心

这一期 Homebrew 的新增工具,
大多安静、专业,
但几乎都在同一个方向上用力:
把复杂性留给系统,把判断权还给人。

“这一期的工具,不追求存在感,但在关键时刻能把复杂留给机器。”


本周一句话总结

这周没有“必须立刻安装”的明星工具,
但多了一整组——
当项目变大、系统变复杂时,
你会开始庆幸它们存在的选项。


本周新增工具速览

🧪 New Formulae

名称 中文说明
azure-dev Azure 官方开发者 CLI,用于统一管理与操作 Azure 资源
dovi_convert Dolby Vision Profile 7 → 8.1 的 MKV 视频转换工具
ffmpeg-full 含完整编解码支持的 FFmpeg 音视频工具集
fzf-tab 使用 fzf 替换 zsh 补全菜单
imagemagick-full 全功能 ImageMagick 图像处理工具
kubefwd Kubernetes Service 批量端口转发工具
libks SignalWire C 产品的基础支持库
libthai 泰语语言处理支持库
pgroll Postgres 零停机数据库迁移工具
ralph-orchestrator 面向自主 AI 任务的多 Agent 编排框架
rig-r R 语言运行时安装管理器
rv-r 声明式 R 包管理工具
shiki 高质量语法高亮引擎
worktrunk 面向并行 AI Agent 的 Git worktree 管理 CLI
xcsift 解析 xcodebuild 输出的 Swift 工具

🧩 New Casks

名称 中文说明
ausweisapp 德国联邦政府官方 eID 客户端
auto-claude 支持多会话的自动化 AI 编程工具
bettershot 截图、标注、编辑一体化工具
eigent 桌面级 AI Agent
font-zxgamut ZX Gamut 字体
freeshow@beta 演示文稿软件(测试版)
glide 树状布局的平铺窗口管理器
hytale Hytale 官方启动器
kogiqa 自然语言驱动的 UI 自动化工具
novation-play Launchkey MK4 虚拟乐器
proscoreboard 比赛记分板软件
provideoplayer 演示播放工具
stremioservice Stremio Web 桌面配套服务
waveforms Digilent 测试与测量虚拟仪器套件

值得留意的几个方向

pgroll:当数据库迁移不再是“深夜操作”

schema-changes-flow

数据库迁移最让人紧张的,
从来不是 SQL,
而是那句反复确认的:

“这一步,会不会影响线上?”

pgroll 把“零停机迁移”变成默认路径,
不是炫技,
而是在替团队保留安全感。


kubefwd:让 Kubernetes 回到本地感受

tui-110-main-active

Kubernetes 很强,
但开发阶段,它往往离人太远。

kubefwd 做的事情很简单:
把集群服务自然地拉回本地。
少记端口、少写规则,
系统替你消化重复劳动。


fzf-tab:补全,也可以是搜索

当补全列表开始变长,
“选择”本身就成了负担。

fzf-tab 把补全变成搜索,
这是交互方式的转向,
而不是功能堆叠。


当工具开始为 AI Agent 准备工作流

这一期有一个明显信号:
工具开始默认“使用者不只有人”。

  • ralph-orchestrator 负责任务调度
  • worktrunk 为并行 Agent 提供 Git 空间
  • xcsift 把构建日志结构化给机器读

开发环境,正在悄悄换代。


bettershot:截图工具,正在变成表达工具

截图不再只是“截一张图”。

标注、解释、整理、分享,
这些原本分散的动作,
正在被折叠进一个更顺手的流程里。


ausweisapp:低调,但极其重要的存在

csm_frau-zeigt-handy-in-die-kamera_b1f4faba16

它不是效率工具,
却承担着真实世界的身份确认。

这种软件存在的意义,
往往只有在需要时才会被意识到。


一点个人感受

这一期没有
“你不用就会落后”的工具。

但它们高度一致地做了一件事:
替人分担复杂性。

当工具开始替你思考细节,
人才能把注意力,
留给真正重要、也真正需要人参与的部分。


结语

Homebrew 的更新,
越来越像一张慢慢展开的地图。

它不催你赶路,
只是告诉你:

这条路上,又多了几种更省心的走法。

我们下期再见。

 
使用 ChatGPT,开发 VS Code Extension

还是跟上次一样,这次也是 Vibe Coding。

写起来很easy,只需要review和调试。

2026-01-17_17-59
  1. 首先是一个很基础的 mvp;
  2. 代码优化、插件调试和编写项目说明;
  3. 发布 Marketplace;

发布 Marketplace,花的时间最多,步骤有点多:

  • 首先用 Microsoft 账号创建 Azure 账号;
  • 再用Azure账号,创建 Azure DevOps 组织(这里需要绑定信用卡);
  • 有了组织后,就可以创建 publisher 账号;
  • publisher 账号才可以发布到 Marketplace 应用市场;

本地调试,直接选中项目文件extension.js,按 “F5”

2026-01-17_19-23

这时,会弹出一个调试用的 vs code,

  1. 再按“Command + shfit + p”,
  2. 输入“Matrix Overlay: Start”
  3. 就能看到一个 Matrix 黑客帝国动画
Kapture 2026-01-17 at 19.29.48

插件发布有2种方式:

  1. 使用 vsce 发布;
  2. 直接登录 Marketplace 后台上传插件;
2026-01-17_19-43

二者都可以,但还是推荐 vsce,可以看到一些检查信息。

2026-01-17_19-49

插件的 icon.png 是使用 AI 生成:

Matrix-inspired cyberpunk icon.
Stylized hacker sunglasses with glowing green code reflections,
a minimalist lightning bolt integrated into the lenses.
Dark theme, neon green glow, high contrast.
Flat vector icon, no background details, no text.
Optimized for small UI icon usage.
2026-01-17_19-53

效果如下:

icon_20260117124031668 (1)

“个人感觉还不错,闪电⚡️和墨镜🕶️都有,要是背景透明就更好了。”

因为是要钱的,所以只生成了一张。😅


Ref

 
别盲目投入开源,那里也不是“乌托邦”

其实用“乌托邦”来形容,并不合适,也没有表达出准确的意思。

但,确实想不出更好的词。


Vercel 这家公司,我并不喜欢。

React 我也不喜欢,感觉被一群人打劫了前端的未来。

表现在,

“现在写✍️前端,跟写后端一样看不到未来。”

自从 Spring 一统 Java 之后,给后端的剩下的就只有CURD


“谁会跟钱过不去?”

WLB(Work-life Balance) 是堆砌在物质的基础上,连最起码的温饱都没有,纯爱❤️发电能坚持多久?


前些时候,看了「Linus Torvalds 采访」,感觉 Linus 这段话蛮有感概:

“ Money really isn't that great of a motivator. It doesn't pull people together. Having a common project, and really feeling that you really can be a full partner in that project, that motivates people, I think. ”

总结,金钱或许可以驱动开源,但无法凝聚人心。


「尾巴🧣」

事实上,很早时候,开源社区的领导者就意识到这个问题,所以才会出现GPLv2 等协议📖。


Ref

 
使用 ChatGPT,开发了一个 PopClip 插件

RT,这个算不算是😧,Vibe Coding?🤔


上午在coding页面的时候遇到一个挺烦人😡的事情:css 转內联样式。

2026-01-13_14-12 2026-01-13_14-10

在 Marketplace 找了一圈也没特别心仪的插件。

不是没有,而是没遇到心仪的。

主要问题是:

  • 功能杂七杂八,不够纯粹
  • 很久没人维护
  • 名字取的不感冒😷,蹭热度

我就喜欢那种能将一个事情做到极致,又很纯粹的东西。

可惜,nothing。


突然想到,自己非常喜欢的工具🔧,PopClip。

它挺适合解决这个问题:选中一段css,然后转换成内联样式

说干就干,立马派 ChatGPT 干活。


2026-01-14_09-47

一开始,先询问“popclip 有类似的插件吗?”

ChatGPT 提示我,可以自己做一个PopClip扩展

想了想,觉得可以,当作一个实验


经过数轮验证和提示词修改,终于完成成品,效果还蛮理想。

Look Here👀👇

Kapture 2026-01-14 at 10.00.06

代码如下:

  1. 新建 CSS2JS.popclipext 文件夹。

  2. 创建 Config.yaml

name: CSS to JS Object
identifier: com.richie.css2js
description: Convert CSS to JavaScript style object
icon: code

actions:
  - title: CSS→JS
    icon: code
    requirements: [text]

    # PopClip 2025 官方 Shell Script Action 写法
    shell script file: css2js.py
    interpreter: python3
    stdin: text
    after: paste-result
  1. 再创建 css2js.py
#!/usr/bin/env python3
import sys

text = sys.stdin.read()

lines = [l.strip() for l in text.splitlines() if ':' in l]

entries = []

for line in lines:
    line = line.rstrip(';')
    if ':' not in line:
        continue

    prop, val = line.split(':', 1)
    prop = prop.strip()
    val = val.strip()

    parts = prop.split('-')
    camel = parts[0] + ''.join(p.capitalize() for p in parts[1:])

    entries.append(f"  {camel}: '{val}'")

print("{")
print(",\n".join(entries))
print("}")
  1. 赋予脚本可执行权限
chmod +x css2js.py
  1. 双击即可完成安装。
Kapture 2026-01-14 at 10.22.35

PopClip 插件支持2种扩展类型:

  1. Package(当前是这种方式)
  2. Snippet 脚本,选中一段代码,然后出现安装提示🔔。如下:
2026-01-14 10.08.01

刚开始是使用第一种方式开发,看起来很简单,但始终报错运行不起来。

后面改成第二种方式,一次就跑起来了。


使用 ChatGPT 开发这个插件,也遇到一些比较头疼🤕的问题:

“ChatGPT 提供的代码始终无法运行。”

后来,我意识到问题所在:“它的训练数据可能过时了”

因此,我改变了提示词,结果一目了然✌️。

2026-01-14_10-29
 
抛弃 Cursor,拥抱 Cline?

使用 Cursor,快2年。确切来说,白票2年。

或者使用公司提供的 team 许可,或者在申请 free 许可的路上。

Cursor 整体使用上就一个字,爽。


但,有痛点。

VS Code 陪伴我差不多有7、8年,配置了很多插件,形成了一些习惯。

突然有一天,被其他工具取代,有点不适应。

“并不是所有插件,都同时兼容 VS Code 和 Cursor”

‼️更为重要,并不是所有事情都需要 AI 辅助才能完成。


Cline 出来应该有一段时间,我是最近才开始使用。

通过这段时间(1-2个礼拜),我发现它基本能替代 Cursor 的功能。

当然,使用习惯需要调整,有个逐渐适应的过程。


不可否认,Cursor 的 UI 和交互性比 Cline 看起来要专业,毕竟一个是 IDE,一个是 IDE 插件。

“某些角度来讲,VS Code 不是简单的编辑器,武装一下就成了 IDE”

Cline 最新的版本是v3.49.0,更新很快,比IDE勤快。


大概长这个样子:

2026-01-12_12-51

最近在学习 Agent Skill,所以特意标注了。

Ref

 
Homebrew 更新周报 #20260112 | 当工具开始替你思考细节

当工具开始替你思考细节

真正有分量的工具更新,
往往不是给你更多可以点的地方,
而是让你少操心几件本该被机器处理的事。

“你不需要记住 cron 什么时候跑过”
这一期 Homebrew 的新增,
正是在这些细碎但长期消耗注意力的地方,
悄悄接过了一部分工作。


本周一句话总结

这周没有“划时代”的工具,
但多了几样会在你需要时,
默默派上用场的小东西。


本周新增工具速览

🧪 Formulae

名称 简介
any2fasta 多种生物序列格式转 FASTA 的小工具
azurite Azure Storage 的本地模拟服务器
beads_viewer Beads Issue Tracker 的终端界面
codanna 带语义搜索的代码智能分析系统
cronboard 本地与远程 Cron 任务的终端看板
[email protected] Haskell 编译器的新版本
hindent Haskell 代码格式化工具
minizign 用 Zig 实现的 Minisign 签名工具

🧩 Casks

名称 简介
fork@dev Fork Git 客户端的开发版
wispr-flow 带 AI 自动润色的语音转文字工具

值得留意的几个项目

codanna:当代码库开始变得“太大”

在小项目里,grep 足够好用。
但当代码库开始长成“系统”,
你真正需要的是:
“这个功能在哪里被实现?”

而不是:

“哪个文件里出现了这个词?”

codanna 用语义来理解代码,
更像是在给你的项目加一层“可思考的索引”。


cronboard:把看不见的定时任务拉到台前

大多数服务器上的 cron,
都在悄悄运转。

你知道它们存在,
却很少真正“看见”它们。

cronboard 做的事很简单:
把这些后台任务,变成一个可以随时打开的看板。
什么时候跑、有没有失败,一目了然。

cronboard

azurite:云服务,也需要一个“影子世界”

当你使用 Azure Storage,
最难受的往往不是 API,
而是:

“我只是想在本地试一下。”

azurite 给云服务提供了一个“可本地跑的副本”,
让调试回到电脑本身,
而不是网络和账单。


wispr-flow:输入法,正在变得会写字

语音转文字已经不稀奇了。
wispr-flow 多做了一步:
它会把你说的话,
整理成更像“人写的句子”。

这意味着,
输入工具正在从“记录你说了什么”,
走向“理解你想表达什么”。


fork@dev:给 Git 用户的一点新鲜感

如果你已经在用 Fork,
@dev 版就是提前尝鲜。

更快的 diff、更顺的操作,
都不是革命,
但会在每天的 commit 里慢慢体现。


一点个人感受

这一期没有那种
“你不用它就会落后”的工具。

但它们都有一个很一致的方向:
把人从零碎的确认、检查、搜索里解放出来。

cronboard 让混乱变得可见,
codanna 让复杂变得可搜索,
wispr-flow 让表达变得轻松。

当工具开始替你思考细节,
人才能把注意力,留给真正重要的部分。

也许这正是这一期 Homebrew
最安静、但最有价值的地方。


结语

Homebrew 的更新,
越来越像一张工具地图。

不是告诉你该往哪走,
而是让你知道:
这条路上,多了几个可选的歇脚点。

我们下期再见。

 
智能体设计模式:智能系统构建实战指南
 
LLM 学习笔记

首先接触的是 Ollama,优点:

  • 容易上手,相关文档和资料比较多;
  • 模型种类丰富;
  • 对 macOS 友好

第一阶段

了解模型种类和划分

1. 按 Transformer 架构划分

类型 核心模块 核心特点 典型任务 代表模型
自编码模型 仅 Encoder 双向注意力,擅长语义理解 文本分类、情感分析、命名实体识别 BERT、RoBERTa、ALBERT
自回归模型 仅 Decoder 单向注意力,自回归生成 文本生成、对话、摘要 GPT 系列、Llama、BLOOM
序列到序列模型 Encoder + Decoder 输入 - 输出序列转换 翻译、生成式摘要、数据转换 T5、BART、GLM

2. 按应用场景划分

  • 通用大模型:跨领域数据训练,适配对话、创作、翻译等多任务,如 GPT - 3.5/4、Claude、Llama 2。

  • 代码专用模型:聚焦编程场景,优化代码生成、补全、调试,如 DeepSeek - Coder、CodeLlama、StarCoder。

  • 行业垂直模型:针对医疗、金融、法律等领域优化,如 Med - Palm、LawGPT。

  • 轻量化 / 蒸馏模型:压缩大模型知识适配低算力场景,如 DistilGPT2、DeepSeek - R1 - Distill。

3. 按能力特性划分

  • 推理增强模型:经思维链微调,擅长数学解题、逻辑分析,如 Qwen3 - 4B - Thinking。

  • 智能体模型:具备工具调用与自主决策,适配复杂任务,如 Tongyi - DeepResearch - 30B - A3B。


第二阶段

深入模型使用

1. ollama 基础操作

# 拉取指定模型
ollama pull <model-name>

# 拉取特定版本的模型
ollama pull llama2:7b
ollama pull mistral:latest

# 查看已下载的模型
ollama list

# 删除指定模型
ollama rm <model-name>

# 复制模型(创建副本)
ollama cp <source-model> <new-model-name>

# 运行默认对话
ollama run <model-name>

# 带系统提示词运行
ollama run <model-name> --system "你是一个有帮助的助手"

# 示例
ollama run llama2
ollama run mistral

# 单次查询(不进入交互模式)
ollama run <model-name> "你的问题是什么?"

# 通过 Modelfile 创建
ollama create <model-name> -f Modelfile

# 查看模型详情
ollama show <model-name>

# 启动 Ollama 服务
ollama serve

# Linux/Mac
pkill ollama

# 指定使用特定 GPU
CUDA_VISIBLE_DEVICES=0 ollama run <model-name>

# 查看运行日志
ollama logs

2. ollama 进阶使用

通过 Modelfile 创建模型

FROM llama2:7b

# 设置参数
PARAMETER temperature 0.7
PARAMETER num_ctx 4096

# 系统提示词
SYSTEM """你是一个专业的技术顾问..."""

# 模板
TEMPLATE """{{ .Prompt }}"""

模型量化技术

量化技术(Quantization)是一种通过降低模型权重精度来减少内存占用和计算资源需求的技术。 在Ollama中,这一核心功能主要由llm/llm.go文件中的Quantize函数实现。 该函数通过调用底层llama.cpp库,将高精度的模型权重转换为低精度表示,同时尽可能保持模型性能。

简单说,通过量化技术个人电脑也可以跑大模型,突破硬件限制🚫。

  1. 如何量化大模型?
  2. 如何使用量化后的大模型?

第1点还在学习中,第2点比较简单。

# 方式1:直接运行预量化版本(最简)
ollama run qwen2.5:7b-instruct-q4_K_M

# 方式2:M1 Pro 深度优化启动(推荐)
OLLAMA_GPU_LAYERS=-1 \
OLLAMA_CONTEXT_SIZE=8192 \
OLLAMA_BATCH_SIZE=512 \
ollama run qwen2.5:7b-instruct-q4_K_M
ed9becfc83f517c79fffc2aa1e4ca330

显示模型信息,其量化等级为“Q4_K_M”

2026-01-06_18-00

配合 langchain.js 调用

2026-01-06_17-49 2026-01-06_17-47

总结

  • LLM
  • Ollama
  • Langchain

以上是这段时间学习到的关于LLM的应用。

Ref

 
npm 开发

Ref

 
Homebrew 更新周报 #20260104 | 工具在更新,生活不必跟着加速

工具在更新,生活不必跟着加速

有些更新,是为了让人跑得更快;
有些更新,只是为了让路更顺一点。
Homebrew 的日常更新,更像后者。


本周一句话总结

最近越来越觉得,工具的价值不在于“多新”,
而在于——当你需要的时候,它刚好在那里。


本周新增工具速览

🧪 Formulae

名称 简介
dotnet@9 .NET 9(LTS)开发与运行环境,支持跨平台现代应用
headson 面向结构化数据的 head / tail 工具,安全处理 JSON、CSV
topydo 基于 todo.txt 规范的命令行待办事项管理工具

🧩 Casks

名称 简介
crypto-native-app-ng 本地加密与签名工具,可与浏览器扩展安全通信
excire-search Lightroom Classic 插件,提供自动关键词与高级图片搜索

值得留意的几个项目

dotnet@9:版本明确,本身就是价值

对使用 .NET 的开发者来说,多版本并存几乎是日常。
dotnet@9 这种明确带版本号的 Formula,反而让人安心。

它不会悄悄替你做决定,也不会打断已有项目节奏。


headson:为结构化数据留一条生路

直接用 head / tail 处理 JSON,
结果往往只有一个:结构被破坏。

headson

headson 的存在感很低,但解决的问题非常具体:
在命令行里,只看一部分数据,同时不把数据搞坏。

headson

topydo:纯文本待办事项的“老派坚持”

topydo 基于 todo.txt
没有账号、没有同步、没有复杂配置。

你写下的,就是你要做的。

topydo

excire-search:当照片数量开始失控

这是一个很安静、但很专业的工具。

当 Lightroom 里的照片从“几百张”变成“几万张”,
搜索本身就会消耗大量精力。

自动关键词与语义搜索,
并不是为了炫技,而是为了把注意力还给创作。


crypto-native-app-ng:存在感很低,但位置明确

这是一个偏向安全与隐私场景的工具,
对大多数用户来说,可能永远用不到。

但它的定位非常清晰:
本地加密 + 浏览器安全通信

如果你确实需要这类能力,
它不会突然变得复杂。

crypto-native-app-ng

一点个人感受

这一期没有“必装工具”。
但正是这种更新,让人感觉系统在慢慢变好。

你不需要全部安装,
甚至一个都不装。

但当某天遇到类似场景,
你会记得:

Homebrew 里,好像有这么一个工具。

这就够了。


结语

Homebrew 的更新不是新闻,
更像一份周记。

记录的不是“你必须做什么”,
而是世界又多了一点选择。

我们下期再见。

 
LangChain.js 开发日志
pnpm add langchain @langchain/core @langchain/langgraph @langchain/ollama
pnpm add -D @types/node ts-node tsx typescript

目录结构如下:

2025-12-31_18-06

package.json

{
  "name": "langchain-llm",
  "version": "1.0.0",
  "description": "",
  "type": "module",
  "main": "index.ts",
  "scripts": {
    "ollama": "tsx src/ollama.ts",
    "prompt-template": "tsx src/prompt-template.ts",
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "packageManager": "[email protected]",
  "dependencies": {
    "@langchain/core": "^1.1.8",
    "@langchain/langgraph": "^1.0.7",
    "@langchain/ollama": "^1.1.0",
    "dotenv": "^17.2.3",
    "langchain": "^1.2.3",
  },
  "devDependencies": {
    "@types/node": "^25.0.3",
    "ts-node": "^10.9.2",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3"
  }
}

src/ollama.ts

import { ChatOllama } from "@langchain/ollama";

async function main() {
  const llm = new ChatOllama({
    model: "qwen2.5:7b", // 或 deepseek-r1:7b
    // model: "deepseek-coder:6.7b", // 或 deepseek-r1:7b
    temperature: 0,
  });

  const res = await llm.invoke("用一句话解释什么是 LangChain");

  console.log(res.content);
}

main().catch(console.error);

src/prompt-template.ts

import { ChatOllama } from "@langchain/ollama";
import { PromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";

const model = new ChatOllama({
  model: "qwen2.5:7b", // 或 deepseek-r1:7b
  temperature: 0,
});

// 创建 Prompt 模板
const promptTemplate = PromptTemplate.fromTemplate(`
你是一个{role},专门帮助用户解决{domain}相关的问题。

用户问题:{question}

请提供详细、专业的回答,包含以下要素:
1. 问题分析
2. 解决方案
3. 代码示例(如果适用)
4. 最佳实践建议

回答:
`);

// 创建输出解析器
const outputParser = new StringOutputParser();

// 构建处理链
const chain = promptTemplate.pipe(model).pipe(outputParser);

async function promptTemplateExample() {
  try {
    const result = await chain.invoke({
      role: "资深前端工程师",
      domain: "React 性能优化",
      question: "如何优化 React 应用的渲染性能?",
    });

    console.log("优化建议:");
    console.log(result);
  } catch (error) {
    console.error("处理失败:", error);
  }
}

promptTemplateExample();

Ref

Prev
Page 3 of 5
Next