尧图精选

Hermes Agent + Obsidian 打造第二大脑(一):为什么需要第二大脑?TaoToken 统一 Key 接入实践

🕒 发布时间:2026/10/2 10:40:48 📁 来源:尧图网络
1. 为什么碎片化信息需要一个第二大脑先说结论第二大脑不是又一个笔记软件而是把你每天散落在微信收藏、浏览器书签、GitHub Star、PDF 论文里的碎片变成一套能被 AI 检索、关联、复用的知识资产。它适合每天要处理几十条信息、又不想每次从零开始翻记录的人尤其是做 AI 开发、写技术博客、长期跟踪某个领域的同学。我自己的情况很典型arXiv 每周几十篇论文GitHub Trending 每天刷微信里存了一堆“回头再看”的文章Notion 里躺着半年前的项目复盘。问题是这些东西之间没有任何连接。想找半年前看过的一个 RAG 分块方案翻了二十分钟最后发现当时只截了张图连出处都没记。这就是第一大脑和第二大脑的分工问题。第一大脑负责思考、判断、创造它的工作记忆容量有限大概同时只能抓住 7 个左右的信息块。第二大脑负责存储、组织、检索它不该有容量上限也不该依赖你的记忆力。真正的第二大脑要满足三个条件信息不丢任何输入都有落点知识可积累读过的论文能沉淀成经验关联能自动浮现不用你手动去连线。Hermes Agent 加 Obsidian 的组合恰好把这三件事拆开了。Obsidian 负责本地存储和双向链接你的笔记是纯 Markdown 文件放在自己硬盘上不依赖任何云服务。Hermes Agent 负责智能处理它把收集进来的信息做摘要、打标签、发现关联再写回 Obsidian 的 Vault。两者之间通过一个统一的 API 通道通信而这个通道就是本篇要落地的重点。很多人卡在第一步Hermes Agent 要调用大模型但模型供应商五花八门OpenAI、Anthropic、本地 Ollama 各有各的 Key 和 Base URL配置起来一堆环境变量。TaoToken 在这里的作用是提供一个统一的 Key 和 API 通道你只需要配一次 Base URL后面切换模型、加新供应商都不用改代码。这篇先把通道打通下一篇再讲 Obsidian 的目录结构和插件配置。2. TaoToken 统一 Key 接入前置准备在动手之前先把要准备的东西列清楚避免配到一半发现缺东西。你需要三样一个 TaoToken 的 API Key、Hermes Agent 的运行环境、以及确认你的网络能正常访问 API 端点。先说 TaoToken 这边。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后进控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 的创建入口在 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。创建时给它起个能认出来的名字比如 hermes-agent-dev方便后面区分环境。Key 只在创建时完整显示一次复制下来存到密码管理器里。这里有个关键点要理解TaoToken 提供的是 OpenAI 兼容的 API 接口Base URL 是 https://taotoken.net/api 。这意味着任何支持自定义 OpenAI Base URL 的工具都能直接接进来。Hermes Agent 的 LLM 配置里正好有这个字段所以对接成本很低。环境方面Hermes Agent 推荐用 Docker Compose 部署你本地需要装好 Docker 和 Docker Compose。验证一下docker --version docker compose version两条命令都能输出版本号就行。如果你的机器是 Apple Silicon 或者 Linux都没问题。Windows 用户建议用 WSL2避免路径和权限的坑。再确认一下网络连通性。在终端里直接测一下 API 端点能不能通curl -I https://taotoken.net/api返回 200 或 401 都说明网络是通的401 只是因为你没带 Key。如果这里就超时先检查本地网络和 DNS别急着往下走。最后提醒一句API Key 属于敏感凭证不要写死在代码里也不要提交到 Git。后面配置里我们会用环境变量或者 .env 文件来管理并且把 .env 加进 .gitignore。这一步现在看起来麻烦但能避免以后 Key 泄露要全部重换的麻烦。3. Hermes Agent 可复制配置片段这一节是全文的核心给你可以直接复制粘贴的配置。Hermes Agent 的配置分两块一块是 docker-compose.yml 里的服务定义一块是 .env 里的环境变量。我们重点改的是 LLM 相关的部分。先看 .env 文件。在你的工作目录下创建它内容如下# ~/hermes-agent/.env LLM_PROVIDERopenai OPENAI_API_KEYsk-你的TaoToken密钥 OPENAI_BASE_URLhttps://taotoken.net/api OPENAI_MODELgpt-4o JWT_SECRET换成随机字符串 OBSIDIAN_VAULT_PATH/data/vault POSTGRES_DBhermes POSTGRES_USERhermes POSTGRES_PASSWORD换成强密码 REDIS_PASSWORD换成强密码这里四个字段要和 TaoToken 对齐LLM_PROVIDER 填 openai因为 TaoToken 是 OpenAI 兼容接口OPENAI_API_KEY 填你在控制台创建的 KeyOPENAI_BASE_URL 填 https://taotoken.net/api 注意结尾不要多加斜杠OPENAI_MODEL 填你要用的模型 ID比如 gpt-4o 或者 claude-3-5-sonnet具体可用模型以控制台模型列表为准。如果你更习惯用 TOML 格式管理配置Hermes Agent 也支持 config.toml等价写法是# ~/hermes-agent/config.toml [llm] provider openai api_key ${OPENAI_API_KEY} base_url https://taotoken.net/api model gpt-4o temperature 0.7 max_tokens 4096 [memory] layers [L0, L1, L2, L3] [storage] vault_path /data/vault用 TOML 的好处是结构清晰坏处是 Key 直接写在文件里不安全所以还是建议用 ${OPENAI_API_KEY} 这种引用方式实际值放 .env。接下来是 docker-compose.yml 里和 LLM 相关的服务定义。你不需要改整个文件只要确认 api 服务能读到上面的环境变量# ~/hermes-agent/docker-compose.yml节选 services: api: image: hermes-agent/api:latest env_file: - .env ports: - 8080:8080 depends_on: - postgres - redis restart: unless-stoppedenv_file 指向 .env这样容器启动时就能拿到 OPENAI_BASE_URL 和 OPENAI_API_KEY。如果你用的是 config.toml就把 config.toml 挂载进容器volumes: - ./config.toml:/app/config.toml:ro配置改完启动服务cd ~/hermes-agent docker compose up -d docker compose logs -f api日志里如果出现 LLM provider initialized 之类的字样说明配置被正确读取了。如果报 Key 无效或者 Base URL 解析失败先回到上一节检查 .env 的四个字段尤其是 Base URL 结尾有没有多余的斜杠。4. 连通性验证与首次成功请求配置写完不代表通了必须做一次真实的请求验证。Hermes Agent 提供了一个健康检查接口但它只检查服务本身不检查 LLM 通道。我们要单独测 LLM 通道。最直接的办法是用 curl 打一次 TaoToken 的对话接口。先导出环境变量避免 Key 出现在命令历史里export TAOTOKEN_KEYsk-你的TaoToken密钥然后发一个最小请求curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_KEY \ -H Content-Type: application/json \ -d { model: gpt-4o, messages: [ {role: user, content: 用一句话说明什么是第二大脑} ], max_tokens: 100 }如果返回的 JSON 里有 choices 数组并且 choices[0].message.content 是一段正常的中文回答说明 Key、Base URL、模型 ID 三者都对上了。这一步是整个接入的里程碑它证明你的统一通道是活的。接着验证 Hermes Agent 内部能不能用这条通道。Hermes Agent 一般有个 CLI 或者调试接口可以发一条测试消息docker compose exec api hermes llm test --prompt ping预期输出类似[OK] provideropenai base_urlhttps://taotoken.net/api modelgpt-4o [RESP] pong如果这里报错但 curl 是通的那问题多半在 Hermes Agent 读取环境变量的环节。检查 docker compose exec api env | grep OPENAI看看容器里到底有没有这两个变量。常见情况是 .env 文件路径不对或者 docker-compose.yml 没写 env_file。最后做一次端到端验证让 Hermes Agent 处理一条测试信息写进 Obsidian Vault。先确认 Vault 路径挂载正确docker compose exec api ls /data/vault能看到你的 Obsidian 文件夹就对了。然后触发一次收集docker compose exec api hermes collect --source cli --content 测试第二大脑接入验证去 Obsidian 里看 inbox 或者对应的收集文件夹应该出现一条新笔记。到这一步Hermes Agent 到 Obsidian 的首次对接就完成了统一 Key 通道也验证通过。5. 本篇常见报错排查接入过程中最容易撞上的几个报错我按出现频率排一下每个都给出定位方法。第一个是 401 Unauthorized。这个最直接就是 Key 不对。可能的原因有三个Key 复制时带了空格或者换行Key 已经被删除或过期请求头格式写错。检查方法是用 curl 单独测看返回体里的 error.message。如果是 invalid api key回控制台重新创建一个。注意 Authorization 头的格式必须是 Bearer 加空格加 Key少一个空格都会 401。第二个是 local proxy failed 或者 connection refused。这个报错说明请求根本没发出去卡在本地网络层。先确认你没有在环境变量里设置了 HTTP_PROXY 或 HTTPS_PROXY 指向一个不可用的地址。用 env | grep -i proxy 查一下如果有就 unset 掉。然后确认 DNS 能解析 taotoken.net用 nslookup taotoken.net 测。如果公司网络有出口限制换一个网络环境再试。第三个是 reading choices 相关的解析错误比如 cannot read property choices of undefined。这通常不是网络问题而是返回体结构和你预期的不一样。最常见的原因是 Base URL 写错了比如写成了 https://taotoken.net 而漏了 /api或者多写了 /v1 导致路径重复。正确的 Base URL 是 https://taotoken.net/api 工具会自动拼接 /v1/chat/completions。另一个原因是模型 ID 不存在返回体里没有 choices 字段而是一个 error 对象。回控制台确认模型列表里有没有你填的那个 ID。第四个是 OAuth 或者 token expired 类的报错。如果你之前用过别的工具环境里可能残留了旧的凭证文件比如 ~/.config/hermes/credentials.json。Hermes Agent 启动时会优先读这个文件而不是读环境变量。解决办法是删掉或者重命名这个文件让它回落到 .env 配置mv ~/.config/hermes/credentials.json ~/.config/hermes/credentials.json.bak docker compose restart api第五个是配置读取顺序问题。Hermes Agent 的配置优先级一般是命令行参数 环境变量 config.toml 默认值。如果你同时改了 .env 和 config.toml但两边值不一样实际生效的是环境变量。排查时用 docker compose exec api env | grep -E OPENAI|LLM 看容器里真实的值别只看文件。把这几类报错对照一遍基本能覆盖 90% 的接入问题。剩下的疑难杂症可以去接入文档里查更细的字段说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。6. 下一步把通道用起来通道打通之后别急着堆功能。我的建议是先跑一周的最小闭环每天用 QuickAdd 往 Obsidian 的 inbox 里丢三五条信息让 Hermes Agent 自动做摘要和打标签你只负责在周末回顾一次。这一步的目的是验证“收集—处理—回顾”这条链路在你自己的信息流里跑得顺不顺。等你确认链路没问题再考虑接更多数据源比如 RSS、邮件、浏览器剪藏。每加一个源都先用本篇的 curl 方法测一次通道确保不是源的问题而是配置的问题。模型方面日常摘要用便宜快的模型深度分析再切到强模型切换只需要改 OPENAI_MODEL 一个字段这就是统一 Key 通道的价值。下一篇会讲 Obsidian 的目录结构和核心插件配置包括 Templater、Dataview、QuickAdd 怎么配合 Hermes Agent 的输出。如果你还没配好通道先把这篇的验证步骤走完不然后面插件配得再好AI 也写不进你的 Vault。需要长期跑编码和 Agent 任务的可以了解下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 按用量规划比临时充值更省心。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →