AI 极客实战教程日报
🔭 今日 AI 实践观察:昨天全球 AI 极客在学什么、做什么?
三个清晰信号:① "本地优先"成为实战派共识——Claude Code 工作日志工具坚持数据不出本机,APUS 用 9B 本地小模型复刻浏览器 Agent 决策,Rig/KISS 都把本地模型端点作为一等公民;② MCP 从概念进入"8 分钟搭好、6 个坑修完"的工程成熟期,一手 Build Log 开始精确记录每一次失败的报错和修法;③ Agent 运行时正在向 OpenAI 兼容 API 收敛(Rebyte),同时"System 1 决策模型 + 候选动作集"成为 Browser Agent 对抗选择器幻觉的新范式。创作者侧,有人干脆绕开剪辑软件,用 HTML 逐帧渲染 + FFmpeg 拼视频。
给 Claude Code 装一个"每日工作日志":hooks + systemd + 私有 git 仓,数据永不出本机
原始教程
- Blog 原帖asadqi.com — I built a daily work log for Claude Code, and it never leaves my machines
- GitHubus-urvin/worklog-for-claude-code(0.1.0 首次公开发布于 2026-09-26,MIT)
- PyPIworklog-for-claude-code
作者是谁
Adil Sadqi,独立开发者,日常工作重度使用 Claude Code(笔记本 + 台式机、工作 + 个人双账号)。这是他为自己痛点写的工具,属于典型第一手 Build Log。
教程讲了什么
作者每天 18 点回答不了两个问题:今天到底做完了什么?token 用了多少?他用 Claude Code 的 session hooks(会话开始/结束触发)读取本地 transcript,外加每小时 systemd 定时器兜底,把每次会话写成一条小 JSON 记录存进自己的 git 仓——每台设备只写自己的文件路径,多机推送同一仓库也不会冲突。夜间任务把记录聚合成 Markdown 报告,本地 Web UI 展示。隐私是第一设计约束:只存 prompt 前 300 字符、token 数、文件名和 commit 标题,落盘前脱敏 API key/JWT/邮箱/IP。
为什么值得收藏
这是"AI Coding 进入日常化之后"才会出现的工具:当 Claude Code 成为你的主要工作方式,可审计性(做了什么)和可计量性(用了多少)就变成刚需。它还示范了一套干净的本地工具架构:hooks + systemd + git 同步 + loopback Web UI,对企业里"AI 使用量统计但不能上传代码"的合规场景有直接参考价值。
技术栈
| 模型 | 可选 AI 摘要走你自己的 claude -p(可关闭,关闭后完全无模型调用) |
| 工具 | Claude Code hooks、systemd timer、git、本地 Web UI(loopback only,CSRF + 严格 CSP) |
| 语言 | Python 3.10+(pipx 安装) |
| 部署环境 | Linux + systemd(暂不支持 macOS/Windows);数据可放私有 GitHub/GitLab 仓多机同步 |
| 其他 | MIT 协议;transcript 解析为非官方格式,解析器跳过无法识别的行而非崩溃 |
完整 Workflow
手把手复现
- 30 秒体验(假数据、不碰你的文件):
pipx run --spec worklog-for-claude-code claude-worklog demo,打开 http://localhost:8766 - 正式安装:
pipx install worklog-for-claude-code - 建数据目录:
git init ~/claude-worklog-data - 装后台服务:
claude-worklog install-service - 打开 http://worklog.localhost:8765,填设置表单,点 Install hook
- 多机使用:把数据目录放进私有 GitHub/GitLab 仓库,各机器推送同一仓
关键代码 / 配置
pipx install worklog-for-claude-code
git init ~/claude-worklog-data
claude-worklog install-service
# 然后浏览器打开 http://worklog.localhost:8765 → Install hook
架构上最值得学的一点:"每个文件路径只由一台设备写入"——用写入权划分取代锁和合并逻辑,多台机器可以向同一个 git 仓推送而永远不会产生 merge conflict。
踩坑与注意事项
- 仅 Linux + systemd;macOS 需要有人贡献 launchd 单元
- 只支持 Claude Code(claude.ai 网页聊天不落本地 transcript)
- transcript 格式非官方,Claude Code 升级可能暂时打断解析
- token ≠ 美元:Pro/Max 订阅按限额计,不显示价格
- 脱敏是 best effort——数据仓务必保持私有
普通人能不能复现
⭐⭐ 有基础用户 会基本 Linux 命令行 + 用 pipx 即可,10 分钟装好;不需要写任何代码。
如何迁移到其他场景
培训师点评
亲手建一个 MCP Server 并接通 Claude Code / Codex / Cursor:180 行 Python、8 分钟跑通、6 个坑全记录
原始教程
- Blog 原帖thehype.news — How to Build an MCP Server: A Tested 2026 Guide(作者 Addy Crezee,24 分钟阅读)
教程讲了什么
作者用官方 MCP Python SDK 2.2.0 建了一个名为 thehype 的 Server,180 行 Python 提供三个工具:latest_articles(读 RSS)、read_article(长文分段返回)、search_articles(走 Ghost Content API,演示带 key 的 API 包装)。随后用 MCP Inspector 测试,并逐一接入 Claude Code、Codex、Cursor,记录了从 uv init 到首个双工具版本在 Claude Code 和 Codex 中跑通仅 8 分钟,以及 6 个真实故障的报错与修法。
技术栈
| 模型 | Claude Opus 5.5(测试客户端侧);Server 本身不调模型 |
| 工具 | MCP Python SDK 2.2.0、MCP Inspector、uv、Claude Code / Codex / Cursor |
| 语言 | Python 3.10+(另附 TypeScript 版) |
| 其他 | Node.js 22.19+(跑 Inspector);单次测试成本约 $0.10–0.32(作者实测记录) |
手把手复现
- 环境:Python 3.10+、uv、Node.js 22.19+
- 建项目:
uv init thehype-mcp && cd thehype-mcp && uv add "mcp[cli]==2.2.0" - 写 server.py:SDK 2.x 主类已从
FastMCP更名为MCPServer - 工具参数描述用
Annotated[type, Field(description=..., ge=..., le=...)] - Inspector 测试:
npx @modelcontextprotocol/inspector --cli uv run server.py --method tools/list - 接 Claude Code:
claude mcp add thehype -- uv --directory /绝对路径/thehype-mcp run server.py - 接 Codex:
codex mcp add thehype -- ...;自动化运行时对只读工具单独设approval_mode="approve" - 接 Cursor:
.cursor/mcp.json必须放在 git 仓库根目录
关键代码 / 配置
// Cursor CLI 权限配置(.cursor/cli.json)——"deny": [] 省略会直接 schema 校验失败
{
"permissions": {
"allow": ["Mcp(thehype:latest_articles)", "Mcp(thehype:read_article)"],
"deny": []
}
}
长文工具的分段返回设计值得抄:文章超过 8000 字符时按 "Part N of M" 返回,并在工具描述里告诉模型可以请求下一段。
踩坑与注意事项
- Inspector 吞掉
--directory参数 → 报 Connection closed;改在项目目录内运行 - docstring Args 段不被 SDK 解析 → 参数描述全丢;改用 Annotated + Field
- read_article 截断 8000 字符 → 模型总结覆盖不全;改为 Part N of M 分页
- Codex 自动化运行拦截工具(approval never)→ 对只读工具逐个 approve
- Cursor 在嵌套 git 仓中完全读不到
.cursor/配置 → 放仓库根目录 - Cursor cli.json 缺
deny字段 → schema validation failed;补空数组 + 精确白名单
普通人能不能复现
⭐⭐ 有基础用户 会 Python 基础 + 命令行即可;全文命令完整可复制,作者从建项目到跑通只用了 8 分钟。
培训师点评
Rig:给你的 Agent 配一台"小型操作系统"——单二进制、沙箱 Worker、cron 调度、模型可自写插件
原始教程
- Show HNShow HN: Rig, a small operating system for your agent(2026-09-26 发布;安装脚本域名 tryrig.ai)
教程讲了什么
Rig 把一个 OpenAI 兼容端点(本地 llama.cpp/Ollama 或 OpenRouter 等托管服务)变成能长期干活的 Agent。亮点设计:工具调用并行但结果按序落地;Worker 在沙箱(jail)里跑长任务且保留可恢复的 transcript;/scheduler 用真实 cron 表达式定时任务;插件就是一个含 DESCRIPTION/SCHEMA/run 的 Python 文件,模型自己写的插件会进 pending 目录等人工批准;所有状态(任务、记忆、调度、会话)都在仓库里落盘,可从手机 SSH 恢复会话。
技术栈
| 模型 | 任意 OpenAI 兼容端点:llama.cpp、Ollama、OpenRouter 等 |
| 工具 | Rig 单二进制(签名发布、原地自更新);插件为 Python 文件 |
| 部署环境 | Linux / macOS,amd64 / arm64,无 sudo 无依赖,装到 ~/.local/bin |
手把手复现
- 安装:
curl -fsSL https://tryrig.ai/install.sh | sh - 写 ~/.rig/settings.json:指定 model 与 baseUrl
- 写 ~/.rig/models.json:每个模型一行——上下文窗口、maxTokens、reserve、effort 档位
- 写 ~/.rig/AGENTS.md 常驻指令
- 进项目目录运行
rig,试着说:"熟悉一下仓库,后台跑全量测试,把学到的东西记下来"
关键代码 / 配置
# ~/.rig/plugins/weather.py —— 一个插件就只有这三样
DESCRIPTION = "current weather for a city"
SCHEMA = {"type": "object", "properties": {"city": {"type": "string"}}}
def run(args):
return fetch_weather(args["city"])
模型自己也能写插件,但会落在 pending 目录——你批准之前它不会生效。这一条把"Agent 自我扩展能力"和"人对能力边界的控制"同时保住了。
踩坑与注意事项
- 当前为签名二进制分发,未观察到公开源码仓库——对供应链敏感的团队请先在隔离环境试用
- sandbox 默认在 settings.json 里可配置,跑不可信任务前确认沙箱开启
- workers.json 的 slots 决定并发,本地小模型别开多槽
培训师点评
KISS:Rust 写的高性能 Agent Harness——5ms 启动、44 家模型商、子代理/动态 Workflow/浏览器 WASM 全给齐
原始教程
- GitHubracetozero/kiss(README 即完整使用文档;最近提交 2026-09-27)
教程讲了什么
KISS 是一个终端 Coding Agent:默认只有 read/write/edit/bash 四个工具,启动到首帧约 5ms。支持 OpenAI Codex(ChatGPT 订阅)、Anthropic OAuth(Claude 订阅)、Cursor、Google、OpenRouter、Bedrock、GitHub Copilot 等 44 个内置 provider。功能面:会话持久化/恢复/分支/压缩;子代理(最多 4 个活跃子会话、1 层嵌套);定时循环与 autoresearch;本地/远程 MCP(含 OAuth);原生 ACP v1(可直接接进 Zed 编辑器);Rust/Python/TypeScript/WASM 四种 SDK。
关键代码 / 配置
// TypeScript SDK —— 三行起一个 Agent 会话,顺手拿到缓存 token 统计
const session = await Session.create({ tools: ["read", "bash"] })
await session.prompt("What files are here?")
const stats = await session.sessionStats()
console.log(stats.tokens.cacheRead, stats.tokens.cacheWrite)
值得注意的设计:所有 SDK 暴露缓存 token 累计值(cacheRead/cacheWrite/cacheWrite1h),作者明确建议用它做成本看板与告警——这是把"省钱"做成一等 API 的少见案例。
踩坑与注意事项
- 子代理限制:最多 4 个活跃子会话、仅 1 层嵌套;项目级配置不能开启(安全考虑)
- ACP 仅支持稳定 v1:Draft v2、音频、旧版 MCP SSE 均不支持
- 个人项目,迭代极快(9 月下旬几乎每天发版),生产嵌入前锁版本
普通人能不能复现
⭐⭐⭐ 开发者 终端使用对进阶用户友好;SDK/WASM 嵌入面向有工程能力的开发者。
培训师点评
用 Exa Agent Ultra 搭一个"深度研究蜂群":Pydantic 约束子代理,几分钟产出结构化行业数据集
原始教程
- Blog 教程CogitoDaily — How to Build Deep Research Swarms with Exa(作者 Alfian Majid,2026-09-27)
教程讲了什么
教程从零建一个 exa_swarm_demo 项目:用 AsyncExa 客户端触发 Agent Ultra 蜂群搜索,根控制器把查询拆成多个子查询,每个子代理执行"语义发现 → 深度递归遍历 → schema 对齐抽取"三段式流程;用 Pydantic v2 定义 EnterpriseTarget/ResearchSwarmResult 强约束输出;10 个子代理并行绘制"2026 年向量数据库与检索中间件市场地图",结果进 pandas 导出 CSV。
关键代码 / 配置
response = await exa.agent_ultra_search(
query=prompt,
num_subagents=max_subagents,
depth="exhaustive",
output_schema=EnterpriseTarget.model_json_schema(),
filter_domains=["github.com", "medium.com"],
crawl_subpages=True,
max_depth_per_site=2
)
整篇教程的核心思想就一句:用 schema 而不是 prompt 来约束蜂群。output_schema 直接传 model_json_schema(),抽取模型对着它解析原始 HTML,丢弃导航栏/页脚/cookie 横幅等噪声。
踩坑与注意事项
ExaSubagentTimeoutException(120s 超时)→ 把 max_depth_per_site 从 3 降到 1–2pydantic.ValidationError: website_url→ 把 HttpUrl 换成 str + 自定义校验器自动补 https://ExaQuotaExceededError→ 别写宽泛查询;用 include_domains 收窄 + 测试期 num_subagents=4
培训师点评
不开剪辑软件做动画视频:Claude Code 写 HTML 逐帧 + FFmpeg 合成,600 帧 20.6 秒导出
原始教程
教程讲了什么
核心思路:把每一帧画面当成一个 1920×1080 网页来写——HTML/CSS 摆文字和图形,动画库按数值推进时间,HyperFrames 技能包负责逐步截图,600 张 PNG(30fps×20s)交给 FFmpeg 拼成 MP4。作者实测:600 帧导出 20.6 秒,成片 2.0MB(含音频 2.52MB)。
关键代码 / Prompt
npx skills add heygen-com/hyperframes --all --global
winget install Gyan.FFmpeg
npx hyperframes doctor
npx hyperframes init my-video --example kinetic-type
npx hyperframes check # 导出前必跑:动画错误/溢出/对比度
Prompt 侧的关键细节:第二次尝试时作者在 prompt 里显式要求"内嵌日文字体",解决了第一版的豆腐块问题——非拉丁文字渲染要在 prompt 阶段就声明字体策略。
培训师点评
纯本地 Browser Agent:APUS 开源 fast-browser-use,9B 小模型"一次前向传播"决定点哪里,杜绝选择器幻觉
原始教程
- GitHubAPUS-AI-Lab/fast-browser-use(MIT,2026-09-19 建仓)
教程讲了什么
传统 Browser Agent 让大模型"写下一步操作",容易产生选择器幻觉;fast-browser-use 换了一条路:先读取渲染完成的 DOM,把当前真实可见、可操作的元素整理成一组带编号的合法候选动作,映射为 token,模型只做一次前向计算对候选集打分,选出下一步。开放问题被收窄成"从已存在的选项里选一个",从机制上消灭幻觉。
关键设计
最值得抄的不是代码而是动作空间收窄:模型永远只能选"当前真实存在的元素",非法选择器在候选集构造阶段就被物理排除。社区总结的判断原则同样值得记:完全确定性任务用正则/代码;模糊输入但有界输出用决策模型;开放式生成推理才用 LLM。
踩坑与注意事项
- 决策模型输出的是概率不是事实:安全关键场景必须人工/规则兜底
- "感知→结构化"这半步决定成败:喂给决策模型的页面状态质量,一半靠你自己的 DOM 治理
- 它不会写材料、不能看视频、不做开放推理——别把决策节点当大脑用
培训师点评
Anthropic 官方 Claude Code 插件目录:/plugin 一键安装,以及一份"怎么写一个合规插件"的活教材
原始教程
- GitHubanthropics/claude-plugins-official(Apache-2.0)
- DocumentationClaude Code 插件官方文档
教程讲了什么
用户侧:在 Claude Code 里 /plugin install {名称}@claude-plugins-official 或 /plugin → Discover 浏览安装。开发者侧:插件标准结构(.claude-plugin/plugin.json 必需);插件 name 是不可变 slug,改名会导致老用户 plugin-not-found,必须靠 marketplace.json 顶层的 renames 映射自动迁移;没有 manifest 的纯技能仓库可以用 strict:false + 显式 skills 数组以 git-subdir 方式上架。
关键配置
// marketplace.json 顶层 —— 改名不伤老用户的唯一正确姿势
"renames": {
"old-name": "new-name"
}
// skill-bundle 插件(无 manifest 的技能仓库)声明要点
{ "name": "example-bundle", "strict": false,
"source": { "source": "git-subdir", "url": "https://github.com/example-org/sdk.git",
"path": "packages/agent-skills", "ref": "main", "sha": "" },
"skills": ["./skill-a", "./libA/skill-1"] }
培训师点评
Rebyte Agents API:用官方 OpenAI SDK 调一个"模型无关"的托管 Agent 运行时,并附完整电商 Agent 示例
原始教程
- Show HNShow HN: An OpenAI-compatible, model-agnostic agent API(2026-09-27)
- DocumentationRebyte Agents API 官方文档
- GitHubReByteAI/commerce-agent-starter
关键代码
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.REBYTE_API_KEY,
baseURL: 'https://api.rebyte.ai/v1',
maxRetries: 0,
});
const session = await client.beta.agents.sessions.create({
agent: { model: 'gpt-6-luna', instructions: 'Help the user.' },
environment: { type: 'openai_hosted' },
input: 'Hello!',
});
关键设计:会话之间完全隔离——即使复用同一个已存 Agent,Session 也不会继承别的 Session 的沙箱与 Artifact。这对多租户 SaaS 是刚需语义。
培训师点评
📈 今日 AI 实战技术观察
今天的 9 篇教程拼在一起,能看到 AI 实践重心的四个位移。
一、从"用 AI"转向"运营 AI"。worklog-for-claude-code 的出现是个标志性信号:当 Claude Code 成为全天候工作方式,人们开始需要对它做考勤、计量和审计。
二、本地优先与数据主权成为实战派默认项。worklog 坚持数据不出本机、APUS 用 9B 本地模型跑浏览器 Agent、Rig/KISS 把本地模型端点作为一等公民——这不是情怀,是合规与成本双重驱动下的工程理性。
三、MCP 进入"工程细节期"。去年讲 MCP 的文章在讲"是什么",今天的代表教程在讲"Inspector 会吞掉 --directory 参数""Cursor 的 .cursor 必须在仓库根"。一个协议成熟的标志,就是教程的主要内容从概念变成了报错记录。
四、Agent 基础设施向两个方向收敛。一端是 Rebyte 代表的"Agent 即 API";另一端是 Rig/KISS 代表的"个人运行时"。值得记住的一句话:判断任务给决策模型,生成任务给大模型,确定性任务给代码——2026 年的 AI 工程分工正在清晰化。
🛡️ 数据来源与真实性说明
本期时间窗口
日报日期为 2026-09-27(执行日期前一天)。所有条目均标注了各自的发布/更新日期,未将旧内容伪装为当日新教程。本期为 9 篇而非凑数的 10 篇——主动排除了日期无法核验的内容农场教程、发布于数月前的旧文、以及纯产品发布新闻。
数据归属原则
凡涉及效果数字(导出时长、任务耗时、token 成本、星标增量),均以"作者声称 / 项目方公布 / 第三方转述"的归属形式呈现,不作为独立验证事实;建议读者优先点击原始链接。