Levon's Blog

微信: L6241425

1. 介绍

1.1 Why Hermes Not Openclaw

  1. 真·持久记忆  跨会话记住你的偏好和项目(MEMORY.md/USER.md 机制),FTS5 全文检索,10 万条记录搜索约 10ms。而 OpenClaw 的记忆是它的公认弱项——有跑过 1000+ 实例的托管商实测吐槽 “ 会话经常像在跟一个陌生人说话 “。
  2. 自主学习闭环  干完难活自动写下 SKILL.md,越用越聪明,技能兼容 agentskills.io 开放标准。OpenClaw 的技能主要靠 ClawHub 装、靠人配。
  3. 安全默认值更好  容器隔离(只读根目录/降权/PID 限制)+ 敏感操作审批 + 默认禁私网 URL 防 SSRF
  4. 轻快省  3GB 内存就舒服、近即时启动,托管成本约省 30%;内置模型路由(按价格/延迟自动 fallback),适合 24/7 挂机跑定时任务。
阅读全文 »

第一次看到 DeepSeek Harness,我以为它只是给 DeepSeek 模型套了一层 Web UI。真正跑起来以后,我才发现重点不在模型,而在模型之外的那一层:它决定 Agent 能看到哪些文件、可以调用什么工具、怎样执行命令,以及每次行动如何被记录和约束。

DeepSeek Harness(命令名 dsh)就是这层执行框架。官方把它概括为 “ 一切皆插件 “:模型适配器、工具、会话、沙箱、存储、调度和 UI 都可以替换或重组。

可以先这样理解:

1
2
Agent = 模型 + Harness
Harness = 工作区 + 工具 + 权限 + 会话 + 执行循环 + UI
阅读全文 »

www.liuvv.com 的证书以前经常过期。表面看像是「域名在 Cloudflare,证书却没续上」,但真实结构并非如此:Cloudflare 只负责 DNS,访客真正访问的是腾讯云 CDN,浏览器看到的证书也安装在腾讯云 CDN 上。

本文记录一套适配该场景的免费自动化方案:GitHub Actions 定时运行 acme.sh,通过 Cloudflare DNS-01 验证申请 Let’s Encrypt 证书,再调用腾讯云 SSL/CDN API,把证书部署到 www.liuvv.com 的 CDN 加速域名。

阅读全文 »

你在编辑器里跟 AI 说「帮我把这个函数改改」,AI 真的去读了文件、改了代码。这件事背后至少有三个角色:编辑器、AI 程序,以及读文件改文件的那些能力。ACP(Agent Client Protocol)管的是第一段——编辑器和 AI 程序之间怎么说话。

阅读全文 »

单表过了千万行,查询变慢、索引胀、删旧数据删到手酸,这几件事经常一块来。第一反应往往是「要不要分表、分库分表」——其实 PostgreSQL 原生分区(L1)往往就够:应用里还是查一张 orders,库在底下拆成很多小表;查某个月,就只碰那个月的小表。

下文分两段:§1 先在同一维度上区分 L1 分区 / L2 同库分表 / L3 分库分表,环境按 PostgreSQL 14+。

阅读全文 »

1. 以为是 5 分钟升级,最后花了半天

这次升级 Gitea,我原本只想顺手把自建 runner 改成 ephemeral 模式。

预期很简单:Gitea 升到 1.26,act_runner register 加一个 --ephemeral,runner 跑完一个 job 自动退出。这样就不用再让 Fargate task 空等 30 分钟。

实际不是。

先是 runner 启不来,接着 job 卡在 queued,再接着发现 webhook 没发对事件,最后翻出两百多个 offline runner。问题单个看都不大,串起来就吃掉半天。

阅读全文 »

每次打开 git log --graph,看到那些七拐八绕的线。先要回答两件事:

  • Git 底层到底存了什么,
  • 以及 分支的 提交和合并 真正指向哪些对象。
阅读全文 »

新人入职第一天打开 AWS 控制台。30 多个 EC2、十几个安全组、几个 RDS。没人能说清哪个资源谁开的、什么时候开的、为什么开的。也没人敢删——万一是关键服务呢?

这就是手点基础设施的代价。新人接手两眼一抹黑,变更全凭口口相传。Terraform 的承诺只有一句:

所有云资源用代码描述,所有变更走 Git。

阅读全文 »

自建 Gitea 需要 CI/CD 能力。在 EC2 上 24 小时跑 act_runner 既浪费又难维护。本文记录如何用 ECS Fargate 实现按需启动的 Serverless runner——有 job 时拉起容器,跑完即销毁,零闲置成本。

阅读全文 »

给 Claude Code 写了很多自定义 Skill,用了几个月,直到按官方规范做了一次全面审计,才发现每一个 Skill 的 description 都踩了同一个坑。

这个坑不是语法错误,不是功能缺陷,而是一个认知陷阱:我一直在告诉 Claude “ 我是谁 “,而不是 “ 什么时候该找我 “。

阅读全文 »
0%