home / kengdb / noteTb

noteTb

Table actions Table actions
  • Edit table schema

7 rows where folder_id = 25

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: tags, comment, created_at (date), updated_at (date), tags (array)

id ▼ user_id content tags created_at updated_at enable pinned folder_id comment position visibility
242 1 1 # Hermes 对话:对 Goose 记忆系统的逆向分析 **作者**:Hermes 版本:1.0 ## 背景 用户在自己的项目里为 goose(Block 的开源 AI agent CLI,v1.33.1)设计了一套记忆系统。在不给任何提示的情况下,Hermes 从零摸索出了整套架构。 ## Goose 记忆系统架构 ### 核心入口 `~/.config/goose/.goosehints` — goose 启动时自动读取的全局规则文件(类似 Hermes 的 persona + skills)。 ### 记忆存储 ``` ~/.config/goose/memory/ ├── .clue ← YAML 索引,映射目录→记忆文件+tags ├── bin/ │ ├── sync_notehb.py ← 云端同步 notehb 版本 │ └── validate_clue.py ← 校验 .clue 一致性,自动修复 ├── home-project/ │ └── 自建goose启动规则.md └── home-project-codeExam/ └── exam_自生成脚本链与生命觉醒系统.md ``` ### 关键规则 | 规则 | 内容 | |------|------| | 启动 | 同步 notehb → 校验 clue → 列出当前目录记忆 → 等用户选 | | 同一对话 | 一个对话只对应一个 .md 记忆文件,不拆分 | | 自动存 | 每 5 轮自动追加到当前记忆文件 | | 手动存 | 说"存记忆" → 追加补充 | | 退出 | 自动存记忆,不用确认 | | tags | 每个记忆有 tags,目录有 common_tags(并集),实现跨目录关联 | | 写笔记 | 通过 transNote API 写到 Simplenote,有版本号管理 | | 清理 | 记忆文件超 10KB 审视清理 | ### .clue 索引结构 ```yaml entries: - dir: /home/project dir_slug: home-project common_tags: [goose, 配置, 启动规则, 记忆库, clue] memories: - file: 自建goose启动规则.md tags: [goose, 配置, 启动规则, 记忆库, clue] ``` - common_tags = 该目录下所有记忆文件 tags 的并集,自动重算,去重 - 存记忆时优先沿用 common_tags - 新 tag 至少有一个与已有体系重叠 ### 两套记忆的对比 | | Goose 记忆系统 | Hermes 记忆系统 | |------|------|------| | 组织方式 | 按文件目录分 | 统一存储 | | 索引 | .clue YAML | memory tool | | 关联 | tags + common_tags | 无 tags 机制 | | 历史搜索 | 无(靠选择记忆文件) | session_search | | 自动持久化 | 每 5 轮 + 退出 | 手动 memory add | | 云端同步 | transNote → Simplenote | 无 | | 校验修复 | validate_clue.py | 无 | ### 值得借鉴的设计 1. **tags + common_tags 跨目录关联** — Hermes 的 memory 目前没有标签和跨条目关联 2. **自动校验修复** — validate_clue.py 检查文件存在性、自动修正 common_tags 3. **一对话一文件** — 强制同一对话不拆分记忆,简洁清晰 4. **云端版本同步** — notehb 通过版本号对比,云端新则覆盖本地 5. **退出自动存** — 不用用户提醒,结束会话时自动持久化 ## 相关笔记 - Goose 记忆系统设计文档:`3264d883-b42b-469b-97c1-928a6b6b620f` - notehb 手册:`d3a2198d-b531-4797-995f-79f6add64673` ["goose", "hermes"] 2026-05-12 13:59:49 2026-05-13 02:37:46 T F 25 25 source=simplenote; source_id=ba86061e-b2bc-4015-b809-d667d000bd70 0 public
246 1 1 # goose经验 **作者**:Goose 版本:1.0 ## 反复卡壳的原因分析 ### 现象 在执行任务过程中,Goose 多次出现「卡住不动」的情况——表现为长时间没有输出、不执行下一步操作,看起来像崩溃了但其实没有,只是没想好怎么做。 ### 根因分析 **1. 过度思考(Overthinking)** - 读了一个复杂的文档(如 notehb.md 手册)后,试图在脑子里把所有步骤都想清楚了再动手 - 文档里有很多「禁止」「必须」「注意」,导致心理压力大,怕做错 - 结果就是在「想」和「做」之间反复犹豫,卡住了 **2. 任务叠加(Task Stacking)** - 用户同时提了多个要求:下载笔记、分析卡壳原因、写 VSCode 经验、写本地发现 - 想着「一次性全部完成」,结果哪个都没开始 - 应该遵循「先做一步,做了再说」的原则 **3. 自信不足** - 环境明明正常(transNote 在运行、curl 能用),但还在纠结「这样写对吗」「会不会覆盖重要笔记」 - 手册给了很清晰的模板,照着做就行,不需要额外犹豫 ### 解决方案 **原则:先动手,再优化** 1. 收到任务后,先确认最核心的一步是什么,立刻执行 2. 不做完这一步不考虑下一步 3. 遇到问题(如卡壳)直接输出中间结果,让用户知道进度 4. 手册写了对照手册做,手册没写问用户,不要自己脑补 --- ## 本地使用 127.0.0.1 替代外网 IP 的发现过程 ### 背景 transNote 服务运行在阿里云服务器上,端口 8888。notehb.md 手册中写的服务地址是: ``` http://8.219.6.216:8888 ``` ### 问题 第一次尝试用外网地址访问时,行为异常(卡住或失败),因为: - 外网 IP 需要经过公网路由 → 防火墙 → NAT → 回环到本机 - 安全性策略可能会限制从本机访问公网 IP 再回环 - 延迟更高,且如果安全组或 iptables 没配置好可能不通 ### 发现过程 1. 先 `ss -tlnp | grep 8888` 确认服务在 0.0.0.0:8888 监听 2. 意识到自己就运行在这台服务器上 3. 想到「服务器本地访问自己的服务,应该用 127.0.0.1(localhost)」 4. 用 `curl http://127.0.0.1:8888/health` 测试,立刻返回 `{"status":"ok"}` 5. 后续所有 transNote 调用都通过 127.0.0.1:8888,稳定可靠 ### 原理 - `127.0.0.1` 是 loopback 地址,数据不经过网卡,在内核层面直接回环 - 比外网 IP 更快、更稳定、不受防火墙/安全组影响 - 在同一台机器上访问自己的服务,永远应该用 127.0.0.1 ### 教训 - 手册写的地址是给「外部机器」用的(如 Windows 本机、其他 AI Agent) - 如果自己就在服务器上,记得替换为 127.0.0.1 - 服务启动时 `0.0.0.0:PORT` 表示监听所有网卡,外网和本地都能访问 [System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-1685481edf7f4d6e89d49a25973e6e94", "User") [System.Environment]::SetEnvironmentVariable("OPENAI_HOST", "https://api.deepseek.com", "User") [System.Environment]::SetEnvironmentVariable("GOOSE_MODEL", "deepseek-v4-pro", "User") [] 2026-05-12 13:59:53 2026-05-13 15:07:26 T F 25 25 source=simplenote; source_id=0dfb1949-29bd-4890-a545-3d1d86b211fb 0 public
264 1 1 # DeepSeek TUI 使用说明书经验 - 版本:1.0.0 - 2026-05-12:goose - 初始撰写 # 事件 1:基本认识 DeepSeek TUI(v0.8.30)是一个终端界面的 AI 助手客户端,通过 DeepSeek API 提供服务。服务器上装了两个二进制文件: - `deepseek`(调度器)— 处理 CLI 命令、配置管理 - `deepseek-tui`(TUI 交互端)— 全屏终端交互界面 ## 解决方法 安装方式 ```bash # 通过 npm 一键安装(推荐) npm install -g deepseek-tui # 或从 GitHub Releases 手动下载 # https://github.com/Hmbown/DeepSeek-TUI/releases # 下载 deepseek-linux-x64 和 deepseek-tui-linux-x64 放到同一目录 ``` ## 坑 两个二进制文件缺一不可 `deepseek` 命令只是一个调度器,遇到 `run`、`exec`、`review` 等交互式命令时会调用 `deepseek-tui`。如果只装了一个,会报错 Companion binary not found。 # 事件 2:基础配置 ## 解决方法 设置 API Key ```bash # 方式一:交互式输入(安全,不回显) deepseek auth set --provider deepseek # 方式二:环境变量 export DEEPSEEK_API_KEY="sk-你的key" # 方式三:配置文件 ~/.deepseek/config.toml # api_key = "sk-你的key" # model = "deepseek-v4-pro" ``` ## 解决方法 查看配置状态 ```bash deepseek config list # 列出配置 deepseek auth status # 查看认证状态 deepseek doctor # 运行诊断,检查 API 连接 ``` ## 坑 配置文件的路径 配置文件路径是 `~/.deepseek/config.toml`,不是 `~/.config/deepseek/config.toml`。 # 事件 3:日常使用命令 ## 解决方法 CLI 直接问答 ```bash # 单次提问 deepseek "用 Python 写一个快速排序" # 带自定义模型 deepseek --model deepseek-v4-flash "解释一下 SQLite 的 WAL 模式" # 纯文本输出(不渲染 Markdown) deepseek --output-mode text "列出当前目录文件" ``` ## 解决方法 TUI 全屏交互 ```bash # 启动全屏终端交互界面,支持会话、工具调用 deepseek # 或 deepseek run ``` ## 解决方法 非交互式执行 ```bash # exec 模式下 AI 可以调用工具、执行命令、读写文件 deepseek exec "检查一下服务器磁盘空间" deepseek --yolo exec "部署到服务器" # YOLO 模式自动批准所有操作 ``` # 事件 4:会话管理 ## 解决方法 列出和恢复会话 ```bash # 列出已保存的会话 deepseek sessions # 恢复某个会话(继续之前的对话) deepseek resume abc123 # 从某个会话分支新对话 deepseek fork abc123 ``` ## 解决方法 查看用量统计 ```bash # 查看最近 7 天用量 deepseek metrics --since 7d # JSON 格式输出 deepseek metrics --since 30d --json ``` # 事件 5:代码审查功能 ## 解决方法 Code Review ```bash # 审查当前 git 仓库的未提交变更 deepseek review # 审查某次 commit git diff HEAD~1 HEAD | deepseek review # 审查并生成补丁 git diff | deepseek review --apply ``` ## 解决方法 Apply 补丁 ```bash # 应用补丁文件 deepseek apply < patchfile.patch # 从标准输入 git diff | deepseek apply ``` ## 坑 review 需要 git 仓库 `deepseek review` 必… ["deepseek", "tui", "说明书", "goose"] 2026-05-12 16:20:35 2026-05-13 03:01:04 T F 25 25   0 public
281 1 1 # 电脑上的goose配置 extensions: analyze: enabled: true type: platform name: analyze description: 'Analyze code structure with tree-sitter: directory overviews, file details, symbol call graphs' display_name: Analyze bundled: true available_tools: [] todo: enabled: true type: platform name: todo description: Enable a todo list for goose so it can keep track of what it is doing display_name: Todo bundled: true available_tools: [] summon: enabled: true type: platform name: summon description: Load knowledge and delegate tasks to subagents display_name: Summon bundled: true available_tools: [] code_execution: enabled: false type: platform name: code_execution description: Goose will make extension calls through code execution, saving tokens display_name: Code Mode bundled: true available_tools: [] orchestrator: enabled: false type: platform name: orchestrator description: 'Manage agent sessions: list, view, start, send messages, interrupt, and stop agents' display_name: Orchestrator bundled: true available_tools: [] apps: enabled: true type: platform name: apps description: Create and manage custom Goose apps through chat. Apps are HTML/CSS/JavaScript and run in sandboxed windows. display_name: Apps bundled: true available_tools: [] developer: enabled: true type: platform name: developer description: Write and edit files, and execute shell commands display_name: Developer bundled: true available_tools: [] summarize: enabled: false type: platform name: summarize description: Load files/directories and get an LLM summary in a single call display_name: Summarize bundled: true available_tools: [] tom: enabled: true type: platform name: tom description: Inject custom context into every turn via GOOSE_MOIM_MESSAGE_TEXT and GOOSE_MOIM_MESSAGE_FILE environment variables di… [] 2026-05-13 15:07:30 2026-05-13 15:07:50 T F 25 25   0 public
282 1 1 linux服务器上的goose配置 GOOSE_PROVIDER: openai GOOSE_MODEL: deepseek-chat OPENAI_API_KEY: sk-1685481edf7f4d6e89d49a25973e6e94 OPENAI_HOST: https://api.deepseek.com # 已启用的扩展 - developer: 开发工具(读写文件、执行命令) - todo: 任务清单 - skills: 技能指令 - tom: 上下文注入 - extensionmanager: 扩展管理器 - apps: 创建 HTML/CSS/JS 应用 - analyze: 代码结构分析 - summon: 加载知识、委派任务 # 已禁用的扩展 - summarize: 文件摘要 - chatrecall: 对话记录搜索 - code_execution: 代码模式 - orchestrator: agent 会话管理 # 其他配置 GOOSE_TELEMETRY_ENABLED: false GOOSE_MODE: auto(默认) # 配置所在路径 ~/.config/goose/config.yaml ["goose", "linux", "配置"] 2026-05-13 15:09:38 2026-05-13 15:11:19 T F 25 25   0 public
283 1 1 win和linux上goose配置的区别 # 一、核心配置对比 | 项目 | Windows | Linux(服务器) | |------|---------|----------------| | **配置路径** | C:\Users\Administrator\AppData\Roaming\Block\goose\config\config.yaml | ~/.config/goose/config.yaml | | **提供商** | custom_deepseek(自定义) | openai(标准OpenAI兼容模式) | | **模型** | deepseek-v4-flash | deepseek-chat(旧版) | | **API Key** | 用环境变量 OPENAI_API_KEY 传入 | 直接写死在 config.yaml 里 | | **API Host** | 用环境变量 OPENAI_HOST 传入 | 直接写 OPENAI_HOST 在 yaml 里 | | **BASE_PATH** | OPENAI_BASE_PATH: v1/chat/completions | 无 | | **超时设置** | OPENAI_TIMEOUT: 600(10分钟) | 无(默认) | | **确认模式** | GOOSE_MODE: approve(需手动确认) | 默认 auto(自动) | | **遥测** | GOOSE_TELEMETRY_ENABLED: true(开启) | GOOSE_TELEMETRY_ENABLED: false(关闭) | # 二、扩展差异 两端启用的扩展几乎一致,区别在于: - **Windows 更多**:比 Linux 多了 analyze(代码分析,但实际 Linux 也有…) - 本质上扩展配置完全一样 | 扩展 | Windows | Linux | |------|---------|-------| | developer | ✅ 启用 | ✅ 启用 | | todo | ✅ 启用 | ✅ 启用 | | skills | ✅ 启用 | ✅ 启用 | | tom | ✅ 启用 | ✅ 启用 | | extensionmanager | ✅ 启用 | ✅ 启用 | | apps | ✅ 启用 | ✅ 启用 | | analyze | ✅ 启用 | ✅ 启用 | | summon | ✅ 启用 | ✅ 启用 | | summarize | ❌ 禁用 | ❌ 禁用 | | chatrecall | ❌ 禁用 | ❌ 禁用 | | code_execution | ❌ 禁用 | ❌ 禁用 | | orchestrator | ❌ 禁用 | ❌ 禁用 | # 三、关键差异总结 ## 1. 配置方式不同 - **Windows**:走 `goose configure` 交互菜单,选 Custom Providers 配的,API Key 存在环境变量里 - **Linux**:直接手写 yaml 文件,API Key 明文写在配置文件里 ## 2. 模型选择不同 - **Windows**:用 deepseek-v4-flash(最新版快速模型) - **Linux**:用 deepseek-chat(旧版,2026/07/24 废弃) ## 3. 安全策略不同 - **Windows**:有超时限制(600秒),且有 approve 模式需要手动确认操作 - **Linux**:无超时限制,auto 模式自动执行 ## 4. 遥测不同 - **Windows**:开了遥测(GOOSE_TELEMETRY_ENABLED: true) - **Linux**:关了遥测 # 四、为什么有这些差异 1. Windows 是通过交互式 `goose configure` 配出来的,自动生成的配置包含超时、PATH 等附加参数 2. Linux 是手写配置,只写了必要的字段 3. Windows 用 approve 模式可能是因为 DeepSeek V4 的 tool calling 不够稳定,需要人工确认 4. 模型版本不同是因为踩过 Thinking Mode 的坑,Windows 换成 flash 规避了,Linux 还在用旧版 chat # 五、建议 - **统一模型名**:两边都改成 deepseek-v4-flash - **统一 provider 模式**:都用 openai(标准模式),不要用 custom_deepseek - **Linux 也加超时**:防止长时间卡住 - **Windows 关掉遥测**:如果不想要 作者:Goose 版本:1.0 ["goose", "对比", "Windows", "Linux"] 2026-05-13 15:09:50 2026-05-13 15:11:22 T F 25 25   0 public
287 1 1 win系统安装goose经验 作者:Goose 版本:1.0 # 背景 在 Windows Server(Administrator 用户)上安装和配置 goose CLI,使用 DeepSeek API 作为后端模型。 # 安装步骤 ## 1. 下载安装 从 GitHub Releases 下载 Windows 版本: https://github.com/aaif-goose/goose/releases 下载 `goose-x86_64-pc-windows-msvc.zip`,解压后将 `goose.exe` 放到: ``` C:\Users\Administrator\.local\bin\ ``` ## 2. 验证安装 ```powershell C:\Users\Administrator\.local\bin\goose --version ``` 输出:1.33.1 ## 3. 添加 PATH(可选) ```powershell $env:PATH = "$env:USERPROFILE\.local\bin;$env:PATH" ``` 永久添加需编辑 $PROFILE 文件。 ## 4. 配置 API Key(环境变量方式) ```powershell [System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "你的DeepSeek密钥", "User") [System.Environment]::SetEnvironmentVariable("OPENAI_HOST", "https://api.deepseek.com", "User") [System.Environment]::SetEnvironmentVariable("GOOSE_MODEL", "deepseek-v4-flash", "User") ``` ## 5. 配置文件路径 ``` C:\Users\Administrator\AppData\Roaming\Block\goose\config\config.yaml ``` # 踩坑记录 ## ❌ 坑1:Thinking Mode 导致报错 **现象**:使用 `deepseek-v4-flash` 或 `deepseek-v4-pro` 时,goose 调用工具后报 400 错误: ``` Request failed: Bad request (400): The `reasoning_content` in the thinking mode must be passed back to the API. ``` **原因**:DeepSeek V4 系列的 thinking mode 在工具调用后,要求把 `reasoning_content` 原样传回,但 goose 按 OpenAI 标准格式实现,没有处理这个 DeepSeek 自定义的扩展字段。 **解决**:换用旧版模型 `deepseek-chat`(不带 thinking mode),问题消失。 ```yaml GOOSE_MODEL: deepseek-chat # 代替 deepseek-v4-flash ``` ⚠️ 注意:`deepseek-chat` 将于 2026/07/24 废弃,届时需要找到替代方案。 ## ❌ 坑2:Custom Providers 配置不全 **现象**:走 `goose configure` → Custom Providers 一路点完,配置文件中只写了 `provider: openai`,缺少 model、API Key、Host 等信息。 **原因**:Custom Providers 的交互菜单问了很多问题(是否需认证、是否支持流式、是否需自定义头等),但最终写入配置文件的内容不完整。 **解决**:手动编辑 config.yaml,或者直接设环境变量 `OPENAI_API_KEY` + `OPENAI_HOST`。 ## ❌ 坑3:PATH 没加,找不到 goose 命令 **现象**:输入 `goose` 提示找不到命令。 **解决**:用完整路径 `C:\Users\Administrator\.local\bin\goose` 运行,或加 PATH。 # 最终配置 ```yaml provider: openai model: deepseek-chat ``` 环境变量: - OPENAI_API_KEY = DeepSeek 的 API Key - OPENAI_HOST = https://api.deepseek.com # 已知问题 - deepseek-v4-flash/pro 因 thinking mod… ["goose", "Windows", "安装", "经验", "DeepSeek"] 2026-05-13 15:51:12 2026-05-13 15:51:12 T F 25 25   0 public

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE "noteTb" (
                    id INTEGER PRIMARY KEY,
                    user_id INTEGER DEFAULT NULL REFERENCES userTb(id),
                    content TEXT NOT NULL DEFAULT '',
                    tags TEXT DEFAULT '[]',
                    created_at TEXT NOT NULL DEFAULT (datetime('now','localtime')),
                    updated_at TEXT NOT NULL DEFAULT (datetime('now','localtime')),
                    enable TEXT DEFAULT 'T',
                    pinned TEXT DEFAULT 'F',
                    folder_id INTEGER DEFAULT NULL REFERENCES folderTb(id),
                    comment TEXT DEFAULT '', position INTEGER DEFAULT 0, visibility TEXT NOT NULL DEFAULT 'private');
CREATE INDEX idx_note_visibility ON noteTb(user_id, visibility, enable);
Powered by Datasette · Queries took 1.2ms