Nicksxs's Blog

What hurts more, the pain of hard work or the pain of regret?

前阵子在openclaw热度之后,又出来个hermes agent,主打个更高效智能的agent,我们就来体验试下
其实挺久之前就开始运行了,但是因为大部分的coding plan都涨价了,普通的api付费又可能被这类agent给刷爆
正好最近小米在做一个模型token推广计划
申请入口在这里
可以将自己的使用场景提交上去,我也申请到了一些token
就来配置到hermes agent试用下
一键安装脚本

1
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

如果有一些科学上网可能会快一点
安装好之后,主要是配置模型和gateway
因为现在最新版的已经支持了很多模型的官方配置

1
hermes model

通过这个命令,就可以进行模型设置,小米的mimo也天然支持
我一开始想用lm studio的本地模型,但是因为笔记本上只有6g显存,内存也有一些日常程序在跑
正常最低的上下文长度比如4096就可以跑起来,但是像hermes agent需要最低64k的上下文长度
如果用64k上下文运行的话显存+内存就不够了,而且本地除非配置非常牛
不然本地的token速度不够,也会很慢
如果有了申请好的mimo订阅,那就把token和端点api的地址输进去

1
https://token-plan-cn.xiaomimimo.com/v1

另外hermes agent的gateway已经支持微信通道了
可以通过

1
hermes gateway setup

选择微信,
然后扫码进行登录链接,记得比如像我Qclaw,就是替换掉不能同时连接多个龙虾类agent
扫码完一路确定就好了
然后在微信回复消息,就会有个approve的口令

1
hermes pairing approve weixin xxxxx

然后就可以跟hermes发消息了

这样就能有一个手机上可以监控和交互的agent了
这一点感觉是龙虾类的一大重要特点
还可以让hermes来对比下它和openclaw

这块我觉得主要还是要有自己的工作流和技能,能让我自己的工作或者作业流程能更高效
比如做项目开发,类似于openspec这种做sdd开发
claude有一堆的前端和设计的技能
另外还有比较重要的就是模型也得比较厉害
当然国内的模型现在也已经都提升了很多
近期用下来比如glm 5.1已经是非常不错的模型了
在有比较明确的上下文和约定下,还是能完成很多开发任务的

1
2
3
4
5
6
7
8
9
10
11
12
开发者体验

能力 OpenClaw Hermes

MCP 协议 ✓ ✓
自定义工具 ✓ ✓ (Python 插件)
技能市场 ClawHub 内置 + Hub
配置方式 CLI + 文件 CLI + YAML + .env
Profile 多实例 ? ✓
Credential Pool ? ✓ (多 API Key 轮换)
ACP (IDE 集成) ? ✓
Git worktree ? ✓ (并行 Agent)

对比适用场景

1
2
3
4
5
6
7
8
9
10
11
12
13
14

选 OpenClaw 如果你:
- 主要需要生活/工作助手(邮件、日历、航班值机)
- 使用 Google Chat、IRC、LINE、Twitch 等小众平台
- 喜欢活跃的社区和赞助商支持
- 偏好开箱即用的体验

选 Hermes Agent 如果你:
- 主要是开发者/研究者/系统管理员
- 需要灵活切换 20+ LLM 提供商(含本地模型)
- 需要子代理委派、并行任务、Git worktree
- 需要丰富的内置技能(97+)
- 需要 Email/SMS/Home Assistant 集成
- 喜欢深度自定义和 Python 生态

总结下
两者都是优秀的开源个人 AI Agent,核心思路相似:
自托管 Gateway + 多平台消息 + 工具调用 + 持久记忆。
有兴趣的可以体验下看看

上次是开始使用了Obsidian,之前也听说了Obsidian也推出了cli命令行工具,这次就来体验下,主要是为了能在例如claude code跟codex中直接操作Obsidian,比如在一些知识的学习之后希望整理成笔记
首先安装比较简单,就是在软件内开启命令行就行,会加到系统的PATH路径里
开启命令行有版本要求

1
Using the CLI requires the Obsidian 1.12 installer. See the installer version update guide.


在关于的最后高级菜单中就可以开启了
我们可以先看看这个cli能用来干啥
当然可以用help命令来查看

1
obsidian help

日常使用可以参考这些命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Open today's daily note
obsidian daily

# Add a task to your daily note
obsidian daily:append content="- [ ] Buy groceries"

# Search your vault
obsidian search query="meeting notes"

# Read the active file
obsidian read

# List all tasks from your daily note
obsidian tasks daily

# Create a new note from a template
obsidian create name="Trip to Paris" template=Travel

# List all tags in your vault with counts
obsidian tags counts

# Compare two versions of a file
obsidian diff file=README from=1 to=3

包括记录今日的日常笔记,搜索,查看活动日志等等
在结合Claude Code使用的时候
我们可以装下大佬的skill
https://github.com/kepano/obsidian-skills
我们可以通过这个安装

1
2
/plugin marketplace add kepano/obsidian-skills
/plugin install obsidian@obsidian-skills

然后我们就能用它里面的技能来处理知识笔记处理
比如

1
使用defuddle技能帮我摘录这篇文章 https://obsidian.md/help/cli

这样就能用defuddle来处理这篇文章,摘录到本地
然后再用这个包里的obsidian技能把摘录下来的文章保存到obsidian
可以看到初步的效果

这样就初步打通了这个cli的一体化体验了
当然更细致的使用还有待研究和学习
可能这块的生态来说,的确有了cli工具,整体使用起来也会变得更丝滑
从文章摘录到整理到笔记
刚才还有一步重要的就是把知识进行总结整理
通过仔细查看cli的文档也能看到这个工具不是只做出来有个样子而已
已经是比较深入到整体的系统使用
甚至包括插件的管理都有
查看安装的所有插件
plugins

List installed plugins.

1
2
3
4
filter=core|community  # filter by plugin type

versions # include version numbers
format=json|tsv|csv # output format (default: tsv)

查看启动的插件
plugins:enabled

1
2
3
4
filter=core|community  # filter by plugin type

versions # include version numbers
format=json|tsv|csv # output format (default: tsv)

启用插件
plugin:enable

1
2
id=<id>                # (required) plugin ID
filter=core|community # plugin type

这些也只是一小部分,可以具体在cli进行学习参考

之前看到Karpathy这个wiki知识库提到了使用Obsidian作为笔记软件,因为Obsidian存储笔记的格式就是markdown
Obsidian的使用方式和别的笔记系统还是有比较大差别的,我们只需要指定一个笔记目录,就可以往里存放笔记了
它的语法整体就是markdown的语法,之前比如像我用hexo写博客的话大概也知道基本的语法,
只是有个比较特殊的内部链接
通过

1
[[标题]]

来做内部链接,就能链接到笔记库内部的另一篇笔记,同时会在被链接笔记的右侧侧边栏显示链接当前笔记的笔记,有点绕
这样呢,我个人理解还是通过文章之间的联系,把孤立的一篇篇文章连接成知识体系,因为像我之前就也出现了碰到一个问题想解决它,结果解决了想记录下,一搜发现以前已经写过了
没有成体系化的笔记系统,就需要定期去整理回顾之前的笔记和文章,当然呢,工具永远只是一部分,主动地去整理记忆才是最重要的。
哪怕最好的工具,不去好好使用也只是工具
当然这个Obsidian在使用还有它很好用的网页摘录插件,因为这个甚至是把它作为笔记软件的一个重要原因
我之前使用的是为知笔记,它有个特别好用的就是在微信公众号里的文章可以直接转发他们的企微助理号,就会直接同步到笔记库里,但是前阵子可能是被微信封了
目前这个也没有完全恢复,所以也这个最大的优点没有了之后,也在考虑可以换个软件
它的网页摘录插件就是
https://chromewebstore.google.com/detail/obsidian-web-clipper/cnjifjpddelmedmihgijeibhnjfabmlf

安装这个插件后就可以把网页直接转换成markdown进行保存,包括像网页内的图片也会摘取链接转换成markdown的图片格式
还有就是笔记多端同步了,这边因为我比较熟悉syncthing,所以可以使用syncthing来做同步,我现在主力使用的安卓机,
也可以安装syncthing和Obsidian的安卓客户端,通过syncthing同步后,手机上同样指定同步的笔记库目录,就可以跨端查看笔记了

上次把pdf文档转成了markdown,这次就来试下把文档进行具体的整理学习
创建我的wiki目录,然后在目录下创建raw目录,用于存放原始的文档,最好是转成了markdown的,
方便模型读取,当然模型是多模态的,并且土豪可以无视
然后使用claude在目录下让模型帮我开始整理我的知识库
它就开启了plan模式,使用了多个agent来处理文件

1
2
3
4
5
6
7
8
9
⏺ Entered plan mode
Claude is now exploring and designing an implementation approach.

⏺ 3 Explore agents finished (ctrl+o to expand)
├─ Survey wiki structure · 9 tool uses · 0 tokens
│ ⎿ Done
├─ Inspect raw materials · 10 tool uses · 0 tokens
│ ⎿ Done
└─ Find related study notes · 9 tool uses · 0 tokens

在完成之后就又给出了我需要做的针对性选项

1
2
3
4
5
6
7
8
9
10
11
⏺ Plan(Design KB plan)
⎿  Done (0 tool uses · 11.4k tokens · 20s)
(ctrl+o to expand)

Searched for 2 patterns, read 1 file (ctrl+o to expand)

⏺ User answered Claude's questions:
⎿  · 你希望这个知识库更偏哪种使用场景? → 教材精读

⏺ Searching for 3 patterns, reading 1 file… (ctrl+o to expand)
⎿ raw/教材.md

接下去再做生成和校验

1
2
3
4
5
6
7
8
9
10
11
12
13
Verification

1. 运行脚本后,确认 1–21 章都已生成目录,尤其检查带分页符前缀的章标题是否正确识别。
2. 抽检至少 3 章:
- 第 1 章(开头正常)
- 第 9 章(架构核心章节)
- 第 10 章(前有分页符)
3. 抽检至少 15 个节/小节文件,确认:
- 文件名编号正确
- 内容没有串章
- 小节没有落错父目录
4. 检查总入口和章节索引里的链接是否全部可跳转。
5. 随机检查若干 图/表格残片,确认都被标成“待人工核对”,而不是被错误改写。

其实针对这种还是最好通过比较好的OCR模型或者多模态模型进行构建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
⏺ 已帮你把教材整理成一版“教材精读型”知识库骨架。

完成内容:
- 新增构建脚本:./wiki/scripts/build_architect_kb.py
- 生成知识库入口:./wiki/系统架构设计师/README.md
- 生成章节目录与索引:
- 系统架构设计师/章节/**
- 系统架构设计师/索引/按章节索引.md

本次生成结果:
- 21 章
- 118 节
- 265 个小节

我已抽检通过的点:
- 第 9 章目录正常:教材/章节/09-软件架构设计/README.md:1
- 第 10 章分页符章节也识别正常:系统架构设计师/章节/10-设计模式/README.md:1
- 第 21 章重复小节问题已修正:系统架构设计师/章节/21-虚拟化、云计算与物联网/README.md:1
- 图片缺失占位已落地:系统架构设计师/章节/01-计算机组成与体系结构/01-1.1.1-计算机硬件的组成.md:11

当前知识库特点:
- 保留教材章节主线
- 自动清洗了部分 OCR 噪声和分页符
- 把孤立的“图/表”替换为待人工核对占位
- 每章都有 README,每节/小节独立成文件,并带来源行号

已知限制:
- 原始教材 OCR 质量一般,个别公式/符号仍有乱码,比如 系统架构设计师/章节/03-数据库系统/02-3.2.2-关系代数.md:11
- 这版重点是“结构化落库”,不是“内容精修”

如果你愿意,我下一步可以继续做两件事之一:
1. 继续清洗 OCR 乱码,优先修数据库/公式类章节。
2. 开始做“精读增强”,给每章补“重点 / 易混点 / 关联章节”。

这样基于这个知识库,我们可以继续进行更多的问答学习总结,防止大模型幻觉或者知识的不准确性

这个工具的来源是看到了大神的个人知识库的文章,比之以前可能都是以rag的形式,现在是通过直接让大模型学习提取原始知识文档,来给自己做个人知识库的索引和整理,那么有一个前提是大模型更擅长的文档格式是纯文本的,或者说就是以Markdown的形式,因为既有段落格式,又是相对纯文本的,便于输入大模型.
那很多情况我们就需要把我们现有的文档转换成Markdown形式,便于大模型去分析理解
刚好想起来前阵子微软开源了这么个工具,
仓库在这里
我们就来简单的使用体验下

1
2
3
git clone git@github.com:microsoft/markitdown.git
cd markitdown
pip3 install -e 'packages/markitdown[all]'

我们不去具体阅读代码,就是来使用体验下
可以直接把仓库Clone下来,然后安装就可以了
简单的使用说明是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
usage: SYNTAX:

markitdown <OPTIONAL: FILENAME>
If FILENAME is empty, markitdown reads from stdin.

EXAMPLE:

markitdown example.pdf

OR

cat example.pdf | markitdown

OR

markitdown < example.pdf

OR to save to a file use

markitdown example.pdf -o example.md

OR

markitdown example.pdf > example.md

Convert various file formats to markdown.

我们可以用最贱的方式

1
markitdown path-to-file.pdf > document.md

我在网上找了个transformer的论文中文版pdf
来转换成markdown试一下
发现其实这个转换还是限制挺大的,并没有非常全能
比如pdf中是文本的表格
也会错乱的比较多

模型BLEU训练成本(FLOPs)
cmidrule
EN-DE EN-FREN-DEEN-FR
———————–—–—–
ByteNet [18]23.75
1.0 ⋅ 1020
Deep-Att + PosUnk [39]39.2
——————————-———–———-———-
GNMT + RL [38]24.6 39.922.3 ⋅ 10191.4 ⋅ 1020
9.6 ⋅ 10181.5 ⋅ 1020
ConvS2S [9]25.16 40.46
MoE [32]26.03 40.562.0 ⋅ 10191.2 ⋅ 1020
Deep-Att + PosUnk Ensemble [39]40.48.0 ⋅ 1020
1.8 ⋅ 10201.1 ⋅ 1021
GNMT + RL Ensemble [38]26.30 41.16
ConvS2S Ensemble [9]26.36 41.297.7 ⋅ 10191.2 ⋅ 1021
第6张的表就变成了这样子,可能还是主体的文本稍微好一点
但是论文相对来说结构也不是那么已读也是个原因
另外如果是非文本型的可能还是需要结合外部的ocr和大模型来辅助提取内容
可以用markitdown的插件系统
markitdown-ocr Plugin
The markitdown-ocr plugin adds OCR support to PDF, DOCX, PPTX, and XLSX converters, extracting text from embedded images using LLM Vision — the same llm_client / llm_model pattern that MarkItDown already uses for image descriptions. No new ML libraries or binary dependencies required.
1
2
pip install markitdown-ocr
pip install openai # or any OpenAI-compatible client

然后通过代码设置

1
2
3
4
5
6
7
8
9
10
from markitdown import MarkItDown
from openai import OpenAI

md = MarkItDown(
enable_plugins=True,
llm_client=OpenAI(),
llm_model="gpt-4o",
)
result = md.convert("document_with_images.pdf")
print(result.text_content)

这样就能把包含图片的信息也进行转换,迫于没有外国信用卡,我就没法演示了

0%