From f256098c9f69b4b920c8141be58406e5b05d341d Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Thu, 22 Oct 2026 20:49:44 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=85=A8=E9=9D=A2=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=20HologramAgent=20+=20=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D=E6=8A=80=E6=9C=AF=E5=86=85=E5=AE=B9=E4=B8=8B=E6=B2=89?= =?UTF-8?q?=E5=88=B0=20skill/=E5=B7=A5=E5=85=B7=E6=8F=8F=E8=BF=B0=20+=20?= =?UTF-8?q?=E4=BF=AE=2021=20=E5=A4=84=E4=B9=B1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## ① 全面改名 HomeAgent → HologramAgent 仓库已改名,但代码与文档里仍有大量旧名。本次按"用户能看到的优先"全量替换: - 用户可见:登录页标题/页脚、默认人格第一句、CLI 状态输出、启动日志、 plugin_install 的工具描述、AI 图片插件的 User-Agent - 文档与脚本:README、assets/docs、docs/zh、deploy/*.sh、.github/workflows - 鸿蒙工程:cmd/ohos/HomeAgent → cmd/ohos/HologramAgent(git mv) 目录内的 module/app 描述同步;**证书路径原样保留** (default_HomeAgent_xxx.cer/p7b/p12 是签名材料的实际文件名,改了会找不到证书) - 插件元数据:plugin.json 的 author ★ 必须保持原样的两处(改了会坏): · legacySeededPromptSignature = "你是 HomeAgent 的看板娘「小宅」…" —— 那是识别历史播种人格卡的**原文锚点**,改了就识别不出旧数据 · 公开 SDK 的 ProxyAuthHomeAgent = "homeagent" —— 那是 SDK 契约里的值,属独立仓库,本仓不改 ## ② 修 21 处乱码(U+FFFD) 这些是历史编辑留下的编码破坏,全在注释里,例如: 「赌注重下���遍」→「赌注重下一遍」 「「不��滤」」 →「「不过滤」」 「**待��退场**」→「**待退场**」 ★ 保留 providers/chineseclip/tokenizer.go 里的 2 处:那是**故意**用 U+FFFD 演示"非法 UTF-8 字节被归一成 U+FFFD",不是乱码。 ## ③ 提示词技术内容下沉(用户:技术性内容应该收敛到 skill 与 -help 中) 实测系统提示词 2309 字,其中两段几乎全是**模型无法据以行动的实现细节**: 【工具执行顺序】1272 字(ParallelSafe 声明、批内降级、batchRunnable 判据…) 【三层记忆】 1069 字(L1/L2/L3 编号、消费式删除、向量空间、指纹…) 收敛后 **2309 → 1723 字(-25%)**,保留的全是"模型据此做什么不同的事": 工具顺序:默认并行 / 不要依赖先后 / 同通道保序 / 写类工具可能串行 三层记忆:时序里能看最近 / doc_query 把历史事件按原始时间戳插回时序 / 关系用 memory_recall / 成文知识用 knowledge_search 判断口径写进判据:新加一段提示词前先问"模型会据此做什么不同的事", 答不上来就该进 skill 或工具描述。 ## 判据 prompt_memory_test.go 新增 2 条: - TestSystemPromptHasNoImplementationJargon 黑名单:ParallelSafe / batchRunnable / 消费式 / DenseCosine / fingerprint / 向量空间 / 批内降级 / 自激 - TestSystemPromptStaysCompact:上限 2000 字(当前 1723) 变异:把 "ParallelSafe 声明、批内降级" 加回工具顺序段 ⇒ 第一条立刻红。 ## 验证 - go build ./... / go vet ./... 干净 - go test ./... -count=1:58 包 0 失败 - make check-client-versions:客户端与内核版本一致 --- .github/workflows/ci.yml | 8 +-- .github/workflows/release.yml | 8 +-- .../homeagent_architecture/content.md | 4 +- assets/skills/commondev-discipline/SKILL.md | 4 +- assets/skills/commondev-discipline/skill.json | 2 +- assets/skills/knowledge-base/SKILL.md | 14 ++--- .../skills/knowledge-base/scripts/kb_tree.sh | 4 +- assets/skills/knowledge-base/skill.json | 4 +- cmd/gui/DESIGN-NOTES.md | 14 ++--- cmd/gui/endpoint-align.test.mjs | 2 +- cmd/gui/main.js | 28 +++++----- cmd/gui/package.json | 4 +- cmd/gui/renderer/app.js | 24 ++++----- cmd/gui/renderer/index.html | 8 +-- cmd/gui/silent-start.test.mjs | 2 +- cmd/mock-server/main.go | 6 +-- cmd/mock-server/ws.go | 4 +- .../{HomeAgent => HologramAgent}/.gitignore | 0 .../AppScope/app.json5 | 2 +- .../resources/base/element/string.json | 2 +- .../resources/base/media/app_icon.png | Bin .../resources/base/media/background.png | Bin .../resources/base/media/foreground.png | Bin .../resources/base/media/layered_image.json | 0 .../resources/dark/media/background.png | Bin .../build-profile.json5.example | 0 .../entry/hvigorfile.ts | 0 .../entry/oh-package-lock.json5 | 0 .../entry/oh-package.json5 | 2 +- .../entry/src/main/ets/common/ApiClient.ets | 0 .../entry/src/main/ets/common/AppVersion.ets | 0 .../src/main/ets/common/AttachmentImage.ets | 0 .../src/main/ets/common/AttachmentMeta.ets | 0 .../entry/src/main/ets/common/BridgeCaps.ets | 0 .../src/main/ets/common/BridgeProtocol.ets | 0 .../src/main/ets/common/BridgeRouter.ets | 0 .../entry/src/main/ets/common/ChatFormat.ets | 0 .../entry/src/main/ets/common/ChatHistory.ets | 0 .../entry/src/main/ets/common/ChatSession.ets | 0 .../entry/src/main/ets/common/ChatSse.ets | 2 +- .../entry/src/main/ets/common/ChatStore.ets | 0 .../entry/src/main/ets/common/ConnStore.ets | 0 .../entry/src/main/ets/common/Constants.ets | 0 .../src/main/ets/common/DeviceBridge.ets | 4 +- .../main/ets/common/DeviceBridgeSession.ets | 2 +- .../entry/src/main/ets/common/DeviceModel.ets | 0 .../src/main/ets/common/MarkdownParser.ets | 0 .../src/main/ets/common/NavBarController.ets | 0 .../src/main/ets/common/NavStackRegistry.ets | 0 .../entry/src/main/ets/common/PluginApi.ets | 0 .../src/main/ets/common/PluginStatus.ets | 0 .../src/main/ets/common/ScreensueHtml.ets | 0 .../src/main/ets/common/SettingsModel.ets | 0 .../entry/src/main/ets/common/SseClient.ets | 0 .../entry/src/main/ets/common/StageTrail.ets | 0 .../entry/src/main/ets/common/StatusStore.ets | 2 +- .../entry/src/main/ets/common/UserError.ets | 4 +- .../main/ets/components/AppearancePane.ets | 0 .../src/main/ets/components/Attachment.ets | 0 .../ets/components/BackendSettingsPane.ets | 0 .../src/main/ets/components/ChatAttachBar.ets | 0 .../src/main/ets/components/ChatBubble.ets | 0 .../src/main/ets/components/ChatComposer.ets | 0 .../src/main/ets/components/ChatStream.ets | 0 .../src/main/ets/components/ChatToolCard.ets | 0 .../main/ets/components/ConnectionsPane.ets | 2 +- .../src/main/ets/components/DevicePanes.ets | 2 +- .../main/ets/components/DeviceRootEntries.ets | 0 .../ets/components/GradientBackground.ets | 6 +-- .../src/main/ets/components/MarkdownView.ets | 0 .../src/main/ets/components/MotionBase.ets | 0 .../src/main/ets/components/PageTopBar.ets | 0 .../main/ets/components/PluginDetailPane.ets | 0 .../main/ets/components/PluginListView.ets | 0 .../main/ets/components/PluginsOverlays.ets | 0 .../src/main/ets/components/RuntimePanel.ets | 0 .../src/main/ets/components/ScreensuePage.ets | 0 .../main/ets/components/SettingsEditor.ets | 0 .../main/ets/components/SettingsEntryCard.ets | 0 .../src/main/ets/components/SettingsHome.ets | 0 .../ets/components/SettingsRootEntries.ets | 0 .../main/ets/components/StaticMarkdown.ets | 0 .../src/main/ets/components/StatusCards.ets | 0 .../entry/src/main/ets/components/SubPage.ets | 0 .../src/main/ets/components/ToastBar.ets | 0 .../main/ets/entryability/EntryAbility.ets | 18 +++---- .../entry/src/main/ets/model/Model.ets | 2 +- .../entry/src/main/ets/pages/ChatPage.ets | 0 .../entry/src/main/ets/pages/DevicePage.ets | 0 .../entry/src/main/ets/pages/Index.ets | 0 .../entry/src/main/ets/pages/PluginsPage.ets | 0 .../entry/src/main/ets/pages/SettingsPage.ets | 0 .../entry/src/main/module.json5 | 4 +- .../main/resources/base/element/color.json | 0 .../main/resources/base/element/string.json | 2 +- .../main/resources/base/media/app_icon.png | Bin .../resources/base/media/ic_arrow_back.svg | 0 .../src/main/resources/base/media/ic_bolt.svg | 0 .../main/resources/base/media/ic_check.svg | 0 .../resources/base/media/ic_chevron_down.svg | 0 .../resources/base/media/ic_chevron_right.svg | 0 .../main/resources/base/media/ic_close.svg | 0 .../resources/base/media/ic_devices_multi.svg | 0 .../main/resources/base/media/ic_error.svg | 0 .../src/main/resources/base/media/ic_file.svg | 0 .../main/resources/base/media/ic_gateway.svg | 0 .../main/resources/base/media/ic_image.svg | 0 .../src/main/resources/base/media/ic_link.svg | 0 .../main/resources/base/media/ic_offline.svg | 0 .../main/resources/base/media/ic_phone.svg | 0 .../src/main/resources/base/media/ic_plug.svg | 0 .../src/main/resources/base/media/ic_plus.svg | 0 .../main/resources/base/media/ic_pulse.svg | 0 .../main/resources/base/media/ic_refresh.svg | 0 .../main/resources/base/media/ic_reload.svg | 0 .../src/main/resources/base/media/ic_send.svg | 0 .../main/resources/base/media/ic_sparkle.svg | 0 .../src/main/resources/base/media/ic_stop.svg | 0 .../main/resources/base/media/ic_tab_chat.svg | 0 .../resources/base/media/ic_tab_devices.svg | 0 .../resources/base/media/ic_tab_plugins.svg | 0 .../resources/base/media/ic_tab_settings.svg | 0 .../resources/base/media/ic_tab_status.svg | 0 .../main/resources/base/media/ic_theme.svg | 0 .../src/main/resources/base/media/ic_tool.svg | 0 .../src/main/resources/base/media/ic_tune.svg | 0 .../main/resources/base/media/start_icon.png | Bin .../resources/base/profile/main_pages.json | 0 .../base/profile/network_config.json | 0 .../main/resources/dark/element/color.json | 0 .../hvigor/hvigor-config.json5 | 0 .../hvigorfile.ts | 0 .../oh-package-lock.json5 | 0 .../oh-package.json5 | 2 +- cmd/ohos/README.md | 8 +-- cmd/waiter/device.go | 18 +++---- cmd/waiter/gateway_discover.go | 4 +- cmd/waiter/gateway_discover_test.go | 2 +- cmd/waiter/main.go | 6 +-- cmd/waiter/tui.go | 2 +- deploy/packaging/package-windows.sh | 2 +- deploy/packaging/packaging_test.go | 4 +- deploy/scripts/sync-client-versions.sh | 4 +- docs/zh/ci-cd-runbook.md | 12 ++--- internal/agent/core/argvalidate.go | 2 +- internal/agent/core/builtin_toolapi.go | 2 +- internal/agent/core/overflow_test.go | 6 +-- internal/agent/core/plugins.go | 2 +- internal/agent/core/prompt_memory_test.go | 50 ++++++++++++++++++ internal/agent/core/resident_test.go | 2 +- internal/agent/core/spawn.go | 2 +- internal/agent/core/toolcall.go | 2 +- internal/agent/core/tooldefs.go | 44 ++++++++------- internal/agent/io/channel.go | 2 +- internal/agent/personal_test.go | 4 +- internal/config/registry.go | 2 +- internal/kernelmod/agent/mod.go | 2 +- internal/knowledge/import_test.go | 2 +- internal/memory/abstain_test.go | 2 +- internal/memory/distill/drift.go | 2 +- internal/memory/fusion_test.go | 2 +- .../memory/legacy_retire_precondition_test.go | 2 +- internal/memory/migrate_entities_test.go | 2 +- internal/meta/meta.go | 6 +-- internal/plugin/manifest.go | 4 +- internal/plugin/manifest_timeout_test.go | 2 +- internal/plugin/proc/shm.go | 4 +- internal/plugin/proc/shmalloc_windows.go | 6 +-- internal/plugins/ai_image/plugin.go | 2 +- .../plugins/clawhubadapter/manager/main.js | 8 +-- internal/plugins/clawhubadapter/registry.go | 4 +- .../clawhubadapter/simulator/openclaw_cli.js | 10 ++-- internal/plugins/cli/plugin.go | 2 +- internal/plugins/kbtree/plugin.go | 6 +-- internal/plugins/kbtree/scope.go | 2 +- internal/plugins/localuse/plugin.go | 8 +-- internal/plugins/pluginmgr/plugin.go | 2 +- internal/plugins/remotedevice/binary_test.go | 4 +- internal/plugins/remotedevice/device.go | 2 +- internal/plugins/remotedevice/plugin.go | 2 +- internal/plugins/seq/plugin_test.go | 2 +- internal/plugins/webui/auth_hardening_test.go | 2 +- internal/plugins/webui/dashboard.html | 8 +-- internal/plugins/webui/dashboard.js | 6 +-- internal/plugins/webui/handler.go | 6 +-- internal/plugins/webui/handler_openai.go | 2 +- .../webui/handler_sse_protocol_test.go | 6 +-- internal/plugins/webui/handler_test.go | 2 +- internal/plugins/webui/openai_compat_test.go | 2 +- internal/plugins/webui/plugin.go | 2 +- internal/plugins/webui/proxy.go | 8 +-- internal/plugins/webui/starmap_vendor_test.go | 2 +- internal/sdk/status.go | 2 +- internal/supervisor/daemon.go | 2 +- internal/systemd/migrate.go | 2 +- pkg/embedding/embedding.go | 2 +- pkg/generation/generation.go | 2 +- providers/ollama/generator.go | 2 +- providers/qwen3vl/embedder.go | 2 +- scripts/capability-bench/PLAN.md | 14 ++--- scripts/capability-bench/README.md | 6 +-- scripts/capability-bench/tasks.example.json | 2 +- scripts/capability-bench/tasks.zerobasis.json | 6 +-- scripts/verify_deploy.sh | 4 +- 204 files changed, 310 insertions(+), 252 deletions(-) rename cmd/ohos/{HomeAgent => HologramAgent}/.gitignore (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/app.json5 (92%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/resources/base/element/string.json (65%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/resources/base/media/app_icon.png (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/resources/base/media/background.png (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/resources/base/media/foreground.png (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/resources/base/media/layered_image.json (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/AppScope/resources/dark/media/background.png (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/build-profile.json5.example (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/hvigorfile.ts (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/oh-package-lock.json5 (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/oh-package.json5 (73%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ApiClient.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/AppVersion.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/AttachmentImage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/AttachmentMeta.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/BridgeCaps.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/BridgeProtocol.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/BridgeRouter.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ChatFormat.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ChatHistory.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ChatSession.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ChatSse.ets (99%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ChatStore.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ConnStore.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/Constants.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/DeviceBridge.ets (98%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/DeviceBridgeSession.ets (99%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/DeviceModel.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/MarkdownParser.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/NavBarController.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/NavStackRegistry.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/PluginApi.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/PluginStatus.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/ScreensueHtml.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/SettingsModel.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/SseClient.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/StageTrail.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/StatusStore.ets (99%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/common/UserError.ets (98%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/AppearancePane.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/Attachment.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/BackendSettingsPane.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ChatAttachBar.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ChatBubble.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ChatComposer.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ChatStream.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ChatToolCard.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ConnectionsPane.ets (99%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/DevicePanes.ets (99%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/DeviceRootEntries.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/GradientBackground.ets (94%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/MarkdownView.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/MotionBase.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/PageTopBar.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/PluginDetailPane.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/PluginListView.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/PluginsOverlays.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/RuntimePanel.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ScreensuePage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/SettingsEditor.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/SettingsEntryCard.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/SettingsHome.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/SettingsRootEntries.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/StaticMarkdown.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/StatusCards.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/SubPage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/components/ToastBar.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/entryability/EntryAbility.ets (88%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/model/Model.ets (99%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/pages/ChatPage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/pages/DevicePage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/pages/Index.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/pages/PluginsPage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/ets/pages/SettingsPage.ets (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/module.json5 (92%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/element/color.json (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/element/string.json (86%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/app_icon.png (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_arrow_back.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_bolt.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_check.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_chevron_down.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_chevron_right.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_close.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_devices_multi.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_error.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_file.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_gateway.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_image.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_link.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_offline.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_phone.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_plug.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_plus.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_pulse.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_refresh.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_reload.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_send.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_sparkle.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_stop.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tab_chat.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tab_devices.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tab_plugins.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tab_settings.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tab_status.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_theme.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tool.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/ic_tune.svg (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/media/start_icon.png (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/profile/main_pages.json (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/base/profile/network_config.json (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/entry/src/main/resources/dark/element/color.json (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/hvigor/hvigor-config.json5 (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/hvigorfile.ts (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/oh-package-lock.json5 (100%) rename cmd/ohos/{HomeAgent => HologramAgent}/oh-package.json5 (84%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6fe5b34b..eb5bc3ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -# HomeAgent 主仓 CI。 +# HologramAgent 主仓 CI。 # # 设计原则:**CI 里跑的每一条命令,都是本地已实测通过的命令**。 # 不写「应该有用来试试」的步骤 —— 未验证的 CI 步骤会把假红灯变成常态, @@ -235,11 +235,11 @@ jobs: # # 取值依据(实测 2026-10-21,直连不带代理,非推测): # https://gitcode.com/JianFeeeee/HologramAgent → 200 ← 当前用这个 - # https://gitcode.com/JianFeeeee/HomeAgent → 301 ← 旧名,跳转到上面 + # https://gitcode.com/JianFeeeee/HologramAgent → 301 ← 旧名,跳转到上面 # https://gitcode.com/JianFeeeee/hologramagentsdk → 200(SDK 仓,另一对象) # https://gitcode.com/JianFeeeee/homeagentsdk → 404 # - # 背景:gitcode 侧镜像仓已由 HomeAgent 改名为 HologramAgent(与 GitHub + # 背景:gitcode 侧镜像仓已由 HologramAgent 改名为 HologramAgent(与 GitHub # 主仓同名)。旧地址仍 301 跳转,跟随后也能到达,但走重定向 ⇒ 别再用它。 # 判定两仓同一对象:两地址 git ls-remote 的 refs 列表 md5 相同。 # @@ -263,7 +263,7 @@ jobs: with: # 必须取完整历史:镜像可能在任意旧提交上,快进需要共同祖先。 fetch-depth: 0 - # ★ 改名(HomeAgent → HologramAgent)后的必然过渡态:gitcode 上的镜像仓 + # ★ 改名(HologramAgent → HologramAgent)后的必然过渡态:gitcode 上的镜像仓 # 是**另一个账号下的独立仓库**,改 GitHub 仓名不会自动建出它。 # 若不在这里显式探测,缺少目标仓时只会得到 git 的原始报错 # ("repository not found" 混在 push 输出里),看不出是「仓没建」。 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3806e5b0..ccbfc63e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -308,7 +308,7 @@ jobs: [ "$PRE" = "true" ] && FLAGS+=(--prerelease) gh release create "$TAG" \ --title "$TAG" \ - --notes "HomeAgent $VERSION + --notes "HologramAgent $VERSION 产物清单与校验见 SHA256SUMS。 - \`hologramagent_${VERSION}_linux_amd64.tar.gz\` — 内核 + CLI + GUI 打包 @@ -361,11 +361,11 @@ jobs: # # 取值依据(实测 2026-10-21,直连不带代理,非推测): # https://gitcode.com/JianFeeeee/HologramAgent → 200 ← 当前用这个 - # https://gitcode.com/JianFeeeee/HomeAgent → 301 ← 旧名,跳转到上面 + # https://gitcode.com/JianFeeeee/HologramAgent → 301 ← 旧名,跳转到上面 # https://gitcode.com/JianFeeeee/hologramagentsdk → 200(SDK 仓,另一对象) # https://gitcode.com/JianFeeeee/homeagentsdk → 404 # - # 背景:gitcode 侧镜像仓已由 HomeAgent 改名为 HologramAgent(与 GitHub + # 背景:gitcode 侧镜像仓已由 HologramAgent 改名为 HologramAgent(与 GitHub # 主仓同名)。旧地址仍 301 跳转,跟随后也能到达,但走重定向 ⇒ 别再用它。 # 判定两仓同一对象:两地址 git ls-remote 的 refs 列表 md5 相同。 # @@ -390,7 +390,7 @@ jobs: name: linux-amd64 path: dist # ★ 前置检查:gitcode 镜像仓是否存在。 - # 改名(HomeAgent → HologramAgent)后 gitcode 目标仓需要**人工新建**, + # 改名(HologramAgent → HologramAgent)后 gitcode 目标仓需要**人工新建**, # 不探的话失败会埋在 push/curl 的原始输出里,看不出是「仓没建」。 # 语义:token 未配 = 可选项跳过(上一步);token 有但仓不存在 = 硬失败。 # diff --git a/assets/knowledge/homeagent_architecture/content.md b/assets/knowledge/homeagent_architecture/content.md index 62ec3d9a..b7c17a4b 100644 --- a/assets/knowledge/homeagent_architecture/content.md +++ b/assets/knowledge/homeagent_architecture/content.md @@ -1,8 +1,8 @@ -HomeAgent 是完全独立自研的新一代 Agent 框架。 +HologramAgent 是完全独立自研的新一代 Agent 框架。 ## 架构总览 -HomeAgent 采用内核 + 插件双层架构: +HologramAgent 采用内核 + 插件双层架构: ``` 外部输入(QQ/Web/CLI) diff --git a/assets/skills/commondev-discipline/SKILL.md b/assets/skills/commondev-discipline/SKILL.md index 952bff6f..ba5353e3 100644 --- a/assets/skills/commondev-discipline/SKILL.md +++ b/assets/skills/commondev-discipline/SKILL.md @@ -2,7 +2,7 @@ name: commondev-discipline description: commondev 主管式多仓库开发流水线的使用与开发纪律。当你要为某个工程开一条分支、把工程派给一个下属 agent、或用 pi 拉起执行 agent 干活时必读。核心动作:为每个工程对话新建驻留式子 agent 并把该工程的一对通道划给它(否则所有工程都挤在根 agent 上)。**git 托管平台的操作(Gitea/GitHub/GitLab)不在插件里,而在本文** —— 用 enc_shell + 保存的凭据调 curl/CLI 完成。也含 hmap 插件开发与部署纪律。 version: 2.0.0 -author: HomeAgent +author: HologramAgent --- # commondev 纪律(主管模式 · 工程对话 · 平台操作) @@ -176,7 +176,7 @@ enc_shell(command="curl -s -X POST -H \"Authorization: token @{t}\" -H 'Content- | 角色 | 是谁 | 干什么 | |---|---|---| | **人** | 老板 | 只与主管对接 | -| **主管** | 你(长期驻留的 HomeAgent 主 agent) | 拆任务、**定义判据**、复审、决定合入 | +| **主管** | 你(长期驻留的 HologramAgent 主 agent) | 拆任务、**定义判据**、复审、决定合入 | | **执行 agent** | 按工程拉起的一个 pi / dsh 实例 | 在某棵工作树里干活 | | **commondev 插件** | 外部独立插件 | 仓库/凭据/分支/PR/测试,全部机械化操作 | diff --git a/assets/skills/commondev-discipline/skill.json b/assets/skills/commondev-discipline/skill.json index 362a271c..5459d972 100644 --- a/assets/skills/commondev-discipline/skill.json +++ b/assets/skills/commondev-discipline/skill.json @@ -2,5 +2,5 @@ "name": "commondev-discipline", "description": "commondev 主管式多仓库开发流水线的使用与开发纪律:为每个工程对话新建驻留子并划入其通道、投递必须落同一 session、复核必须含变异阶段;以及 hmap 插件开发纪律(plg.json、SDK 版本、产物形态、Serial/ParallelSafe、外部插件能力边界、凭据与孤儿清理)", "version": "1.0.0", - "author": "HomeAgent" + "author": "HologramAgent" } diff --git a/assets/skills/knowledge-base/SKILL.md b/assets/skills/knowledge-base/SKILL.md index 993a29a8..8fa2c461 100644 --- a/assets/skills/knowledge-base/SKILL.md +++ b/assets/skills/knowledge-base/SKILL.md @@ -1,16 +1,16 @@ --- name: knowledge-base -description: 按分类树检索 HomeAgent 知识库。当需要查阅项目知识、架构约定、历史决策,或用户提到"知识库/knowledge/知识库有哪些/这个项目的约定是什么"时使用。支持树形导航、分类内检索、以图搜知识。 +description: 按分类树检索 HologramAgent 知识库。当需要查阅项目知识、架构约定、历史决策,或用户提到"知识库/knowledge/知识库有哪些/这个项目的约定是什么"时使用。支持树形导航、分类内检索、以图搜知识。 version: 1.1.0 -author: HomeAgent +author: HologramAgent --- ## Usage -先看树定位分类,再做定向检索。接口由 HomeAgent 的 `kbtree` 插件提供, +先看树定位分类,再做定向检索。接口由 HologramAgent 的 `kbtree` 插件提供, 只读、需 token。详见下方"接入"。 -HomeAgent 知识库按**分类树**组织(`tech/go/并发`、`life/sleep` …)。 +HologramAgent 知识库按**分类树**组织(`tech/go/并发`、`life/sleep` …)。 ### 何时用 @@ -102,7 +102,7 @@ curl -s -H "$AUTH" "$BASE/search?q=goroutine&limit=5" 若知识条目挂了图片,它在**多模态统一空间**里有向量,能被图片本身检索到。 前提是宿主已接入多模态向量 provider(否则只是记录了媒体,不参与召回)。 -判断是否就绪:HomeAgent 自身的知识库接口会返回稠密路状态 +判断是否就绪:HologramAgent 自身的知识库接口会返回稠密路状态 (`dense.enabled` / `dense.ready` / `dense.total`)。若为未启用, **不要承诺"能以图搜"**。 @@ -132,13 +132,13 @@ curl -s -H "$AUTH" "$BASE/search?q=goroutine&limit=5" - **分类不存在返回 404**,并在 `categories` 字段里附上现有分类 —— 用它自查 拼写。 - **`items=0` 只是不要正文**,`total_count` 仍准确,可用于判断规模。 -- **本服务只读**。写方法返回 405。要写知识请用 HomeAgent 主 agent 的 +- **本服务只读**。写方法返回 405。要写知识请用 HologramAgent 主 agent 的 `knowledge_create`(或 WebUI 界面),不要试图绕过它直接写这个接口。 - 知识名里不能有 `..`、空格(会被规范成 `_`)、点开头的段。 ### 写入 -本服务不提供写入。若你在 HomeAgent 主 agent 内部,写入用内核工具: +本服务不提供写入。若你在 HologramAgent 主 agent 内部,写入用内核工具: ``` knowledge_create name="tech/go/调度" content="正文..." diff --git a/assets/skills/knowledge-base/scripts/kb_tree.sh b/assets/skills/knowledge-base/scripts/kb_tree.sh index ddbdf845..43c4d44d 100755 --- a/assets/skills/knowledge-base/scripts/kb_tree.sh +++ b/assets/skills/knowledge-base/scripts/kb_tree.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# kbtree 客户端:按分类树检索 HomeAgent 知识库。 +# kbtree 客户端:按分类树检索 HologramAgent 知识库。 # # 由 knowledge-base skill 调用(agent 读 SKILL.md 后按需调本脚本)。 # 也可人工使用: @@ -88,7 +88,7 @@ if ! (exec 3<>"/dev/tcp/${HOSTPORT%%:*}/${HOSTPORT##*:}") 2>/dev/null; then cat >&2 < { parent: mainWindow, modal: true, autoHideMenuBar: true, - title: "HomeAgent - 网关联机登录", + title: "HologramAgent - 网关联机登录", webPreferences: { contextIsolation: true, nodeIntegration: false }, }); const u = encodeURIComponent(username || ""); @@ -1456,7 +1456,7 @@ async function connectDeviceBridgeOnce(cfg) { op: "hello", device: { device_id: deviceBridgeId, - name: "HomeAgent GUI", + name: "HologramAgent GUI", kind: "computer", authorized: authorized, caps: [ @@ -1986,8 +1986,8 @@ function executeHomeagentCmd(capability, reqId) { const h = Math.min(parseInt(area.height || 600, 10) - 40, 560); const html = /<\/?[a-z][\s\S]*>/i.test(raw) ? raw - : "

HomeAgent

" + - String(raw || "HomeAgent 远程屏幕提示").replace(/

HologramAgent

" + + String(raw || "HologramAgent 远程屏幕提示").replace(/

"; try { if (screensueWin && !screensueWin.isDestroyed()) screensueWin.destroy(); @@ -1999,7 +1999,7 @@ function executeHomeagentCmd(capability, reqId) { alwaysOnTop: true, frame: false, resizable: true, - title: "HomeAgent · screensue", + title: "HologramAgent · screensue", webPreferences: { nodeIntegration: false, contextIsolation: true }, }); screensueWin.setAlwaysOnTop(true, "screen-saver"); @@ -3223,7 +3223,7 @@ async function setDeviceAuthorized(authorized) { op: "hello", device: { device_id: deviceBridgeId, - name: "HomeAgent GUI", + name: "HologramAgent GUI", kind: "computer", authorized: !!authorized, caps: [ @@ -3291,7 +3291,7 @@ function buildTrayMenuTemplate() { const electron = require("electron"); const TMenu = electron.Menu; const tpl = []; - tpl.push({ label: "HomeAgent", enabled: true }); + tpl.push({ label: "HologramAgent", enabled: true }); tpl.push({ type: "separator" }); // 远程连接状态(缓存避免每次读文件) const connLabel = trayConnCache.connLabel || "未连接"; @@ -3404,7 +3404,7 @@ function initTray() { img = nImg.createEmpty(); } tray = new Tray(img); - tray.setToolTip("HomeAgent - 个人智能管家"); + tray.setToolTip("HologramAgent - 个人智能管家"); rebuildTrayMenu(); tray.on("double-click", () => showMainWindow()); console.log("[tray] READY: " + (tray ? "tray-created" : "null")); @@ -3525,7 +3525,7 @@ app.whenReady().then(async () => { // 「启动时不显示主窗口,驻留托盘后台运行」,但主进程从来没读过它 —— // whenReady 无条件 createWindow(),于是必然弹窗。 // - // 实测(本机,prefs.silentStart=true):窗口标题 HomeAgent 照样出现。 + // 实测(本机,prefs.silentStart=true):窗口标题 HologramAgent 照样出现。 // // 与 applyAutoLaunch 里的 openAsHidden 是两回事:那个是告诉 OS「开机自启 // 时如何启动」(仅 Windows/macOS 生效),这里是本进程自己决定要不要显示, @@ -3605,7 +3605,7 @@ let notifSeq = 0; ipcMain.handle("notify:show", (_, payload) => { try { const p = payload || {}; - const title = String(p.title || "HomeAgent"); + const title = String(p.title || "HologramAgent"); const body = String(p.body || ""); if (!body) return { ok: false, error: "empty body" }; if (!Notification.isSupported()) return { ok: false, error: "unsupported" }; @@ -3721,10 +3721,10 @@ function saveGuiPrefs(p) { } // Electron LoginItem 写入的注册表项名是「electron.app.」。 -// 产物改名过(HomeAgent.exe → homeagent-gui.exe)就会多出一条旧项, +// 产物改名过(HologramAgent.exe → homeagent-gui.exe)就会多出一条旧项, // 且 setLoginItemSettings 不会清理它们 ⇒ 开机启动两次同一个 exe。 // 实测本机 Run 键里确实同时存在: -// electron.app.HomeAgent = "E:\program\homeagent\...\homeagent-gui.exe" +// electron.app.HologramAgent = "E:\program\homeagent\...\homeagent-gui.exe" // electron.app.homeagent-gui = E:\program\homeagent\...\homeagent-gui.exe // 两条指向同一 exe,所以表面看是两个自启动,实际是同一份的重复。 // diff --git a/cmd/gui/package.json b/cmd/gui/package.json index 7059aa34..5c2c7077 100644 --- a/cmd/gui/package.json +++ b/cmd/gui/package.json @@ -3,7 +3,7 @@ "version": "1.4.0", "author": "JianFeeeee ", "homepage": "https://github.com/JianFeeeee/HologramAgent", - "description": "HomeAgent Desktop GUI - Multi-connection management dashboard", + "description": "HologramAgent Desktop GUI - Multi-connection management dashboard", "main": "main.js", "scripts": { "start": "electron . --no-sandbox", @@ -25,7 +25,7 @@ }, "build": { "appId": "com.homeagent.gui", - "productName": "HomeAgent", + "productName": "HologramAgent", "linux": { "target": [ "deb", diff --git a/cmd/gui/renderer/app.js b/cmd/gui/renderer/app.js index 11313c69..f4b45f2d 100644 --- a/cmd/gui/renderer/app.js +++ b/cmd/gui/renderer/app.js @@ -741,7 +741,7 @@ async function api(p, o) { // 从服务端发现设备网关地址(自动链接的权威来源)。 // -// 失败不报错:老版本 HomeAgent 没有这个端点,回退到本地推导即可 +// 失败不报错:老版本 HologramAgent 没有这个端点,回退到本地推导即可 // (见 renderDeviceChannel 里的 state.discoveredGateway || 旧口径)。 // // 优先 url_portal(门户同源形态):GUI 主进程连 WS 走系统解析器, @@ -1083,7 +1083,7 @@ async function refreshAll() { // 服务端列表未含本机(可能离线),仍展示本地状态 state.devices.push({ device_id: dbinfo.deviceId, - name: "HomeAgent GUI", + name: "HologramAgent GUI", kind: "computer", authorized: dbinfo.authorized, online: false, @@ -1555,7 +1555,7 @@ function renderOverview() { b.commit && b.commit !== "unknown" ? String(b.commit).slice(0, 7) : ""; return ( "v" + escHtml(v) + - '
' + escHtml(b.kernel_name || "HomeAgent") + + '
' + escHtml(b.kernel_name || "HologramAgent") + (sha ? " · " + escHtml(sha) : "") + "
" ); })(), @@ -1819,8 +1819,8 @@ function buildChatLayout() { "" + "

" + __( - "连接 HomeAgent 服务端后即可开始对话。请在设置中添加后端连接。", - "Connect to a HomeAgent server to start chatting. Add a backend connection in Settings.", + "连接 HologramAgent 服务端后即可开始对话。请在设置中添加后端连接。", + "Connect to a HologramAgent server to start chatting. Add a backend connection in Settings.", ) + "

" + '