8040586daa
docs(rename-batch7): SDK 仓名引用统一为 hologramagentsdk,module 路径按发布 tag 保持旧名
...
SDK 仓已在 GitHub 改名为 JianFeeeee/hologramagentsdk(旧名 homeagentsdk
301 跳转,仓 id 与提交未变)。本批把仓内**指向该仓的引用**跟上:
- 仓库链接 / 克隆地址 / 示例目录链接:homeagentsdk → hologramagentsdk
(README zh+en、PLUGIN_DEV zh+en、OVERVIEW zh+en、site/index.html)
- package-linux.sh 的 fallback clone URL 同步新名(仅 URL 与注释)
- ci-cd-runbook:仓库表与 secret 配置命令用当前名,并注明历史改名点
**刻意保留旧名的三处**,都是事实而非遗漏:
1. Go import / go.mod replace 与文档里的 import 示例——已发布 tag
(v1.3.0 及更早)的 go.mod 仍是 module github.com/JianFeeeee/homeagentsdk,
改了直接编译不过。PLUGIN_DEV 里加了显式注记说明这条边界。
2. gitcode 的 homeagentsdk → 404 实测行(那是实测事实表)
3. runbook 里「配置时还叫 homeagentsdk」的历史说明
实测(2026-10-22):github.com/JianFeeeee/hologramagentsdk 的 /tree/v1.1.0、
/tree/v1.3.0、/blob/main/LICENSE 均 200;example/* 为 301→tree 200
(GitHub 对目录自动从 blob 跳 tree,非死链);ls-remote 取到
refs/tags/v1.1.0 = 49f9957。
零代码改动:.go/.lua/go.mod/go.sum/third_party 变更数 0。
2026-10-22 07:25:53 +08:00
ee2b7d7bac
fix(docs,site): 回退上一批错误口径 —— SDK 仓名与站点域名改回实际活链
...
上一批(37b8c26 / 228fae2)把文档与站点里的 SDK 仓名统一改成了
`JianFeeeee/HologramAgent-sdk`、把站点域名改成了 `*.hologramagent.jianfgit.xyz`,
前提「本机无外网、无法验证」是错的。实测外网通畅,两处改动都是真实死链,本批全部回退。
## 一、SDK 仓名 HologramAgent-sdk → homeagentsdk(104 处)
| 文件 | 处数 |
|---|---|
| site/index.html | 23 |
| README.md | 7 |
| README_EN.md | 7 |
| assets/docs/zh/PLUGIN_DEV.md | 29 |
| assets/docs/en/PLUGIN_DEV.md | 29 |
| assets/docs/zh/OVERVIEW.md | 2 |
| assets/docs/en/OVERVIEW.md | 2 |
| docs/git-branching.md | 2 |
| docs/zh/ci-cd-runbook.md | 3 |
| **合计** | **104** |
含 `.git` 形态与 `cd homeagentsdk` 目录名。PLUGIN_DEV.md 里原本就是
`import "github.com/JianFeeeee/homeagentsdk/sdk"` 的两处示例(zh 253/448、en 255/455)
与 6a 前基线逐行 diff 无差异,未被改动成第三种形态。
## 二、站点域名 hologramagent.jianfgit.xyz → homeagent.jianfgit.xyz(15 处)
| 文件 | 处数 |
|---|---|
| README.md | 4 |
| README_EN.md | 4 |
| docs/zh/deploy-runbook.md | 2 |
| deploy/scripts/deploy-sdk-site.sh | 5 |
| **合计** | **15** |
deploy-sdk-site.sh 只改探活/注释里的域名,nginx 语义(SNI 透传、
server_name → root 的链路描述)未变。
## 三、明确未动
- go.mod 两行、third_party/homeagent-sdk 路径、internal/**/*.go 的 import —— 零改动
- deploy/scripts/upload_assets.py:23 默认值 `JianFeeeee/HologramAgent` 保留(主仓确已改名)
- cmd/gui/package.json homepage 保留 HologramAgent(GitHub 200)
- docs/git-branching.md:420 的 GITCODE_REPO 改为 `JianFeeeee/homeagent-sdk`:
gitcode 上只有 homeagent-sdk(200) 与 HomeAgent(200),HologramAgent-sdk 与
HologramAgent 在 gitcode 均为 404
## 四、实测证据(curl -L -o /dev/null -m 25 -w '%{http_code}')
GitHub 侧(经 http://127.0.0.1:7890 出口):
200 https://github.com/JianFeeeee/homeagentsdk ← 回退目标,活链
200 https://github.com/JianFeeeee/HologramAgent ← 主仓,确已改名
404 https://github.com/JianFeeeee/HologramAgent-sdk ← 上一批写成这个,死链
404 https://github.com/JianFeeeee/homeagent-sdk ← 不是这个名字
200 https://github.com/JianFeeeee/HomeAgent ← 301 → HologramAgent
深链抽查(回退后全部 200):
200 .../homeagentsdk/tree/main/example/weather
200 .../homeagentsdk/tree/main/example/plugindev
200 .../homeagentsdk/tree/main/example/luademo
200 .../homeagentsdk/blob/main/LICENSE
200 .../homeagentsdk/tree/v1.1.0
站点域名(直连,不走代理):
200 https://sdk.homeagent.jianfgit.xyz/ ← 回退目标,已部署
200 https://introduce.homeagent.jianfgit.xyz/
200 https://sdk.homeagent.jianfgit.xyz/llms.txt
200 https://sdk.homeagent.jianfgit.xyz/llms-full.txt
404 https://sdk.hologramagent.jianfgit.xyz/ ← 上一批写成这个,未部署
新子域 404 的原因不是网络:证书是 CN=*.jianfgit.xyz 通配符可用,
但 nginx 里没有 hologramagent 的 server_name,站点根本没部署。
gitcode 侧(决定 §三 那行的连字符形态):
200 https://gitcode.com/JianFeeeee/homeagent-sdk
200 https://gitcode.com/JianFeeeee/HomeAgent
404 https://gitcode.com/JianFeeeee/HologramAgent-sdk
404 https://gitcode.com/JianFeeeee/HologramAgent
## 五、验收
1. 全仓 `HologramAgent-sdk` 计数 = 0(.md/.html/.py/.sh/.yml/.yaml/.txt/.json/.go/.mod/.sum)
2. 全仓 `hologramagent.jianfgit.xyz` 计数 = 0
3. site/index.html 23 条 SDK 链接全指向 homeagentsdk,0 条指向 HologramAgent-sdk
4. curl -L 三条必测均 200(见 §四)
5. `TMPDIR=/home/newqqagent/tmpbuild6 go build ./...` 退出码 0
(/tmp 已 98% 满,用独立 TMPDIR 避开 No space left on device)
6. git status 干净;11 个改动文件全为 .md/.html/.sh,零 .go 改动
2026-10-21 19:36:53 +08:00
37b8c26675
refactor(docs): 批6a 清理介绍站与文档的旧仓名/旧链接
...
改名 HomeAgent → HologramAgent 后,介绍站与仓内文档仍指向旧仓地址、旧站点
域名,点击即 404 / 落回旧站。本批只动文档与静态站,代码零改动。
映射(严格按主管给定的唯一权威口径):
- github.com/JianFeeeee/HomeAgent → .../HologramAgent(含 /blob /releases /tree)
- github.com/JianFeeeee/homeagentsdk → .../HologramAgent-sdk
- introduce.homeagent.jianfgit.xyz → introduce.hologramagent.jianfgit.xyz
- sdk.homeagent.jianfgit.xyz → sdk.hologramagent.jianfgit.xyz
- 品牌名/链接文本 homeagent-sdk → HologramAgent-sdk(含 `cd homeagent-sdk`
克隆后的本地目录名,跟随新仓名)
改动面(12 个文件,138 行,纯替换无逻辑变更):
- site/index.html 36 处:13 处主仓链接 + 23 处 SDK 仓链接(22 个 example/
与 LICENSE、仓库首页)
- README.md / README_EN.md 各 12 处(9 处 URL + 3 处链接文本)
- assets/docs/{zh,en}/PLUGIN_DEV.md 各 34 处、OVERVIEW.md 各 2 处
- docs/zh/ci-cd-runbook.md 9 处、docs/zh/deploy-runbook.md 2 处(站点域名)
- deploy/scripts/deploy-sdk-site.sh 5 处(注释里的 server_name + 3 处 curl
探活地址,否则改完站脚本仍在验旧域名)
- docs/git-branching.md 2 处、assets/skills/commondev-discipline/SKILL.md 1 处
(gitcode module 路径)
刻意不动(动了会坏):
- 真实目录 third_party/homeagent-sdk(只改 URL 里的 homeagentsdk)
- go.mod 的 module / replace、所有 .go import(module 仍是
github.com/JianFeeeee/HologramAgent,SDK 仍 homeagentsdk)
- deploy/packaging/package-linux.sh 里的 `replace github.com/JianFeeeee/
homeagentsdk` 与 clone URL —— 它必须与未改动的 go.mod 逐字一致,属代码非文档
- 数据目录 ~/.homeagent、二进制 homed、产物名 hologramagent_*、
插件名 homeagent-mail-bridge
- systemd 相关行(homeagent.service / systemctl / journalctl)—— 待上级确认,
本批不动,清单见汇报
- docs/api/*.md(首行「请勿手改」,生成型)
判据(含变异验证):
- 三条旧串 grep 全仓清零;third_party/homeagent-sdk 目录仍在
- site/index.html 标签配平(HEAD/WORK 双跑)+ section 数 13→13 未减
- 变异:分别还原 deploy-sdk-site.sh:206、site/index.html:3041、README.md:243、
ci-cd-runbook.md:11 各一处,以及删一个 </footer>,判据均按预期报红
- go build ./... 通过(仅把 TMPDIR 指到 /var/tmp 规避 /tmp tmpfs 满,仓内文件无关)
未执行任何线上动作:不 push、不开 PR、不重命名 GitHub 仓。注意 SDK 仓在
GitHub 侧目前仍叫 homeagentsdk,本批把文档指向 HologramAgent-sdk 是「改名
在路上」,该仓改名完成前这批 SDK 链接会 404。
2026-10-21 19:22:02 +08:00
931c803421
refactor(docs): 核心仓文档与介绍站展示名改名为 HologramAgent
...
只改仓库内文件的纯展示品牌名与已随批 2 落地的安装路径;运行时契约、仓库 URL、
域名、环境变量、可执行名、插件名一律不动。
一、纯展示名(HomeAgent → HologramAgent,共 44 处 / 18 个文件)
- README.md 4、README_EN.md 4(标题、client 变体说明、Windows 安装包名、AGPL 段)
- docs/ 8 个文件 14 处(git-branching 1、ci-cd-runbook 1、commondev-design 3、
commondev-agent-runtime-design 4、deploy-runbook 1、legacy-issues 1、
prod-migration-checklist 1、triple-extract-attention 2)
- assets/docs/ 6 个文件 14 处(zh/en 的 OVERVIEW 2+2、ARCHITECTURE 2+2、
PLUGIN_DEV 3+3)
- assets/branding/mascot-xiaozhai-guide.md 2 处(身份行、标志名)
- site/index.html 6 处(title、meta description、og:title、logo alt、页头字、
插件卡片文案 "HologramAgent 接入 AgentMail")
二、安装路径对齐批 2 产物(共 10 处)
- /usr/lib/homeagent → /usr/lib/hologram(7 处:README 2、README_EN 2、
multimodal-space 3)
- /usr/share/doc/homeagent → /usr/share/doc/hologramagent(3 处:README 1、
README_EN 1、multimodal-space 1;注意 Doc 路径带 agent 后缀)
- site/index.html 的 19 处 HomeAgent 里,13 处是 github.com/JianFeeeee/HomeAgent
仓库 URL,属红线整串保留;只改 URL 之外的展示文案(其余 13 处零改动)
三、明确不改(红线 / 一致性冲突)
- site/index.html 的 23 个 github.com/JianFeeeee/homeagentsdk 外链(21 条
example + 2 条纯仓库),SDK 仓改名属批 4-b,一个未动
- 核心仓仓库 URL、sdk./introduce.homeagent.jianfgit.xyz 域名、HOMEAGENT_ 前缀、
homed/waiter/hmapdev、.hmap、homeagent-mail-bridge 等插件名、third_party/、
internal/ 与 cmd/ 全部零改动
- ~/.homeagent 路径本批保持原样:cmd/waiter/main.go:109、daemon.go:290 硬编码
仍为 .homeagent,全仓无 .hologram 命中;照规格改文档会指向程序不用的目录,
需与代码侧那条线一起改(遗留项,已单独上报)
判据:文档区展示名残留归零(44 文件)、红线计数与 base e3584bb 逐项相同、
三条变异均被咬住且还原后复绿。
2026-10-21 17:00:48 +08:00
2aab90c508
fix(plugins): 内置清单终审 15 → 13 —— kbtree/multimodal 翻案加回
...
## 翻案依据(逐方法对照公开 SDK,非方法名 grep)
初判把 kbtree/multimodal 归入"只用公开 SDK",错了。两边的
s.Knowledge() / s.LLM() **同名但接口面不同**:
- kbtree 需要 KnowledgeAPI.Subtree/CategoryCounts/SearchIn/Categories
与 KnowledgeTreeView/KnowledgeCategoryCount 类型 —— 公开 KnowledgeAPI
只有 Search/Add/List,树视图类型公开面根本没有
- multimodal 需要 LLMAPI.Chat + LLMMessage/LLMContentBlock ——
公开 LLMAPI 只有 ListSources/SetSource/CurrentSource,没有 Chat
外置它们 = OCR/看图/转写、知识树浏览静默失效。
## 最终内置 13 个
cli webui agentcli healthcheck pluginmgr seq remotedevice
clawhubadapter kbtree multimodal cfgmgr skillmgr seemedia
外置 5 个(SDK 仓 example/ 已提供工程并已部署验证):
cmd localuse mcp(本轮)+ ai_image files(此前)+ timer(更早)
## 文档同步(中英 6 份)
数量 11 → 13;判定标准小节补「终审翻案」与教训:
**判外置与否必须逐方法对照公开接口,同名方法不等于同面。**
验证:go build/vet/test 全绿;生产实例已部署新内核 + 新插件包,
四个按需插件经 plugin_start 拉起、工具全部注册(cmd_run /
local_screensee / mcp_* / files_edit_line 实核)。
2026-10-19 22:09:09 +08:00
835688c94a
refactor(plugins): 按「内置插件判定标准」收敛内置清单 16 → 11
...
## 判定标准(写进 all.go 与 ARCHITECTURE)
**只有必须使用内部 SDK 能力(公开 SDK 没有的接口面)的插件,才留在
编译期内置清单**;其余一律外置为 .hmap 插件,独立编译、独立发版。
依据是 internal/plugin/proc/capability.go 的 withheldCapabilities:
内部 SDK 的 TerminalAPI/TrackerAPI/StatusAPI/SupervisorAPI/AdapterAPI/
SelftestAPI/ToolAPI/Publish 等能力面,外部插件在类型层就不存在。
需要它们的插件外置后功能会**静默消失**(不报错),必须内置;
只要公开能力的插件,留在内核里是白付重编成本。
## 内置 11 个(all.go 单一权威清单)
cli webui TerminalAPI/Tracker/Status/Supervisor/Adapter
agentcli EventPublish(终端输出走 Publish,公开 SDK 无此方法)
healthcheck SelftestAPI
pluginmgr failback 恢复链必需
seq ToolAPI
remotedevice RegisterChannel
clawhubadapter InjectInputSync
cfgmgr skillmgr seemedia(保留)
## 外置 8 个(源码保留,.hmap 由 SDK 仓 example/ 提供)
timer(此前)ai_image files cmd kbtree localuse mcp multimodal
## 同步修正
- kbtree 归位:它一直是编译期内置插件,却长期被 main.go 单独导入,
游离在 all.go 清单之外(文档盘点因此数错)。现移入 all.go,
main.go 不再单独导入任何插件,并加注释禁止该做法。
- integration_test:外置插件的 7 个用例(cmd_run/terminal_*)加
requireExternalTool 跳过保护——用例保留(行为判据仍有价值),
在纯内置装配下 Skip,不造假失败。
- 全部文档同步 11 个的清单与判定标准(中英四份 + 两份 README)。
## 已核实不做的事
- 保留的 11 个内置插件无一在代码里硬依赖被外置的插件:
cli 对 terminal_* 是 ExecuteTool 按名动态调用(运行时依赖);
healthcheck/seq 只在白名单与示例文本里出现;webui 只订阅事件。
- kernelmod/(内核模块)与 plugins/(插件)严格区分:
kernelmod/multimodal 是内核装配模块,与外置的 multimodal 插件无关。
验证:go build ./... 全绿;go test ./internal/plugins/... 全绿;
webui 新增 5 条命令历史渲染回归判据(TestCmdHistory*)全绿。
2026-10-19 21:13:23 +08:00
515cf2deb1
docs: 按源码全面校正(插件数/内置 timer/RPC 数/工具数/失效行号)
...
逐条对着源码核过,修掉 5 类与实现不符的陈述(中英四份文档同步):
1. **内置插件数 20 → 17**
`internal/plugins/all.go` 的空白导入实际是 17 个。旧文档还列了 `timer`
(已外置)与 `data`/`kbtree`(根本不是内置插件,前者只有 skills 目录,
后者未进 all.go)。清单按 all.go 重写。
涉及:README、README_EN(含「许可」章节的 AGPL 覆盖范围)、OVERVIEW 中英、
ARCHITECTURE 中英的加载方式表。
2. **删除所有把 timer 当内置插件的表述**
ARCHITECTURE 中英目录树里的 `internal/plugins/timer/` 行、
PLUGIN_DEV 内置插件示例表的 Timer 行(该行还与同页下方「timer 已移出内置插件」
的说明自相矛盾)。示例表改用 healthcheck(真实存在、30m 定时自检)。
3. **子进程 RPC 方法数 55 → 82**
权威清单是 `internal/plugin/proc/protocol.go` 的 Method 常量,
实际 82 个(settings 16 / plugin 9 / io 8 / secrets 7 …)。
v1.1.1「51 → 55」作为历史叙述保留,但补注说明 82 才是当前值,
避免读者把 55 当现值。
4. **qq 示例工具数 20 → 24**
按 `example/qq/plugin.go` 的 `Name: tp + "..."` 实数。
5. **修掉整张失效的「文件:行号」引用表**
原文写 `context.go:155` / `document.go:206` / `indexer.go:96+111`,
但 memory 重组后 `context.go` 已迁到 `agent/core/`,行号全部错位。
改为**函数名锚点**(`RelevanceContext.Prune`、`Store.Query`、
`Indexer.vectorSearchEntities`),并改正 `distill.go` 的算法描述:
文档写 Bigram Jaccard,源码是**加权** Jaccard(`scene_emerge.go` 有明确注释),
阈值 `sim > 0.75` 在 `distill.go`。
同时补 Provider 接口漏项:实际有 4 个方法(Name / Chat / ChatStream /
MaxContextTokens),文档只写了前 3 个。
验证:`go build ./...` 通过;文档内相对链接 0 坏链;
引用的 22 个 .go 路径逐个 stat 存在(`internal/memory/media/` 两处是
「已删除机制」的历史叙述,指向不存在路径是正确语义,保持不变)。
2026-10-19 20:49:43 +08:00
6b0bc00d40
docs: 主仓 README 补在线文档入口(介绍站 + SDK 文档站)
...
与 SDK 仓同一个问题:主仓 README 的「文档」章节只列了仓内 markdown
(assets/docs/...),没有任何**在线**地址 —— 而主仓 README 正是绝大多数人
的第一入口,从它走不到介绍站与 SDK 文档站。
改为两段并列:
**在线文档**:介绍站 + SDK 文档站(含 llms.txt / llms-full.txt 的 agent 直读入口)
**仓内文档**(随代码版本走):原有的 OVERVIEW / ARCHITECTURE / PLUGIN_DEV 等
分开标注是有意的:在线站与内核版本**不严格对齐**(站点按发布节奏更新),
而仓内文档跟代码走。写清楚归属,读者才知道该信哪个。
中英文两份同步;两处 README 的 7 个 URL 全部实测 200。
2026-09-29 20:52:32 +08:00
573c84baa5
docs: 补上最后两处历史 SDK 链接的迁移(v1.1.0 tag)
...
README 里还剩 1 处、README_EN 里 1 处指向 gitcode.com 的 SDK v1.1.0 release 链接。
核查后确认:GitHub 的 SDK 仓**只有 tag 没有 release**(releases 数为 0),
所以不能照抄「releases/tag/...」的路径 —— 改指 tag 页 tree/v1.1.0,
实测 HTTP 200(gitcode 侧同样仍可用,两边都保留可达性)。
至此两份 README 的 gitcode 链接归零。
2026-09-29 17:30:56 +08:00
f0d943e4bb
docs: README 对齐 1.4.0 现状,并移除看板娘
...
四处过时事实:
1. 「v1.3.x 线(v1.3.1–v1.3.12,最新已发布)」→ 补上 v1.3.13,并按 main 的实际内容
新增 v1.4.x 段落(同轮工具并行、seq 序列编排、结果只统计不裁剪、结构化错误契约、
设备命令白名单、GUI 增量渲染)。这些是 MAIN 上已合入但 README 从未提及的特性。
2. 「内置 18 个插件」×2 → 实际 20 个(漏了 seq / kbtree 等)。
3. 6 处 gitcode 链接 → GitHub(仓库已迁至 github.com/JianFeeeee/HomeAgent,
SDK 为 github.com/JianFeeeee/homeagentsdk)。gitcode 仍作国内镜像保留。
4. 移除「看板娘 / Web Mascot」整段(中英文各一处)—— 按用户要求。
三张架构图按代码重画(此前图上缺了 1.4.0 的核心机制):
- 图一「消息处理时序」:tool 分支改为**批**语义 —— batchRunnable 三条判据
(批内 >1、全部 ParallelSafe、无同通道重复发送)、可并发/整批降级两条路、
以及「按声明序收尾 + 同通道保序」。
- 图二「Stage 管道」:④⑤ 拆成并发/串行两条边,并注明并行只影响执行时序,
post_action 与 after_toolcall 的可见顺序不变。
- 图三「三层记忆」:补上**场面识别(声明 + 涌现)**子系统 —— 指纹权重、
归属/唤起阈值、origin=declared|emergent、用进废退衰减。
另加一段说明:agent 自己的回复也写回记忆(context.Append(Source:"agent")),
因此它能读到自己先前的结论并主动纠正 —— 这是记忆召回的自然结果,
内核里**没有**任何名为「反思」的机制(避免把涌现行为误读成已实现的特性)。
2026-09-29 17:09:02 +08:00
750ffcf9e8
license: 明确内核 AGPL / SDK MIT 的边界(插件不受 AGPL 传染)
...
SDK 仓改为 MIT(同批提交 e97cafc)后,核心仓几处「插件静态链接 SDK 故须同许可」
的论述不再成立,一并更正。
## 边界(现在写清楚了)
- **AGPL-3.0-only 覆盖内核与随包内置插件**:homed、internal/、internal/plugins/
下 18 个内置插件。§13 网络条款照旧适用。
- **MIT 覆盖公开 SDK**:sdk/ 零外部依赖、只依赖 Go 标准库,不引用内核任何代码。
- 因此**外部插件不是本项目的衍生作品**,作者可自行选择许可(含闭源、商业、
私有),既不必同许可、也不受 §13 约束。
## 改动
- README.md / README_EN.md「许可」章节:改写静态链接那段,写明上述边界与理由
(决定许可的是被链接的 SDK 代码,而它是 MIT;子进程隔离不再是关键论点)
- README.md / README_EN.md changelog:**按本仓惯例保留历史原文**,在既有更正
注记区追加一条「许可口径已变更(2026-09-24)」,而不是去改写 v1.2.0 的原文
—— 避免伪造当时的语境
- site/index.html footer:状态栏拆成「内核许可:AGPL-3.0-only」+「插件 SDK:MIT」
两行;声明区分「AGPL(内核与其内置插件)」与「SDK 以 MIT 发布,插件不受传染」
- .gitignore:example/ 注释里的计数 20 → 21(实际 10 个示例 ×2 + qq/plugin_test.go;
规则本身与「有意保留」的说明不变)
验证:go build ./internal/meta/ ./internal/agent/core/ 通过;官网 1440px 无横向溢出、
无控制台错误,footer 许可两行正确渲染(/tmp/lic-footer.png)。
2026-09-24 10:55:23 +08:00
680e14ad29
docs: 更正三处无实测支撑的性能断言
...
用户指出现有文档里的性能数字可疑。逐个实测后发现三类问题,都不加改原文地
标注更正(历史条目保留原文,仓内已有此惯例)。
## ① 「崩溃到恢复 <1s」——从未成立
写于 v1.0.0 发版说明。但**当时的退避代码就已是 1s**(查 v1.0.0 tag 的
`procRestartBackoff = time.Second`),首次重启就要等 1s。
实测(新增临时测试测量 scheduleProcRestart 延迟):
第 1 次崩溃 → 1s 第 2 次 → 2.001s 第 3 次 → 3.002s
顺带纠正我自己刚在站点写错的阈值:并非「崩 3 次停下」。实测第 **4** 次
才停(`procMaxRestarts=3`,判定为 `n > 3`),前 3 次都会重启。
## ② 「RPC 往返 p50 24.1µs」——量级对、数字不符
实测 `BenchmarkToolInvoke`:inline/small **30.4µs**、frame/small 51.5µs、
inline/large 767µs、frame/large 398µs。原文与实测同为几十微秒量级,
但具体值对不上,且未注明测的是哪种 payload。
## ③ 「CLIP 实测常驻 1.15GB」——采样点不对(6 处)
实测加载 chineseclip 两塔,RSS 会**自己降下来**:
加载前 0.00 GB
两塔加载后 1.59 GB ← 峰值
GC + 静置 0.89 GB ← 稳态(内核回收未用页)
1.15GB 落在两者之间,既不代表峰值也不代表稳态。线上稳态实测 0.39~0.58GB
(更长时间静置后更低)。同源问题:qwen3vl 的「常驻 9.4GB」实为**峰值**,
其视觉塔本就是按需加载(源码注释:每张图约 1.6GB,故按需)。
6 处全部改为「稳态 X(峰值 Y)」双值,消除口径歧义:README 中英、
docs/zh/multimodal-space.md、config/registry.go(2 处 + 1 处注释)、
providers/chineseclip/tokenizer.go。
## 验证
- `go build`(含 `-tags onnxruntime` 与不带)与 `go vet` 均通过
- 全仓 `grep 1.15GB` 已清零
- 测量用的临时测试文件已删除,无残留
2026-09-20 19:56:49 +08:00
3059e842f1
docs(readme): 按源码修正 README 的过时事实(中英同步)
...
上一轮只补了 v1.3.x 变更日志,没系统核对全文。本次逐条对照源码,修掉 5 处硬错误:
1. **消息时序图漏掉输入调度器**(最严重):还画着 `IO->>EV: inputCh` 直连
eventLoop,而当前输入必须先进调度器。补 participant 与调度阶段
(两类别+四级中断、同级不排队/更高级抢占、转投分诊助手)。
2. **图里的 `drainInterrupts` 已不存在**:实测该函数在源码中查无此项,
改为「安全点:中断求值/让位」(真实机制见 scheduler.go)。
3. **内置插件数 11 → 18**:漏列 ai_image / data / localuse / multimodal /
remotedevice / skillmgr(实测 `ls internal/plugins/` = 18)。
4. **Lua 适配器 8 → 10**:漏列 ollama / server(实测 = 10)。
5. **`agent/api/` 描述错误**:它只有 provider.go,不含 Lua 适配器
(适配器在 internal/lua/adapters/);改为如实的「provider.go 调 vm」。
另修一处**自相矛盾**:构建章节写「依赖 Linux/Windows」,而下载章节说
homed 已放弃 Windows 原生(`package-windows.sh` 明确「不往 Windows 装 homed」,
只建 waiter.exe + 引导 WSL2)。改为「依赖 Linux」并说明 Windows/macOS 的真实边界。
并给「设计要点」补上两个当前核心机制(此前只有域分离与三层记忆):
输入调度(两类别+四级中断)与驻留子/分诊助手。
验证:全仓文档断链 0;6 个 mermaid 图块配对全 OK;上述数字逐条实测复核。
2026-09-19 20:59:42 +08:00
6f5059c214
docs: 全面按当前源码更新文档 + 删除已过时文档
...
## 删除(内容已落地/已被替换,保留只会误导)
- demo.md ................... failback 与 recoverydiag 均已实现,0 引用
- docs/defect-qq-output-send-loop.md .. 已修复(本身也标了「已修复」),0 引用
- docs/embedding-comparison.md ....... 一次性选型报告,仅被 agent 产物引用
- docs/zh/plan.md ............ 描述的旧 nav 布局已重写、死配置已清,全部完成
- docs/zh/plugin-migration-plan.md ... 迁移已上生产,纯过程稿(Part 0~6 全完成)
## 更新(按当前源码核对)
- assets/docs/{zh,en}/ARCHITECTURE.md(README 指向的用户文档,最重要):
把只讲 cancel/intercept 的旧「中断机制」章节重写为「输入调度器与中断机制」——
补上两类别 + 四级中断(L1~L4,默认 L1、外部插件 L4 夹到 L3)+ 抢占/挂起/中断栈
+ 饥饿防护(PreemptCount 提升,封顶 L4)+ 抢占冷却(2s)+ 停止语义(cancelBudget)
+ 驻留子/分诊助手/残余任务;新增「上下文预算」章节(窗口 ≠ 工作面,600K 封顶,
预算是上限非填充目标)。中英章节数现已对齐(各 13 节)。
- assets/docs/{zh,en}/PLUGIN_DEV.md:插件示例表补 6 个缺失项
(acp/deepsearch/plugindev/recoverydiag/vanblog/vikunja);qq 工具数 17 → 20(实测)。
- README.md / README_EN.md:补 v1.3.x 线(此前只到 v1.2.0,而 1.3.x 已发布 12 个 patch)——
驻留式子 agent、输出通道寻址、输入调度器、轻量内核 profile、积压及时反馈。
- plan.md:开头两个「⚠️ 紧急/正在持续污染」是过期告警(实测 残留 = 0),
改为「已解决」并加文档定位说明;§13 仍是活跃路线图故保留。
- docs/zh/plugin-interface-matrix.md + 两处源码注释:清理指向已删文档的断链。
全仓 md 断链检查:仅剩 1 处,位于 third_party 的 oh_modules(第三方依赖,非本项目)。
2026-09-19 19:14:55 +08:00
4c1fe03d98
refactor(plugin)!: 重编提示与模板路径改用 hmapdev;文档全面对齐 1.2.0
...
工具链在 SDK 1.2.0 更名为 hmapdev(原 plugindev)。核心侧三处功能耦合同步:
1. 用户可见报错:旧 C ABI 产物 / 协议版本不匹配 / 共享段版本不匹配
三处「请用配套 plugindev 重编」→ hmapdev(对应两条测试断言同步)
2. e2e_template_test 的模板路径改为 tools/hmapdev/templates,
并保留旧路径回退(旧 SDK 检出仍能跑测试)
3. 注释与文档同步
文档更新(用户可见面):
- assets/docs/{zh,en}/PLUGIN_DEV.md:工具链章节整体改为 hmapdev,
补改名说明与 SDK 存储目录迁移;命令示例全部更新
- assets/docs/{zh,en}/ARCHITECTURE.md:**流程图与章节对齐 v1.2.0** ——
· 向量化章节改为三层降级:统一多模态空间(主)→ 词嵌入 → TF-IDF(回退),
写明「同指纹且同维度才参与融合」
· 媒体记忆章节重写:媒体是一等记忆块(无独立 GC / 无引用计数 / 无描述式索引 /
正文不再写 media marker),并写明 reembedStaleMedia 的跨空间迁移与写回
- README{,_EN}.md、docs/zh/plugin-interface-matrix.md:工具名与模板路径同步
(历史条目标注「当时名为 plugindev」)
验证:go test ./internal/plugin/ ./internal/plugin/proc/ ok,
含 4 条真实模板 E2E(模板路径切换后仍通过)。
2026-09-12 12:42:43 +08:00
e974547fc6
docs: README 更新到 v1.2.0,并纠正已在 v1.2.0 删除的机制
...
README 的「项目状态」停在 **v1.1.1**,而且其中两条描述与当前实现**相反**:
「媒体以 `[<mime> <短digest>] <描述>` 标记存在于纯文本记忆中,描述是可检索的
语义记忆」与「引用计数式 GC(有引用者绝不删)」——这两套机制正是 v1.2.0 拆掉的。
本次不重写历史条目(它们记录了演进),而是:
1. 「项目状态」顶部新增 **v1.2.0** 条目:统一多模态向量空间(模型中立 SPI +
Chinese-CLIP 默认,含「纯文本语义弱于 MLLM 型嵌入器」这一已知代价)、
媒体升为图记忆一等节点(并写明具体删掉了什么)、数据面全量走共享内存
(协议 2、不支持滚动升级)、注入标志位、发行包默认启用 ONNX 且随包模型、
homed 改走 WSL2、以及三个安装链静默失败的修复。
2. 在 v1.2.0 条目后加一条显式提示:下方历史条目中的「描述式索引」与
「媒体引用计数式 GC」**已在 v1.2.0 移除**——避免读者按旧文档理解现行行为。
3. 「下载」:Windows 安装器的版本号改到 v1.2.0,并写明自 v1.2.0 起因 homed
不再支持 Windows 原生,安装器改为引导到 WSL2 并在其中按 Linux 方式安装;
同时注明安装器含 AGPL 许可页。
中英双份同步。SDK 仓 README 另在 SDK 仓提交(d893bfa)。
2026-09-12 09:27:28 +08:00
4021eb76c3
docs(license): 核心仓采用 AGPL-3.0-only,并写进包内与安装器
...
本仓此前**没有任何许可文件**,README 里也没有许可声明,而 rpm 元数据里甚至写着
`--license "Proprietary"`(与我们实际的分发意图相反)。
## 选择了什么
`LICENSE`:GNU Affero 通用公共许可证第 3 版官方全文(gnu.org 正本,
661 行 / 34523 字节,
sha256 0d96a4ff68ad6d4b6f1f30f713b18d5184912ba8dd389f86aa7710db079abcb0)。
选 AGPL-3.0-only 的理由:GPL 家族里**传染性最强**的一档,并且不允许选后续版本。
它比 GPL-3.0 多出 §13(Remote Network Interaction)——通过网络提供服务时也要向
使用者提供源码。这正是「最严格」在 GPL 家族里的落点。
依赖许可已核对为全部宽松且兼容:go-sqlite3 / gojieba / gopher-lua / bubbletea /
bubbles / lipgloss / yaml.v3(MIT)、golang.org/x/{sys,text}(BSD-3)、
Chinese-CLIP 产物(Apache-2.0,与 GPLv3+/AGPLv3 双向兼容)、ONNX Runtime(MIT)。
没有 GPL-2.0-only 这类与 AGPL 不兼容的依赖。
## 落在哪些地方
- `README.md` / `README_EN.md`:新增「许可 / License」章节,写明 §13 的含义、
插件因**静态链接 SDK 源码**而成为衍生作品须同许可发布、以及随包第三方组件清单
- `deploy/packaging/package-linux.sh`:
· 新增 `stage_license()`,**四个变体(full/server/client/tar)全带**
`/usr/share/doc/homeagent/{LICENSE,copyright}`(copyright 为 DEP-5 机器可读格式,
含第三方条目)
· fpm 的 `--license "Proprietary"` → `"AGPL-3.0-only"`
- `deploy/packaging/installer.nsi`:新增 MUI 许可页
(`..\..\LICENSE`,NSIS 以 .nsi 所在目录解析相对路径)
- `third_party/homeagent-sdk/LICENSE`:vendored SDK 的许可一并入库 —— 本仓
`.gitignore` 有意不镜像 SDK 的 README/tools/package/example,但依赖的许可
应当随依赖可见
## 待办(下一步)
README 的「项目状态」仍停在 v1.1.1,且写着已被 v1.2.0 **删除**的机制
(引用计数式 GC、`[<mime> <digest>] <描述>` 描述式索引)——单独一个提交修。
2026-09-12 09:17:03 +08:00
44bced3f3b
docs: 项目状态与 plan 同步到 v1.1.1,vendored SDK meta 注释对齐 SDK 仓
...
三处失同步,都会让读者拿到错的现状:
## README / README_EN
「项目状态」段的最新条目还停在 v1.0.0,而 1.1.0 与 1.1.1 都已发布。补上两条,
并把顶部特性摘要与下载段的 Windows 安装器版本号一起更新(那里写死了
`HomeAgent_v1.0.0_*_win64.exe`,照着它去 release 页面找是找不到文件的)。
## plan.md §12.1
标题还是「待用户决策后执行」,而四个决策点早已全部落定并执行完毕。改为已完成,
并记下实际演进已超出当初设想的地方(这些后来都写进了 docs/git-branching.md):
发布分支改为一个中版本一条、三级通道由 tag 区分、SDK 版本跟随核心中版本且
patch 位恒为 .0、beta 阶段不发 SDK、main 永不作发版分支。
同时修掉一处会误导追溯的陈述:§12.1 原文说 `v1.0.0` tag 指向 feature 分支中间点
`7d66d07` 需要重打——那件事早已做完,现在指向 `release/v1.0.x` 上的 `d043fed`。
## plan.md §12.5
「无 Windows 真机验证」这条仍然成立,但补一句区分:Windows NSIS 安装器从 v1.0.0
起就随每个正式版作为 release 资产发布了。**能打出包 ≠ 包里的共享内存/事件对象在
真机上能跑通**,混为一谈会让人以为这项已经关闭。
## vendored SDK meta
主仓跟踪 `third_party/homeagent-sdk/meta/meta.go`,而该文件在 SDK 仓 main 上刚补了
版本路牌的说明注释。两仓这份文件必须逐字一致——否则下次谁改了哪边说不清,
而它正是「两仓中版本对齐」这条纪律的载体。仅注释差异,无行为变化。
2026-09-06 10:56:42 +08:00
d043fed5ce
docs: 文档与发布脚本同步到 v1.0.0 子进程架构
...
README/架构文档仍在描述 C ABI 动态库加载,与 v1.0.0 实际实现不符。
新用户按文档走会去做 -buildmode=c-shared,产物新内核根本不加载。
README.md / README_EN.md:
- 设计要点补子进程架构段(三面通信、崩溃自愈、真热重载)
- 代码结构 plugin/ 描述:.so 动态加载器 → 子进程加载器
- 项目状态补 v1.0.0 条目(6 类缺陷 + 实测数字),v0.9.0 标注 ABI 已退场
- 新增「下载」章节:三变体对照 + 各平台包格式 + macOS 限制
assets/docs/{zh,en}/ARCHITECTURE.md:
- 四种加载方式表:外部 .so/C ABI → 外部子进程/握手+stdio JSON-RPC
- 加载流程改写为 exec.Command → 继承 fd → 握手 → init → start
- 内置 vs 外部对照表 7 行更新
- 新增「子进程插件的三个通信面」小节,含每个面的选择理由
assets/docs/{zh,en}/OVERVIEW.md:插件系统段落改写
deploy/ 发布脚本三处回归(v0.7.2 的 7f08f3c 把 package/ 移到
deploy/packaging/ 使目录深度 1→2,但没改相对路径,此后两个版本
的发布都没有二进制资产):
- build.sh:.syso 按目标平台 hide/restore(trap 兜底),恢复
windows 目标的 CXX,arm64 刻意不带 CXX
- installer.nsi:5 处 ..\build → ..\..\build,PRODUCT_VERSION 可注入
(原先硬编码 0.8.0)
- homeagent.spec:server 变体补装 waiter(control-server 声明了 CLI 却没装)
deploy/scripts/upload_assets.py:release 资产上传(两步签名 URL → OBS
PUT)。放 deploy/scripts/ 而非 scripts/,因为后者在 .gitignore 里。
支持 GITCODE_REPO/ASSET_DIR 环境变量以复用于 SDK 仓。
2026-09-03 19:26:17 +08:00
d7b7f5e2db
docs: README 添加 AI 辅助编程声明
2026-08-24 09:42:41 +08:00
794341561b
C ABI v2: invoke_stage 写回 + ABI 版本对齐核心版本号 (v0.9.0)
...
- C ABI invoke_stage 增加 result 输出参数,外部插件 stage 回调可将修改后的
StageContext(RawMessage/LLMText/FinalText/Response/ToolResults) 写回内核
- ABI 标识版本改为字符串 semver 与核心 Version 对齐(ABIVersion="0.9.0"),
C 层协商用派生整数 CABINum=900(major*100+minor),不再使用独立数字编码
- version_min 保证 v0.8.x(800) 旧插件向后兼容可加载
- 修复工具循环 zen 兼容补位误伤首轮 system 上下文(仅尾部为 assistant/tool 时补位)
- 更新 README 项目状态说明
2026-08-15 15:38:57 +08:00
0b46c037ed
docs: update PLUGIN_DEV.md with ChannelDef/NoMemory/Cleaner/plugin disable; update README v0.8.0
2026-07-29 15:38:38 +08:00
7f08f3ca09
v0.7.2: 根目录清理 + Agent 心跳重构 + 内嵌 ONNX 模型
...
- 根目录清理: branding/docs/knowledge -> assets/, package/tools/deploy -> deploy/
- meta.go: Version 0.7.2, SDKCompatibleVersion 语义改为最高兼容
- Makefile: 版本回退 0.7.2
- registry.go: 系统提示词改用 meta.Version 格式化
- Agent 心跳: reorgGraph 拆分为三个独立循环(archive/merge/review),各自可配间隔
- GraphDB: 新增 sentences 表 + 关系句子溯源 + ClearSentenceID + CleanupOrphanedSentences
- Knowledge: 支持词嵌入向量化器
- NLP 四阶段流水线: Parse -> Extract -> Verify -> Fuse + SentenceRef
- 移除远程 HTTP 解析器(remote_parser.go)
- 新增内嵌 ONNX 模型(vocab + dep_parser.onnx):
+build onnxruntime: 全量 ONNX Runtime 推理
!build onnxruntime: 内嵌词表规则式降级解析器
- config: core.agent.onnx_model_path 替代 dep_parser_url
2026-07-28 09:56:26 +08:00
42570ebbf5
docs: revise architecture docs for academic rigor and source-code accuracy
...
- Rewrite 体系结构原则/Architectural Principles section with precise
implementation details from source code (3-way eventLoop select,
StageHost parallelism, provider ordered fallback, recency bias)
- Document shared StaticEmbedder vector space between Context and Document
- Remove marketing tone, OS analogy table, and mascot emoji separators
- Remove contrastive sentence patterns (而非/not...but/rather than)
- Align terminology with actual implementation across all 6 doc files
2026-07-24 12:12:37 +08:00
613d4a62a3
refactor: split agent.go into 12 files + add mcp_restart_server tool
2026-07-22 15:40:27 +08:00
a8861b6a1a
docs: 品牌吉祥物→看板娘
2026-07-17 21:54:04 +08:00
161f40d1e8
docs: update sequence diagram, memory flow, vectorization strategy for StaticEmbedder + CleanTemplateText + three-branch vector
2026-07-17 21:51:03 +08:00
66b86f6369
feat: mascot integration - WebUI/GUI icons, chat avatar, system prompt, docs
2026-07-17 21:41:03 +08:00
75f9c60aaa
docs: fix documentation-source mismatches across all doc files
...
- Go version: 1.19+/1.21+ → 1.25+ (matches go.mod)
- document/doc.go → document/document.go (actual filename)
- PluginSDK: 3 channels → 4 channels (add RegisterOutputChannel)
- InjectInput/InjectInterrupt: 3 params → 4 params (add eventType)
- RegisterChannel: document agentIO.Device interface requirement
- Architecture: remove non-existent snapshot/tokenizer dirs, add skill/meta
- Architecture: fix double internal/internal/sdk, fix Jaccard threshold
- Adapter: add http_get/http_post Lua VM built-ins
- Knowledge: 4-layer → 3-layer memory, CGO for go-sqlite3 not overlayfs
- Code structure tree: fix sdk/ and lua/adapters/ path consistency
2026-07-16 23:17:55 +08:00
75499b1562
docs: update for v0.7.1 - output channels, restricted API, LLM chain event
2026-07-16 18:54:20 +08:00
73486de5e3
feat: 实现多语言文档架构
...
- 创建 docs/zh/ 和 docs/en/ 目录结构
- 迁移文档至多语言目录,添加中英文切换链接
- 创建 README_EN.md 英文版本
- 更新 README.md 添加语言切换链接
- 删除旧文档和临时文件
2026-07-13 23:29:35 +08:00