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。
This commit is contained in:
JianFeeeee
2026-10-21 19:22:02 +08:00
parent dfc4e16e65
commit 37b8c26675
12 changed files with 138 additions and 138 deletions

View File

@ -240,7 +240,7 @@ internal/
├── config/ SQLite 配置中心 ├── config/ SQLite 配置中心
├── events/ 事件总线 ├── events/ 事件总线
└── internal/lua/adapters/ 10 个 LLM 协议适配器脚本 └── internal/lua/adapters/ 10 个 LLM 协议适配器脚本
外部插件开发见 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库,使用 `hmapdev` 工具链开发,参考 `example/` 目录下的 Go 和 Lua 示例 外部插件开发见 [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) 仓库,使用 `hmapdev` 工具链开发,参考 `example/` 目录下的 Go 和 Lua 示例
``` ```
## 项目状态 ## 项目状态
@ -318,7 +318,7 @@ internal/
> inline/small **30.4µs**、frame/small 51.5µs、inline/large 767µs、frame/large 398µs。 > inline/small **30.4µs**、frame/small 51.5µs、inline/large 767µs、frame/large 398µs。
> 保留原文不修改,以免伪造历史。 > 保留原文不修改,以免伪造历史。
**v1.1.1** — 多模态贯通**插件边界**。v1.1.0 让记忆系统支持了二进制多媒体节点,但那条链路只对内核自己开放;本版打通到插件与模型。公开 SDK 新增媒体字段与三个媒体注入接口(配套 [SDK v1.1.0](https://github.com/JianFeeeee/homeagentsdk/tree/v1.1.0),整条 1.1.x 线共用),内核实现对应四个 RPC。桥接层此前在**静默裁字段**:插件交进来的 `Confidence`/类型/`SentenceText` 全被丢弃、`Doc` 只留三个字段、`Remove` 不解引用(媒体永久算「被引用」,GC 收不掉)。`processTextInput`/`processMediaInput` 归一成一条 `processInput`,媒体路径由此获得它一直缺的去重、`no_memory`、通道 `Cleaner`、中断语义、`EventRawInput`。修掉三处真实缺陷:**用户发的图从来没出现在 WebUI 聊天记录里**(媒体路径发布 map 而订阅方断言 string)、**`memory_commit` 的 `sentence_text` 从未暴露给模型**(而它是媒体绑定链的必经环节)、**`PluginSDK` 两处并发竞态**(`-race` 实测 11 处,插件重载瞬间偶发 nil 解引用崩溃)。 **v1.1.1** — 多模态贯通**插件边界**。v1.1.0 让记忆系统支持了二进制多媒体节点,但那条链路只对内核自己开放;本版打通到插件与模型。公开 SDK 新增媒体字段与三个媒体注入接口(配套 [SDK v1.1.0](https://github.com/JianFeeeee/HologramAgent-sdk/tree/v1.1.0),整条 1.1.x 线共用),内核实现对应四个 RPC。桥接层此前在**静默裁字段**:插件交进来的 `Confidence`/类型/`SentenceText` 全被丢弃、`Doc` 只留三个字段、`Remove` 不解引用(媒体永久算「被引用」,GC 收不掉)。`processTextInput`/`processMediaInput` 归一成一条 `processInput`,媒体路径由此获得它一直缺的去重、`no_memory`、通道 `Cleaner`、中断语义、`EventRawInput`。修掉三处真实缺陷:**用户发的图从来没出现在 WebUI 聊天记录里**(媒体路径发布 map 而订阅方断言 string)、**`memory_commit` 的 `sentence_text` 从未暴露给模型**(而它是媒体绑定链的必经环节)、**`PluginSDK` 两处并发竞态**(`-race` 实测 11 处,插件重载瞬间偶发 nil 解引用崩溃)。
**v1.1.0** — 记忆系统支持**二进制多媒体节点**。内容寻址媒体存储(CAS + SQLite 元数据 + 磁盘 blob,`Get` always 重校 digest),贯通 L0(上下文事件)/L2(文档)/L3(图谱句子)三层,引用计数式 GC(有引用者绝不删)。视觉模型生成的描述文本是持久语义记忆,blob 只是可被容量 GC 淘汰的缓存。 **v1.1.0** — 记忆系统支持**二进制多媒体节点**。内容寻址媒体存储(CAS + SQLite 元数据 + 磁盘 blob,`Get` always 重校 digest),贯通 L0(上下文事件)/L2(文档)/L3(图谱句子)三层,引用计数式 GC(有引用者绝不删)。视觉模型生成的描述文本是持久语义记忆,blob 只是可被容量 GC 淘汰的缓存。
@ -326,16 +326,16 @@ internal/
**v0.9.0** — C ABI v2:外部插件 Stage 回调支持写回(`invoke_stage` 增加 result 输出,插件可在 OnInput/AfterToolcall/PostAction 修改 RawMessage/LLMText/ToolResults 等并同步回内核),ABI 版本随内核 minor 对齐(v0.9.x → ABIVersion=2,`version_min=1` 向后兼容旧插件)。同步修复工具循环 zen 兼容补位误伤首轮 system 上下文的问题。配套 SDK 提供增强版 sanitizer 示例(坏 UTF-8/U+FFFD/ANSI 转义全链路清洗)。**该 ABI 已随 v1.0.0 退场。** **v0.9.0** — C ABI v2:外部插件 Stage 回调支持写回(`invoke_stage` 增加 result 输出,插件可在 OnInput/AfterToolcall/PostAction 修改 RawMessage/LLMText/ToolResults 等并同步回内核),ABI 版本随内核 minor 对齐(v0.9.x → ABIVersion=2,`version_min=1` 向后兼容旧插件)。同步修复工具循环 zen 兼容补位误伤首轮 system 上下文的问题。配套 SDK 提供增强版 sanitizer 示例(坏 UTF-8/U+FFFD/ANSI 转义全链路清洗)。**该 ABI 已随 v1.0.0 退场。**
**v0.8.0** — 核心可用,插件系统增强。内置 20+ 插件,外部插件开发见 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库。新增输入通道 `NoMemory`/`Cleaner`、`ChannelDef`、插件禁用/启用系统(CLI + WebUI),`plugindev` 工具链完成 C ABI `ChannelDef` 传递。 **v0.8.0** — 核心可用,插件系统增强。内置 20+ 插件,外部插件开发见 [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) 仓库。新增输入通道 `NoMemory`/`Cleaner`、`ChannelDef`、插件禁用/启用系统(CLI + WebUI),`plugindev` 工具链完成 C ABI `ChannelDef` 传递。
## 文档 ## 文档
**在线文档**: **在线文档**:
- 介绍站(项目总览):<https://introduce.homeagent.jianfgit.xyz/> - 介绍站(项目总览):<https://introduce.hologramagent.jianfgit.xyz/>
- 插件 SDK 文档(快速开始 / API 参考 / 指南 / 示例):<https://sdk.homeagent.jianfgit.xyz/> - 插件 SDK 文档(快速开始 / API 参考 / 指南 / 示例):<https://sdk.hologramagent.jianfgit.xyz/>
—— 面向 agent 的纯文本入口:[`llms.txt`](https://sdk.homeagent.jianfgit.xyz/llms.txt) / —— 面向 agent 的纯文本入口:[`llms.txt`](https://sdk.hologramagent.jianfgit.xyz/llms.txt) /
[`llms-full.txt`](https://sdk.homeagent.jianfgit.xyz/llms-full.txt) [`llms-full.txt`](https://sdk.hologramagent.jianfgit.xyz/llms-full.txt)
**仓内文档**(随代码版本走): **仓内文档**(随代码版本走):
@ -347,7 +347,7 @@ internal/
## 下载 ## 下载
[Releases](https://github.com/JianFeeeee/HomeAgent/releases) 提供三种变体: [Releases](https://github.com/JianFeeeee/HologramAgent/releases) 提供三种变体:
| 变体 | 内容 | 适用 | | 变体 | 内容 | 适用 |
| --- | --- | --- | | --- | --- | --- |
@ -385,7 +385,7 @@ make install # 安装到系统
**通过网络提供服务时也要向使用者提供源码**(§13 Remote Network Interaction)。 **通过网络提供服务时也要向使用者提供源码**(§13 Remote Network Interaction)。
即:任何人把改过的 HologramAgent 对外提供网络服务,都必须让该服务的使用者拿到改动后的源码。 即:任何人把改过的 HologramAgent 对外提供网络服务,都必须让该服务的使用者拿到改动后的源码。
插件与本项目通过公开 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 静态链接 插件与本项目通过公开 [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) 静态链接
(SDK 源码会进入插件二进制),但那个仓**以 MIT 发布**——MIT 是宽松许可,拿到授权的代码不继承 (SDK 源码会进入插件二进制),但那个仓**以 MIT 发布**——MIT 是宽松许可,拿到授权的代码不继承
本项目的 AGPL。因此**外部插件不是本项目的衍生作品**,作者可自行选择许可(含闭源、商业、私有), 本项目的 AGPL。因此**外部插件不是本项目的衍生作品**,作者可自行选择许可(含闭源、商业、私有),
既不必同许可、也不受 §13 网络条款约束。第三方插件生态的安全与活跃正建立在这条之上。 既不必同许可、也不受 §13 网络条款约束。第三方插件生态的安全与活跃正建立在这条之上。

View File

@ -221,7 +221,7 @@ internal/
├── config/ SQLite config center ├── config/ SQLite config center
├── events/ Event bus ├── events/ Event bus
└── internal/lua/adapters/ 10 LLM protocol adapter scripts └── internal/lua/adapters/ 10 LLM protocol adapter scripts
External plugin development: see [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repo, use `hmapdev` toolchain, refer to Go and Lua examples in `example/` External plugin development: see [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) repo, use `hmapdev` toolchain, refer to Go and Lua examples in `example/`
``` ```
## Project Status ## Project Status
@ -323,7 +323,7 @@ External plugin development: see [homeagent-sdk](https://github.com/JianFeeeee/h
**v1.1.1** — Multimodal reaches the **plugin boundary**. v1.1.0 gave the memory system binary **v1.1.1** — Multimodal reaches the **plugin boundary**. v1.1.0 gave the memory system binary
multimedia nodes, but that path was open only to the kernel itself; this release opens it to multimedia nodes, but that path was open only to the kernel itself; this release opens it to
plugins and the model. The public SDK gains media fields and three media injection methods plugins and the model. The public SDK gains media fields and three media injection methods
(paired with [SDK v1.1.0](https://github.com/JianFeeeee/homeagentsdk/tree/v1.1.0), (paired with [SDK v1.1.0](https://github.com/JianFeeeee/HologramAgent-sdk/tree/v1.1.0),
shared by the whole 1.1.x line), and the kernel implements the four matching RPCs. The bridge shared by the whole 1.1.x line), and the kernel implements the four matching RPCs. The bridge
layer had been **silently dropping fields**: `Confidence`/types/`SentenceText` handed in by a layer had been **silently dropping fields**: `Confidence`/types/`SentenceText` handed in by a
plugin were discarded, `Doc` kept only three fields, and `Remove` never released references plugin were discarded, `Doc` kept only three fields, and `Remove` never released references
@ -346,16 +346,16 @@ semantic memory; the blob is only a cache that capacity GC may evict.
**v0.9.0** — C ABI v2: external plugin Stage callbacks can now write back (`invoke_stage` gained a result out-param; plugins may mutate RawMessage/LLMText/ToolResults etc. in OnInput/AfterToolcall/PostAction and have them synced to the core). ABI version now tracks core minor releases (v0.9.x → ABIVersion=2, `version_min=1` keeps old plugins loadable). Also fixes the tool-loop zen-compat placeholder that wrongly fired on first-turn system context tail. The SDK ships an enhanced sanitizer example (bad-UTF-8 / U+FFFD / ANSI-escape scrub across the whole pipeline). **This ABI retired with v1.0.0.** **v0.9.0** — C ABI v2: external plugin Stage callbacks can now write back (`invoke_stage` gained a result out-param; plugins may mutate RawMessage/LLMText/ToolResults etc. in OnInput/AfterToolcall/PostAction and have them synced to the core). ABI version now tracks core minor releases (v0.9.x → ABIVersion=2, `version_min=1` keeps old plugins loadable). Also fixes the tool-loop zen-compat placeholder that wrongly fired on first-turn system context tail. The SDK ships an enhanced sanitizer example (bad-UTF-8 / U+FFFD / ANSI-escape scrub across the whole pipeline). **This ABI retired with v1.0.0.**
**v0.8.0** — Core is functional, plugin system enhanced. 20+ built-in plugins. External plugin development via [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repo. Added input channel `NoMemory`/`Cleaner`, `ChannelDef`, plugin disable/enable system (CLI + WebUI), `plugindev` toolchain C ABI `ChannelDef` support. **v0.8.0** — Core is functional, plugin system enhanced. 20+ built-in plugins. External plugin development via [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) repo. Added input channel `NoMemory`/`Cleaner`, `ChannelDef`, plugin disable/enable system (CLI + WebUI), `plugindev` toolchain C ABI `ChannelDef` support.
## Documentation ## Documentation
**Online docs**: **Online docs**:
- Introduction site (project overview): <https://introduce.homeagent.jianfgit.xyz/> - Introduction site (project overview): <https://introduce.hologramagent.jianfgit.xyz/>
- Plugin SDK docs (getting started / API reference / guides / examples): <https://sdk.homeagent.jianfgit.xyz/> - Plugin SDK docs (getting started / API reference / guides / examples): <https://sdk.hologramagent.jianfgit.xyz/>
— agent-friendly plain text: [`llms.txt`](https://sdk.homeagent.jianfgit.xyz/llms.txt) / — agent-friendly plain text: [`llms.txt`](https://sdk.hologramagent.jianfgit.xyz/llms.txt) /
[`llms-full.txt`](https://sdk.homeagent.jianfgit.xyz/llms-full.txt) [`llms-full.txt`](https://sdk.hologramagent.jianfgit.xyz/llms-full.txt)
**In-repo docs** (versioned with the code): **In-repo docs** (versioned with the code):
@ -367,7 +367,7 @@ semantic memory; the blob is only a cache that capacity GC may evict.
## Downloads ## Downloads
[Releases](https://github.com/JianFeeeee/HomeAgent/releases) ship three variants: [Releases](https://github.com/JianFeeeee/HologramAgent/releases) ship three variants:
| Variant | Contents | For | | Variant | Contents | For |
| --- | --- | --- | | --- | --- | --- |
@ -408,7 +408,7 @@ with it over a network** (§13, Remote Network Interaction). Anyone running a mo
as a network service therefore has to make the modified source available to that service's users. as a network service therefore has to make the modified source available to that service's users.
Plugins are **statically linked** against this project through the public Plugins are **statically linked** against this project through the public
[homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) (the SDK source ends up inside the [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) (the SDK source ends up inside the
plugin binary), but that repository is released under **MIT** — a permissive license, so code plugin binary), but that repository is released under **MIT** — a permissive license, so code
received under it does **not** inherit this project's AGPL. External plugins are therefore **not received under it does **not** inherit this project's AGPL. External plugins are therefore **not
derivative works of this project**: authors pick their own license (closed-source, commercial or derivative works of this project**: authors pick their own license (closed-source, commercial or

View File

@ -111,5 +111,5 @@ Core functionality is operational. Plugin system and SDK are ready for independe
- Built-in plugins (13): webui / cli / agentcli / cfgmgr / healthcheck / kbtree / multimodal / pluginmgr / clawhubadapter / remotedevice / skillmgr / seemedia / seq - Built-in plugins (13): webui / cli / agentcli / cfgmgr / healthcheck / kbtree / multimodal / pluginmgr / clawhubadapter / remotedevice / skillmgr / seemedia / seq
- Criterion: **a plugin stays built-in only if it requires internal-SDK-only capabilities**; everything else ships as an .hmap external plugin (see ARCHITECTURE) - Criterion: **a plugin stays built-in only if it requires internal-SDK-only capabilities**; everything else ships as an .hmap external plugin (see ARCHITECTURE)
- External plugin examples ([homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repo `example/`, both Go and Lua types): qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo - External plugin examples ([HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) repo `example/`, both Go and Lua types): qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo
- Distribution: `.hmap` plugin package format, installable via WebUI - Distribution: `.hmap` plugin package format, installable via WebUI

View File

@ -8,11 +8,11 @@
All external interaction capabilities of HologramAgent comes from plugins. Plugins interact with the kernel through `PluginSDK` (Go API). All external interaction capabilities of HologramAgent comes from plugins. Plugins interact with the kernel through `PluginSDK` (Go API).
**SDK Repository**: Plugin development tools, template code, and example plugins are hosted in the [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) repository. **SDK Repository**: Plugin development tools, template code, and example plugins are hosted in the [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) repository.
```bash ```bash
git clone https://github.com/JianFeeeee/homeagentsdk.git git clone https://github.com/JianFeeeee/HologramAgent-sdk.git
cd homeagent-sdk cd HologramAgent-sdk
``` ```
Each plugin implements a three-method interface: Each plugin implements a three-method interface:
@ -48,7 +48,7 @@ plugin types, and producing `.hmap` plugin bundles (the tool is named after that
### Installation ### Installation
```bash ```bash
cd homeagent-sdk/tools/hmapdev cd HologramAgent-sdk/tools/hmapdev
go build -o hmapdev go build -o hmapdev
# Add hmapdev to PATH or use directly # Add hmapdev to PATH or use directly
# Prebuilt binaries also ship as release assets (hmapdev_linux_amd64, ...) # Prebuilt binaries also ship as release assets (hmapdev_linux_amd64, ...)
@ -252,7 +252,7 @@ curl -X POST http://127.0.0.1:8080/api/v1/plugins \
```go ```go
package main package main
import "github.com/JianFeeeee/homeagentsdk/sdk" import "github.com/JianFeeeee/HologramAgent-sdk/sdk"
type Plugin struct { type Plugin struct {
name string name string
@ -452,7 +452,7 @@ Parameters: `name` (route key), `caps` (1=text/2=rich/4=file/8=image), `desc`, `
#### Event Subscription #### Event Subscription
```go ```go
import "github.com/JianFeeeee/homeagentsdk/sdk" import "github.com/JianFeeeee/HologramAgent-sdk/sdk"
unsub := s.Events().Subscribe(sdk.EventToolCall, func(evt *sdk.Event) { unsub := s.Events().Subscribe(sdk.EventToolCall, func(evt *sdk.Event) {
log.Printf("Tool was called: %v", evt.Payload) log.Printf("Tool was called: %v", evt.Payload)
@ -738,8 +738,8 @@ internal/plugins/yourplugin/
package yourplugin package yourplugin
import ( import (
"gitcode.com/JianFeeeee/HomeAgent/internal/plugin" "gitcode.com/JianFeeeee/HologramAgent/internal/plugin"
sdk "gitcode.com/JianFeeeee/HomeAgent/internal/sdk" sdk "gitcode.com/JianFeeeee/HologramAgent/internal/sdk"
) )
func init() { func init() {
@ -777,7 +777,7 @@ Add blank import in `internal/plugins/all.go`:
package plugins package plugins
import ( import (
_ "gitcode.com/JianFeeeee/HomeAgent/internal/plugins/yourplugin" _ "gitcode.com/JianFeeeee/HologramAgent/internal/plugins/yourplugin"
// ... other plugins // ... other plugins
) )
``` ```
@ -844,31 +844,31 @@ Internal: records are stored in SQLite `disabled_plugins` table (`name`, `disabl
## 7. Example Plugin Reference ## 7. Example Plugin Reference
### SDK Repository Examples (`homeagent-sdk/example/`) ### SDK Repository Examples (`HologramAgent-sdk/example/`)
| Example | Type | Features | | Example | Type | Features |
|---------|------|----------| |---------|------|----------|
| [weather](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/weather) | Go | Weather queries (wttr.in); demonstrates NoMemory/Cleaner/stage hooks/channels/text memory | | [weather](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/weather) | Go | Weather queries (wttr.in); demonstrates NoMemory/Cleaner/stage hooks/channels/text memory |
| [luademo](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/luademo) | Lua | Full-featured Lua example covering the whole v0.8.0 Lua SDK surface | | [luademo](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/luademo) | Lua | Full-featured Lua example covering the whole v0.8.0 Lua SDK surface |
| [qq](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/qq) | Go | NapCat OneBot integration, 24 tools, full input/output channel wiring | | [qq](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/qq) | Go | NapCat OneBot integration, 24 tools, full input/output channel wiring |
| [memo](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/memo) | Go | Memo management, PreAction injection + timed interrupt dual reminder | | [memo](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/memo) | Go | Memo management, PreAction injection + timed interrupt dual reminder |
| [files](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/files) | Go | File system operations, 4 write modes, sandbox isolation | | [files](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/files) | Go | File system operations, 4 write modes, sandbox isolation |
| [browser](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/browser) | Go | Web search + HTTP fetch (SSRF) + Chromium render (merged from web/webfetch) | | [browser](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/browser) | Go | Web search + HTTP fetch (SSRF) + Chromium render (merged from web/webfetch) |
| [bili](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/bili) | Go | Bilibili video download (yt-dlp) | | [bili](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/bili) | Go | Bilibili video download (yt-dlp) |
| [editdoc](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/editdoc) | Go | Office document editing and format conversion | | [editdoc](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/editdoc) | Go | Office document editing and format conversion |
| [a2a](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/a2a) | Go | Agent-to-Agent protocol | | [a2a](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/a2a) | Go | Agent-to-Agent protocol |
| [ocr](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/ocr) | Go | Offline text recognition (Tesseract) | | [ocr](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/ocr) | Go | Offline text recognition (Tesseract) |
| [sanitizer](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/sanitizer) | Go | Output sanitizer filter | | [sanitizer](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/sanitizer) | Go | Output sanitizer filter |
| [calendar](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/calendar) | Go | Calendar management | | [calendar](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/calendar) | Go | Calendar management |
| [rss](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/rss) | Go | RSS subscriptions | | [rss](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/rss) | Go | RSS subscriptions |
| [ai_image](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/ai_image) | Go | AI image generation | | [ai_image](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/ai_image) | Go | AI image generation |
| [music](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/music) | Go | Music playback | | [music](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/music) | Go | Music playback |
| [vikunja](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/vikunja) | Go | Vikunja task management (projects/tasks/labels CRUD) | | [vikunja](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/vikunja) | Go | Vikunja task management (projects/tasks/labels CRUD) |
| [vanblog](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/vanblog) | Go | VanBlog publishing and management | | [vanblog](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/vanblog) | Go | VanBlog publishing and management |
| [deepsearch](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/deepsearch) | Go | Multi-round deep search (progressive focus + cited summary) | | [deepsearch](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/deepsearch) | Go | Multi-round deep search (progressive focus + cited summary) |
| [acp](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/acp) | Go | Agent Client Protocol (external editors/IDEs drive this agent) | | [acp](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/acp) | Go | Agent Client Protocol (external editors/IDEs drive this agent) |
| [recoverydiag](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/recoverydiag) | Go | Five-part fault diagnosis (triage / sqlite check / log signatures / diff / ranked conclusions); core plugin of failback mode | | [recoverydiag](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/recoverydiag) | Go | Five-part fault diagnosis (triage / sqlite check / log signatures / diff / ranked conclusions); core plugin of failback mode |
| [plugindev](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/plugindev) | Go | Plugin scaffolding: generate, build, install — lets the agent develop plugins itself | | [plugindev](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/plugindev) | Go | Plugin scaffolding: generate, build, install — lets the agent develop plugins itself |
### Built-in Plugins ### Built-in Plugins
@ -903,4 +903,4 @@ Internal: records are stored in SQLite `disabled_plugins` table (`name`, `disabl
*Want to understand the project goals? See [OVERVIEW.md](OVERVIEW.md).* *Want to understand the project goals? See [OVERVIEW.md](OVERVIEW.md).*
*Want to understand the architecture? See [ARCHITECTURE.md](ARCHITECTURE.md).* *Want to understand the architecture? See [ARCHITECTURE.md](ARCHITECTURE.md).*
*SDK repository and development tools? See [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk).* *SDK repository and development tools? See [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk).*

View File

@ -101,5 +101,5 @@ CLI 需要终端面板时,**订阅事件总线**(`EventTerminalOutput` + `Ev
- 内置插件(13 个):webui / cli / agentcli / cfgmgr / healthcheck / kbtree / multimodal / pluginmgr / clawhubadapter / remotedevice / skillmgr / seemedia / seq - 内置插件(13 个):webui / cli / agentcli / cfgmgr / healthcheck / kbtree / multimodal / pluginmgr / clawhubadapter / remotedevice / skillmgr / seemedia / seq
- 判定标准:**只有必须使用内部 SDK 能力(公开 SDK 没有的接口面)的插件才内置**,其余一律外置为 .hmap 插件(详见 ARCHITECTURE「内置插件的判定标准」) - 判定标准:**只有必须使用内部 SDK 能力(公开 SDK 没有的接口面)的插件才内置**,其余一律外置为 .hmap 插件(详见 ARCHITECTURE「内置插件的判定标准」)
- 外部插件示例([homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库 `example/`,含 Go 和 Lua 两种类型):qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo - 外部插件示例([HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) 仓库 `example/`,含 Go 和 Lua 两种类型):qq / files / a2a / ai_image / bili / browser / calendar / editdoc / memo / music / ocr / rss / sanitizer / weather / luademo
- 打包分发:`.hmap` 插件包格式,通过 WebUI 安装 - 打包分发:`.hmap` 插件包格式,通过 WebUI 安装

View File

@ -9,11 +9,11 @@
HologramAgent 的所有外部交互能力都来自插件。插件通过 `PluginSDK`(Go API)与内核交互。 HologramAgent 的所有外部交互能力都来自插件。插件通过 `PluginSDK`(Go API)与内核交互。
**SDK 仓库**:插件开发工具、模板代码和示例插件统一托管在 **SDK 仓库**:插件开发工具、模板代码和示例插件统一托管在
[homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk) 仓库。 [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk) 仓库。
```bash ```bash
git clone https://github.com/JianFeeeee/homeagentsdk.git git clone https://github.com/JianFeeeee/HologramAgent-sdk.git
cd homeagent-sdk cd HologramAgent-sdk
``` ```
每个插件实现一个三方法接口: 每个插件实现一个三方法接口:
@ -49,7 +49,7 @@ type Plugin interface {
### 安装 ### 安装
```bash ```bash
cd homeagent-sdk/tools/hmapdev cd HologramAgent-sdk/tools/hmapdev
go build -o hmapdev go build -o hmapdev
# 将 hmapdev 加入 PATH 或直接使用 # 将 hmapdev 加入 PATH 或直接使用
# 也可从 SDK 的 release 附件下载预编译二进制(hmapdev_linux_amd64 等) # 也可从 SDK 的 release 附件下载预编译二进制(hmapdev_linux_amd64 等)
@ -250,7 +250,7 @@ curl -X POST http://127.0.0.1:8080/api/v1/plugins \
```go ```go
package main package main
import "github.com/JianFeeeee/homeagentsdk/sdk" import "github.com/JianFeeeee/HologramAgent-sdk/sdk"
type Plugin struct { type Plugin struct {
name string name string
@ -445,7 +445,7 @@ s.RegisterOutputChannel("email", 1, "邮件发送", sdk.ChannelDef{
#### 事件订阅 #### 事件订阅
```go ```go
import "github.com/JianFeeeee/homeagentsdk/sdk" import "github.com/JianFeeeee/HologramAgent-sdk/sdk"
unsub := s.Events().Subscribe(sdk.EventToolCall, func(evt *sdk.Event) { unsub := s.Events().Subscribe(sdk.EventToolCall, func(evt *sdk.Event) {
log.Printf("工具被调用: %v", evt.Payload) log.Printf("工具被调用: %v", evt.Payload)
@ -726,8 +726,8 @@ internal/plugins/yourplugin/
package yourplugin package yourplugin
import ( import (
"gitcode.com/JianFeeeee/HomeAgent/internal/plugin" "gitcode.com/JianFeeeee/HologramAgent/internal/plugin"
sdk "gitcode.com/JianFeeeee/HomeAgent/internal/sdk" sdk "gitcode.com/JianFeeeee/HologramAgent/internal/sdk"
) )
func init() { func init() {
@ -765,7 +765,7 @@ func (p *Plugin) Stop() error {
package plugins package plugins
import ( import (
_ "gitcode.com/JianFeeeee/HomeAgent/internal/plugins/yourplugin" _ "gitcode.com/JianFeeeee/HologramAgent/internal/plugins/yourplugin"
// ... 其他插件 // ... 其他插件
) )
``` ```
@ -830,31 +830,31 @@ pmgr.ReloadPlugins() // 重载所有插件
## 七、示例插件参考 ## 七、示例插件参考
### SDK 仓库示例(`homeagent-sdk/example/`) ### SDK 仓库示例(`HologramAgent-sdk/example/`)
| 示例 | 类型 | 特点 | | 示例 | 类型 | 特点 |
|------|------|------| |------|------|------|
| [weather](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/weather) | Go | 天气查询(wttr.in),演示 NoMemory/Cleaner/阶段钩子/通道/文本记忆 | | [weather](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/weather) | Go | 天气查询(wttr.in),演示 NoMemory/Cleaner/阶段钩子/通道/文本记忆 |
| [luademo](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/luademo) | Lua | Lua 全功能示例,覆盖 v0.8.0 Lua SDK 全部 API 面 | | [luademo](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/luademo) | Lua | Lua 全功能示例,覆盖 v0.8.0 Lua SDK 全部 API 面 |
| [qq](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/qq) | Go | NapCat OneBot 对接,24 个工具,输入/输出通道完整对接 | | [qq](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/qq) | Go | NapCat OneBot 对接,24 个工具,输入/输出通道完整对接 |
| [memo](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/memo) | Go | 备忘管理,PreAction 注入 + 定时打断双提醒 | | [memo](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/memo) | Go | 备忘管理,PreAction 注入 + 定时打断双提醒 |
| [files](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/files) | Go | 文件系统操作,4 种写入模式,沙箱隔离 | | [files](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/files) | Go | 文件系统操作,4 种写入模式,沙箱隔离 |
| [browser](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/browser) | Go | 网络搜索、网页抓取(SSRF)、浏览器渲染(合并自 web/webfetch) | | [browser](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/browser) | Go | 网络搜索、网页抓取(SSRF)、浏览器渲染(合并自 web/webfetch) |
| [bili](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/bili) | Go | B 站视频下载(yt-dlp) | | [bili](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/bili) | Go | B 站视频下载(yt-dlp) |
| [editdoc](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/editdoc) | Go | Office 文档编辑与格式转换 | | [editdoc](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/editdoc) | Go | Office 文档编辑与格式转换 |
| [a2a](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/a2a) | Go | Agent-to-Agent 协议 | | [a2a](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/a2a) | Go | Agent-to-Agent 协议 |
| [ocr](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/ocr) | Go | 离线文字识别(Tesseract) | | [ocr](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/ocr) | Go | 离线文字识别(Tesseract) |
| [sanitizer](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/sanitizer) | Go | 输出清洗过滤器 | | [sanitizer](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/sanitizer) | Go | 输出清洗过滤器 |
| [calendar](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/calendar) | Go | 日历管理 | | [calendar](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/calendar) | Go | 日历管理 |
| [rss](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/rss) | Go | RSS 订阅 | | [rss](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/rss) | Go | RSS 订阅 |
| [ai_image](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/ai_image) | Go | AI 图片生成 | | [ai_image](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/ai_image) | Go | AI 图片生成 |
| [music](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/music) | Go | 音乐播放 | | [music](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/music) | Go | 音乐播放 |
| [vikunja](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/vikunja) | Go | Vikunja 任务管理对接(项目/任务/标签 CRUD) | | [vikunja](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/vikunja) | Go | Vikunja 任务管理对接(项目/任务/标签 CRUD) |
| [vanblog](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/vanblog) | Go | VanBlog 博客发布与管理 | | [vanblog](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/vanblog) | Go | VanBlog 博客发布与管理 |
| [deepsearch](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/deepsearch) | Go | 多轮深度检索(逐层聚焦 + 引用汇总) | | [deepsearch](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/deepsearch) | Go | 多轮深度检索(逐层聚焦 + 引用汇总) |
| [acp](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/acp) | Go | Agent Client Protocol 对接(外部编辑器/IDE 驱动本 agent) | | [acp](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/acp) | Go | Agent Client Protocol 对接(外部编辑器/IDE 驱动本 agent) |
| [recoverydiag](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/recoverydiag) | Go | 故障诊断五件套(分诊/sqlite 校验/日志签名/diff/结论排序),failback 模式的核心插件 | | [recoverydiag](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/recoverydiag) | Go | 故障诊断五件套(分诊/sqlite 校验/日志签名/diff/结论排序),failback 模式的核心插件 |
| [plugindev](https://github.com/JianFeeeee/homeagentsdk/tree/main/example/plugindev) | Go | 插件脚手架:生成工程、构建、安装,供 agent 自助开发插件 | | [plugindev](https://github.com/JianFeeeee/HologramAgent-sdk/tree/main/example/plugindev) | Go | 插件脚手架:生成工程、构建、安装,供 agent 自助开发插件 |
### 内置插件 ### 内置插件
@ -884,4 +884,4 @@ pmgr.ReloadPlugins() // 重载所有插件
*了解项目整体目标?查看 [OVERVIEW.md](OVERVIEW.md)。* *了解项目整体目标?查看 [OVERVIEW.md](OVERVIEW.md)。*
*了解技术架构?查看 [ARCHITECTURE.md](ARCHITECTURE.md)。* *了解技术架构?查看 [ARCHITECTURE.md](ARCHITECTURE.md)。*
*SDK 仓库与开发工具?查看 [homeagent-sdk](https://github.com/JianFeeeee/homeagentsdk)。* *SDK 仓库与开发工具?查看 [HologramAgent-sdk](https://github.com/JianFeeeee/HologramAgent-sdk)。*

View File

@ -552,7 +552,7 @@ hmapdev sdk current # 当前活跃 SDK 版本(★ 动手前必看)
hmapdev sdk list # 本机已装的所有 SDK 版本 hmapdev sdk list # 本机已装的所有 SDK 版本
``` ```
- 核心仓 `/home/program/TrueAgent`(Go module `gitcode.com/JianFeeeee/HomeAgent`) - 核心仓 `/home/program/TrueAgent`(Go module `gitcode.com/JianFeeeee/HologramAgent`)
- **SDK 仓** `third_party/homeagent-sdk`(独立 git 仓、独立版本号) - **SDK 仓** `third_party/homeagent-sdk`(独立 git 仓、独立版本号)
### 33. 开工流程 ### 33. 开工流程

View File

@ -1,11 +1,11 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# SDK 文档站一键构建 + 部署(sdk.homeagent.jianfgit.xyz) # SDK 文档站一键构建 + 部署(sdk.hologramagent.jianfgit.xyz)
# #
# 链路(全部实测确认,写在这里免得下次再摸一遍): # 链路(全部实测确认,写在这里免得下次再摸一遍):
# 本机 192.168.2.60 # 本机 192.168.2.60
# └─ nginx stream 按 ssl_preread SNI 把 443 透传 → 192.168.2.106:3080 # └─ nginx stream 按 ssl_preread SNI 把 443 透传 → 192.168.2.106:3080
# └─ navi 容器内的 nginx(不是 portal-nginx,那个已 Exited 两周) # └─ navi 容器内的 nginx(不是 portal-nginx,那个已 Exited 两周)
# └─ server_name sdk.homeagent.jianfgit.xyz → root /app/data/sites/sdk # └─ server_name sdk.hologramagent.jianfgit.xyz → root /app/data/sites/sdk
# └─ 宿主对应 /vol1/docker/navi-data/sites/sdk # └─ 宿主对应 /vol1/docker/navi-data/sites/sdk
# #
# 两个容易踩的坑: # 两个容易踩的坑:
@ -121,7 +121,7 @@ do_deploy_introduce() {
info "回滚点: $SITES/.intro-bak-$TS" info "回滚点: $SITES/.intro-bak-$TS"
local code local code
code=$(curl -s -o /dev/null -m 10 -w '%{http_code}' -k https://introduce.homeagent.jianfgit.xyz/) code=$(curl -s -o /dev/null -m 10 -w '%{http_code}' -k https://introduce.hologramagent.jianfgit.xyz/)
info "首页 http=$code(introduce 配了 try_files 回落,404 才是异常)" info "首页 http=$code(introduce 配了 try_files 回落,404 才是异常)"
if "$DIFF" -q <(intro_local_md5) <(intro_remote_md5) >/dev/null 2>&1; then if "$DIFF" -q <(intro_local_md5) <(intro_remote_md5) >/dev/null 2>&1; then
info "✓ introduce 线上与本机源逐字节一致" info "✓ introduce 线上与本机源逐字节一致"
@ -203,11 +203,11 @@ do_deploy() {
say "4/4 验证" say "4/4 验证"
# 静态文件换完 nginx 直接吃新文件,不需要 reload。 # 静态文件换完 nginx 直接吃新文件,不需要 reload。
local code local code
code=$(curl -s -o /dev/null -m 10 -w '%{http_code}' -k https://sdk.homeagent.jianfgit.xyz/) code=$(curl -s -o /dev/null -m 10 -w '%{http_code}' -k https://sdk.hologramagent.jianfgit.xyz/)
info "首页 http=$code" info "首页 http=$code"
for p in guide/scene-memory/ guide/parallel-tool-declaration/ llms.txt llms-full.txt; do for p in guide/scene-memory/ guide/parallel-tool-declaration/ llms.txt llms-full.txt; do
printf ' %-34s ' "$p" printf ' %-34s ' "$p"
curl -s -o /dev/null -m 10 -w 'http=%{http_code}\n' -k "https://sdk.homeagent.jianfgit.xyz/$p" curl -s -o /dev/null -m 10 -w 'http=%{http_code}\n' -k "https://sdk.hologramagent.jianfgit.xyz/$p"
done done
if "$DIFF" -q <(local_md5) <(remote_md5) >/dev/null 2>&1; then if "$DIFF" -q <(local_md5) <(remote_md5) >/dev/null 2>&1; then
info "✓ 线上与本地产物逐字节一致" info "✓ 线上与本地产物逐字节一致"

View File

@ -195,7 +195,7 @@ git switch main && git cherry-pick <sha> # 遵守 §三:只 pick,不 merge
> - `feature/*` 分支(`input-semantics`、`multimodal-embedding`、`memory-media`、`plugin-proc-migration`) > - `feature/*` 分支(`input-semantics`、`multimodal-embedding`、`memory-media`、`plugin-proc-migration`)
> 均已合入并删除。 > 均已合入并删除。
### SDK 仓(homeagent-sdk) ### SDK 仓(HologramAgent-sdk)
| 分支 | 状态 | 处理 | | 分支 | 状态 | 处理 |
|---|---|---| |---|---|---|
@ -417,7 +417,7 @@ VERSION=<版本> bash deploy/packaging/package-windows.sh client amd64 # 需
# 核心仓 # 核心仓
python3 deploy/scripts/upload_assets.py <tag> <token> # 默认上传 dist/release 下可识别的产物 python3 deploy/scripts/upload_assets.py <tag> <token> # 默认上传 dist/release 下可识别的产物
# SDK 仓(hmapdev_* 没有扩展名,不会被自动识别 ⇒ 必须显式列文件名) # SDK 仓(hmapdev_* 没有扩展名,不会被自动识别 ⇒ 必须显式列文件名)
GITCODE_REPO=JianFeeeee/homeagent-sdk ASSET_DIR=<sdk>/dist/release \ GITCODE_REPO=JianFeeeee/HologramAgent-sdk ASSET_DIR=<sdk>/dist/release \
python3 deploy/scripts/upload_assets.py <tag> <token> hmapdev_linux_amd64 ... python3 deploy/scripts/upload_assets.py <tag> <token> hmapdev_linux_amd64 ...
``` ```

View File

@ -8,8 +8,8 @@
| 仓 | 位置 | 流水线 | 触发 | | 仓 | 位置 | 流水线 | 触发 |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| 主仓 HologramAgent | `github.com/JianFeeeee/HomeAgent`(公开) | `ci.yml` + `release.yml` | push / PR、`release/**` push | | 主仓 HologramAgent | `github.com/JianFeeeee/HologramAgent`(公开) | `ci.yml` + `release.yml` | push / PR、`release/**` push |
| SDK 仓 homeagentsdk | `github.com/JianFeeeee/homeagentsdk`(公开) | `release.yml` | `release/**` push | | SDK 仓 homeagentsdk | `github.com/JianFeeeee/HologramAgent-sdk`(公开) | `release.yml` | `release/**` push |
| gitcode 镜像 | 同名仓库 | 无(由主仓 Release 的 sync job 同步) | — | | gitcode 镜像 | 同名仓库 | 无(由主仓 Release 的 sync job 同步) | — |
**分支保护**(main,公开仓免费):10 项必须检查(Go build/vet/test、Race、 **分支保护**(main,公开仓免费):10 项必须检查(Go build/vet/test、Race、
@ -163,13 +163,13 @@ tar 写 stdout 收到 EPIPE ⇒ pipefail 判失败。**包越大越易触发**
CI 的 sync job 需要仓库 secret `GITCODE_TOKEN`;**未配置时该 job 显式跳过** CI 的 sync job 需要仓库 secret `GITCODE_TOKEN`;**未配置时该 job 显式跳过**
(不阻断 GitHub 侧发布)。 (不阻断 GitHub 侧发布)。
**2026-09-29 已配置**:两仓(`JianFeeeee/HomeAgent`、`JianFeeeee/homeagentsdk`) **2026-09-29 已配置**:两仓(`JianFeeeee/HologramAgent`、`JianFeeeee/HologramAgent-sdk`)
均已设同名 secret,取值自 `~/.git-credentials` 里那条 `https://JianFeeeee:<token>@gitcode.com`。 均已设同名 secret,取值自 `~/.git-credentials` 里那条 `https://JianFeeeee:<token>@gitcode.com`。
配置方式(经 stdin 传入,避免 token 出现在进程列表): 配置方式(经 stdin 传入,避免 token 出现在进程列表):
```bash ```bash
printf '%s' "$TOKEN" | gh secret set GITCODE_TOKEN --repo JianFeeeee/HomeAgent printf '%s' "$TOKEN" | gh secret set GITCODE_TOKEN --repo JianFeeeee/HologramAgent
printf '%s' "$TOKEN" | gh secret set GITCODE_TOKEN --repo JianFeeeee/homeagentsdk printf '%s' "$TOKEN" | gh secret set GITCODE_TOKEN --repo JianFeeeee/HologramAgent-sdk
``` ```
验收:sync job 只在**新版本**发版时运行(`prepare.outputs.exists == 'false'`), 验收:sync job 只在**新版本**发版时运行(`prepare.outputs.exists == 'false'`),
@ -177,12 +177,12 @@ printf '%s' "$TOKEN" | gh secret set GITCODE_TOKEN --repo JianFeeeee/homeagentsd
```bash ```bash
# ① secret 存在 # ① secret 存在
gh secret list --repo JianFeeeee/HomeAgent | grep GITCODE_TOKEN gh secret list --repo JianFeeeee/HologramAgent | grep GITCODE_TOKEN
# ② token 有效 # ② token 有效
curl -s "https://gitcode.com/api/v5/user?access_token=$TOKEN" curl -s "https://gitcode.com/api/v5/user?access_token=$TOKEN"
# ③ job 用的 private-token 头可读 release(两仓都测) # ③ job 用的 private-token 头可读 release(两仓都测)
curl -s -H "private-token: $TOKEN" \ curl -s -H "private-token: $TOKEN" \
"https://gitcode.com/api/v5/repos/JianFeeeee/HomeAgent/releases/tags/v1.3.13" "https://gitcode.com/api/v5/repos/JianFeeeee/HologramAgent/releases/tags/v1.3.13"
``` ```
★ **token 是宽范围的个人令牌**(可读 92 仓/48 私有、有写权限),而 CI 只需要这两个仓。 ★ **token 是宽范围的个人令牌**(可读 92 仓/48 私有、有写权限),而 CI 只需要这两个仓。
@ -193,7 +193,7 @@ curl -s -H "private-token: $TOKEN" \
```bash ```bash
# token 放 ~/.git-credentials(https://JianFeeeee:<token>@gitcode.com) # token 放 ~/.git-credentials(https://JianFeeeee:<token>@gitcode.com)
ASSET_DIR=<产物目录> GITCODE_REPO=JianFeeeee/HomeAgent \ ASSET_DIR=<产物目录> GITCODE_REPO=JianFeeeee/HologramAgent \
python3 deploy/scripts/upload_assets.py <tag> <token> python3 deploy/scripts/upload_assets.py <tag> <token>
# release 条目必须先存在(脚本向 releases/<tag>/upload_url 取 OBS 签名 URL) # release 条目必须先存在(脚本向 releases/<tag>/upload_url 取 OBS 签名 URL)
``` ```

View File

@ -398,7 +398,7 @@ bash deploy/scripts/deploy-sdk-site.sh --rollback .sdk-bak-<时间戳> # 回滚
本机 192.168.2.60 本机 192.168.2.60
└─ nginx stream 按 ssl_preread SNI 把 443 透传 → 192.168.2.106:3080 └─ nginx stream 按 ssl_preread SNI 把 443 透传 → 192.168.2.106:3080
└─ navi 容器内的 nginx(**不是** portal-nginx,那个已 Exited 两周) └─ navi 容器内的 nginx(**不是** portal-nginx,那个已 Exited 两周)
└─ server_name sdk.homeagent.jianfgit.xyz → root /app/data/sites/sdk └─ server_name sdk.hologramagent.jianfgit.xyz → root /app/data/sites/sdk
└─ 宿主对应 /vol1/docker/navi-data/sites/sdk └─ 宿主对应 /vol1/docker/navi-data/sites/sdk
``` ```
@ -447,7 +447,7 @@ bash deploy/scripts/deploy-sdk-site.sh
验证线上是否真的可访问(**别只看本地产物**): 验证线上是否真的可访问(**别只看本地产物**):
```bash ```bash
curl -s -o /dev/null -m 10 -w '%{http_code}\n' -k https://sdk.homeagent.jianfgit.xyz/guide/<新文档>/ curl -s -o /dev/null -m 10 -w '%{http_code}\n' -k https://sdk.hologramagent.jianfgit.xyz/guide/<新文档>/
``` ```
### 5.5 回滚点 ### 5.5 回滚点

View File

@ -2018,7 +2018,7 @@
</p> </p>
<div class="cta rise" style="--d:280ms"> <div class="cta rise" style="--d:280ms">
<a class="btn btn-primary" href="#quickstart">快速上手 →</a> <a class="btn btn-primary" href="#quickstart">快速上手 →</a>
<a class="btn btn-ghost" href="https://github.com/JianFeeeee/HomeAgent">查看源码</a> <a class="btn btn-ghost" href="https://github.com/JianFeeeee/HologramAgent">查看源码</a>
</div> </div>
</div> </div>
</div> </div>
@ -2823,37 +2823,37 @@ echo <span class="s">"你好,记住我喜欢喝咖啡"</span> | ./build/waiter
<div class="pcard" id="p-a2a"> <div class="pcard" id="p-a2a">
<div class="pcard-head"><code>a2a</code><span class="ver">v1.3.1</span></div> <div class="pcard-head"><code>a2a</code><span class="ver">v1.3.1</span></div>
<p>Agent 间通信。对外起 HTTP 服务暴露 /agent-card 与 /a2a(JSON-RPC)供他人发现与调用;对内提供工具去问别的 Agent。把监听地址设为空即只出站、不开端口。</p> <p>Agent 间通信。对外起 HTTP 服务暴露 /agent-card 与 /a2a(JSON-RPC)供他人发现与调用;对内提供工具去问别的 Agent。把监听地址设为空即只出站、不开端口。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/a2a" target="_blank" rel="noopener noreferrer" title="SDK example/a2a"><span class="psrc-r">SDK</span><span class="psrc-p">example/a2a</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/a2a" target="_blank" rel="noopener noreferrer" title="SDK example/a2a"><span class="psrc-r">SDK</span><span class="psrc-p">example/a2a</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-acp"> <div class="pcard" id="p-acp">
<div class="pcard-head"><code>acp</code><span class="ver">v1.2.1</span></div> <div class="pcard-head"><code>acp</code><span class="ver">v1.2.1</span></div>
<p>Agent Client Protocol 通信插件:充当 ACP 服务端接受其他 Agent 的任务请求,同时提供客户端工具向远程 ACP Agent(如 opencode)发起会话并读取回复</p> <p>Agent Client Protocol 通信插件:充当 ACP 服务端接受其他 Agent 的任务请求,同时提供客户端工具向远程 ACP Agent(如 opencode)发起会话并读取回复</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/acp" target="_blank" rel="noopener noreferrer" title="SDK example/acp"><span class="psrc-r">SDK</span><span class="psrc-p">example/acp</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/acp" target="_blank" rel="noopener noreferrer" title="SDK example/acp"><span class="psrc-r">SDK</span><span class="psrc-p">example/acp</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-bili"> <div class="pcard" id="p-bili">
<div class="pcard-head"><code>bili</code><span class="ver">v1.2.0</span></div> <div class="pcard-head"><code>bili</code><span class="ver">v1.2.0</span></div>
<p>B站视频下载。需系统装 yt-dlp。不指定格式时先返回可用清晰度列表,选定后再下载;输出目录有路径校验,拒绝写成系统目录。</p> <p>B站视频下载。需系统装 yt-dlp。不指定格式时先返回可用清晰度列表,选定后再下载;输出目录有路径校验,拒绝写成系统目录。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/bili" target="_blank" rel="noopener noreferrer" title="SDK example/bili"><span class="psrc-r">SDK</span><span class="psrc-p">example/bili</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/bili" target="_blank" rel="noopener noreferrer" title="SDK example/bili"><span class="psrc-r">SDK</span><span class="psrc-p">example/bili</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-browser"> <div class="pcard" id="p-browser">
<div class="pcard-head"><code>browser</code><span class="ver">v2.4.1</span></div> <div class="pcard-head"><code>browser</code><span class="ver">v2.4.1</span></div>
<p>统一浏览器插件:搜索、HTTP抓取(quick)、无头渲染(normal)、交互式浏览器(interactive/CDP)</p> <p>统一浏览器插件:搜索、HTTP抓取(quick)、无头渲染(normal)、交互式浏览器(interactive/CDP)</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/browser" target="_blank" rel="noopener noreferrer" title="SDK example/browser"><span class="psrc-r">SDK</span><span class="psrc-p">example/browser</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/browser" target="_blank" rel="noopener noreferrer" title="SDK example/browser"><span class="psrc-r">SDK</span><span class="psrc-p">example/browser</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-calendar"> <div class="pcard" id="p-calendar">
<div class="pcard-head"><code>calendar</code><span class="ver">v1.1.0</span></div> <div class="pcard-head"><code>calendar</code><span class="ver">v1.1.0</span></div>
<p>日历事件管理,支持提醒和重复事件</p> <p>日历事件管理,支持提醒和重复事件</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/calendar" target="_blank" rel="noopener noreferrer" title="SDK example/calendar"><span class="psrc-r">SDK</span><span class="psrc-p">example/calendar</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/calendar" target="_blank" rel="noopener noreferrer" title="SDK example/calendar"><span class="psrc-r">SDK</span><span class="psrc-p">example/calendar</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-deepsearch"> <div class="pcard" id="p-deepsearch">
<div class="pcard-head"><code>deepsearch</code><span class="ver">v1.1.2</span></div> <div class="pcard-head"><code>deepsearch</code><span class="ver">v1.1.2</span></div>
<p>为 agent 提供真正的联网信息检索:本地 SearXNG 聚合多引擎(返回标题/URL/摘要/时间),支持新闻、时间范围、指定引擎;并提供网页正文抽取与「搜索+读前K篇」的深检索</p> <p>为 agent 提供真正的联网信息检索:本地 SearXNG 聚合多引擎(返回标题/URL/摘要/时间),支持新闻、时间范围、指定引擎;并提供网页正文抽取与「搜索+读前K篇」的深检索</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/deepsearch" target="_blank" rel="noopener noreferrer" title="SDK example/deepsearch"><span class="psrc-r">SDK</span><span class="psrc-p">example/deepsearch</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/deepsearch" target="_blank" rel="noopener noreferrer" title="SDK example/deepsearch"><span class="psrc-r">SDK</span><span class="psrc-p">example/deepsearch</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-editdoc"> <div class="pcard" id="p-editdoc">
<div class="pcard-head"><code>editdoc</code><span class="ver">v2.0.0</span></div> <div class="pcard-head"><code>editdoc</code><span class="ver">v2.0.0</span></div>
<p>全能办公插件:新建/读取/编辑/转换 docx·xlsx·pptx·md·csv·txt(基于 python-docx / openpyxl / python-pptx / soffice / pandoc)</p> <p>全能办公插件:新建/读取/编辑/转换 docx·xlsx·pptx·md·csv·txt(基于 python-docx / openpyxl / python-pptx / soffice / pandoc)</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/editdoc" target="_blank" rel="noopener noreferrer" title="SDK example/editdoc"><span class="psrc-r">SDK</span><span class="psrc-p">example/editdoc</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/editdoc" target="_blank" rel="noopener noreferrer" title="SDK example/editdoc"><span class="psrc-r">SDK</span><span class="psrc-p">example/editdoc</span><span class="psrc-out">↗</span></a>
<p class="psrc-note">公开仓中的 example 仍是 v1.0.0;v2.0.0 全能版源码尚未公开。</p> <p class="psrc-note">公开仓中的 example 仍是 v1.0.0;v2.0.0 全能版源码尚未公开。</p>
</div> </div>
<div class="pcard" id="p-homeagent-mail-bridge"> <div class="pcard" id="p-homeagent-mail-bridge">
@ -2869,72 +2869,72 @@ echo <span class="s">"你好,记住我喜欢喝咖啡"</span> | ./build/waiter
<div class="pcard" id="p-memo"> <div class="pcard" id="p-memo">
<div class="pcard-head"><code>memo</code><span class="ver">v1.1.0</span></div> <div class="pcard-head"><code>memo</code><span class="ver">v1.1.0</span></div>
<p>待办与备忘录刻意分两类:待办每 5 分钟检查未完成数、有则注入提醒;备忘录纯记事不提醒。混成一类要么天天弹、要么被忘掉。</p> <p>待办与备忘录刻意分两类:待办每 5 分钟检查未完成数、有则注入提醒;备忘录纯记事不提醒。混成一类要么天天弹、要么被忘掉。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/memo" target="_blank" rel="noopener noreferrer" title="SDK example/memo"><span class="psrc-r">SDK</span><span class="psrc-p">example/memo</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/memo" target="_blank" rel="noopener noreferrer" title="SDK example/memo"><span class="psrc-r">SDK</span><span class="psrc-p">example/memo</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-music"> <div class="pcard" id="p-music">
<div class="pcard-head"><code>music</code><span class="ver">v0.1.0</span></div> <div class="pcard-head"><code>music</code><span class="ver">v0.1.0</span></div>
<p>搜歌与查歌词(网易云公开接口)。只读:不下载音频、不落文件。两段式用法 —— 先搜到歌曲 ID,再按 ID 取词。</p> <p>搜歌与查歌词(网易云公开接口)。只读:不下载音频、不落文件。两段式用法 —— 先搜到歌曲 ID,再按 ID 取词。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/music" target="_blank" rel="noopener noreferrer" title="SDK example/music"><span class="psrc-r">SDK</span><span class="psrc-p">example/music</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/music" target="_blank" rel="noopener noreferrer" title="SDK example/music"><span class="psrc-r">SDK</span><span class="psrc-p">example/music</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-ocr"> <div class="pcard" id="p-ocr">
<div class="pcard-head"><code>ocr</code><span class="ver">v1.0.0</span></div> <div class="pcard-head"><code>ocr</code><span class="ver">v1.0.0</span></div>
<p>图片文字识别。需系统装 tesseract(中文另需 chi_sim 语言包)。支持 URL 或 base64 输入,临时文件识别后自动清理。</p> <p>图片文字识别。需系统装 tesseract(中文另需 chi_sim 语言包)。支持 URL 或 base64 输入,临时文件识别后自动清理。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/ocr" target="_blank" rel="noopener noreferrer" title="SDK example/ocr"><span class="psrc-r">SDK</span><span class="psrc-p">example/ocr</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/ocr" target="_blank" rel="noopener noreferrer" title="SDK example/ocr"><span class="psrc-r">SDK</span><span class="psrc-p">example/ocr</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-plugindev"> <div class="pcard" id="p-plugindev">
<div class="pcard-head"><code>plugindev</code><span class="ver">v1.0.0</span></div> <div class="pcard-head"><code>plugindev</code><span class="ver">v1.0.0</span></div>
<p>把 hmapdev 工具链封装成 Agent 可调用的工具:脚手架生成插件工程、构建打包 .hmap、管理 SDK 版本。配合 plugin_install 即可让 Agent 自己做完「新建插件 → 构建 → 安装」全流程。</p> <p>把 hmapdev 工具链封装成 Agent 可调用的工具:脚手架生成插件工程、构建打包 .hmap、管理 SDK 版本。配合 plugin_install 即可让 Agent 自己做完「新建插件 → 构建 → 安装」全流程。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/plugindev" target="_blank" rel="noopener noreferrer" title="SDK example/plugindev"><span class="psrc-r">SDK</span><span class="psrc-p">example/plugindev</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/plugindev" target="_blank" rel="noopener noreferrer" title="SDK example/plugindev"><span class="psrc-r">SDK</span><span class="psrc-p">example/plugindev</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-qq"> <div class="pcard" id="p-qq">
<div class="pcard-head"><code>qq</code><span class="ver">v1.4.1</span></div> <div class="pcard-head"><code>qq</code><span class="ver">v1.4.1</span></div>
<p>经 NapCat 桥接 QQ:20 个工具覆盖消息、群/好友、文件传输。带权限模型 —— 身份绑在「帧」上而非插件全局(中断抢占恢复后不会丢身份),多来源合并取权限交集,敏感工具按前缀一律拒绝非所有者。</p> <p>经 NapCat 桥接 QQ:20 个工具覆盖消息、群/好友、文件传输。带权限模型 —— 身份绑在「帧」上而非插件全局(中断抢占恢复后不会丢身份),多来源合并取权限交集,敏感工具按前缀一律拒绝非所有者。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/qq" target="_blank" rel="noopener noreferrer" title="SDK example/qq"><span class="psrc-r">SDK</span><span class="psrc-p">example/qq</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/qq" target="_blank" rel="noopener noreferrer" title="SDK example/qq"><span class="psrc-r">SDK</span><span class="psrc-p">example/qq</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-recoverydiag"> <div class="pcard" id="p-recoverydiag">
<div class="pcard-head"><code>recoverydiag</code><span class="ver">v0.2.0</span></div> <div class="pcard-head"><code>recoverydiag</code><span class="ver">v0.2.0</span></div>
<p>快速检查/崩溃取证工具集:diag_triage(退出码/信号/存活粗分)、diag_db(config.db 完整性 + LLM 源解析校验)、diag_log_scan(日志签名命中)、diag_delta(last-good 快照 vs 现状 diff)、diag_loc(正交综合定位)。全部返回结论而非原文,确定性、不消耗 LLM token,供 guard / failback 恢复决策使用。</p> <p>快速检查/崩溃取证工具集:diag_triage(退出码/信号/存活粗分)、diag_db(config.db 完整性 + LLM 源解析校验)、diag_log_scan(日志签名命中)、diag_delta(last-good 快照 vs 现状 diff)、diag_loc(正交综合定位)。全部返回结论而非原文,确定性、不消耗 LLM token,供 guard / failback 恢复决策使用。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/recoverydiag" target="_blank" rel="noopener noreferrer" title="SDK example/recoverydiag"><span class="psrc-r">SDK</span><span class="psrc-p">example/recoverydiag</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/recoverydiag" target="_blank" rel="noopener noreferrer" title="SDK example/recoverydiag"><span class="psrc-r">SDK</span><span class="psrc-p">example/recoverydiag</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-rss"> <div class="pcard" id="p-rss">
<div class="pcard-head"><code>rss</code><span class="ver">v1.1.0</span></div> <div class="pcard-head"><code>rss</code><span class="ver">v1.1.0</span></div>
<p>RSS/Atom 订阅监控。按间隔轮询,发现新条目即以中断注入告知 agent;订阅时记下历史条目,所以订一个源不会把旧文章全推一遍。</p> <p>RSS/Atom 订阅监控。按间隔轮询,发现新条目即以中断注入告知 agent;订阅时记下历史条目,所以订一个源不会把旧文章全推一遍。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/rss" target="_blank" rel="noopener noreferrer" title="SDK example/rss"><span class="psrc-r">SDK</span><span class="psrc-p">example/rss</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/rss" target="_blank" rel="noopener noreferrer" title="SDK example/rss"><span class="psrc-r">SDK</span><span class="psrc-p">example/rss</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-sanitizer"> <div class="pcard" id="p-sanitizer">
<div class="pcard-head"><code>sanitizer</code><span class="ver">v0.1.0</span></div> <div class="pcard-head"><code>sanitizer</code><span class="ver">v0.1.0</span></div>
<p>在三个阶段清洗文本:坏 UTF-8 / U+FFFD / ANSI 转义(会被模型复读)与 LLM 输出里的工具调用残留。不注册工具,只挂钩子。</p> <p>在三个阶段清洗文本:坏 UTF-8 / U+FFFD / ANSI 转义(会被模型复读)与 LLM 输出里的工具调用残留。不注册工具,只挂钩子。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/sanitizer" target="_blank" rel="noopener noreferrer" title="SDK example/sanitizer"><span class="psrc-r">SDK</span><span class="psrc-p">example/sanitizer</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/sanitizer" target="_blank" rel="noopener noreferrer" title="SDK example/sanitizer"><span class="psrc-r">SDK</span><span class="psrc-p">example/sanitizer</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-vanblog"> <div class="pcard" id="p-vanblog">
<div class="pcard-head"><code>vanblog</code><span class="ver">v1.0.0</span></div> <div class="pcard-head"><code>vanblog</code><span class="ver">v1.0.0</span></div>
<p>管理 VanBlog 开源博客系统:文章的增删改查、分类标签管理、草稿发布、备份导出等</p> <p>管理 VanBlog 开源博客系统:文章的增删改查、分类标签管理、草稿发布、备份导出等</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/vanblog" target="_blank" rel="noopener noreferrer" title="SDK example/vanblog"><span class="psrc-r">SDK</span><span class="psrc-p">example/vanblog</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/vanblog" target="_blank" rel="noopener noreferrer" title="SDK example/vanblog"><span class="psrc-r">SDK</span><span class="psrc-p">example/vanblog</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-vikunja"> <div class="pcard" id="p-vikunja">
<div class="pcard-head"><code>vikunja</code><span class="ver">v1.0.1</span></div> <div class="pcard-head"><code>vikunja</code><span class="ver">v1.0.1</span></div>
<p>Vikunja 待办/任务管理:任务增删改查、项目与看板桶、标签、指派、评论、关联、附件、保存筛选器、团队与分享、通知、订阅、Webhook、时间跟踪、数据导入、实例管理;并附通用 API 直通工具兜底</p> <p>Vikunja 待办/任务管理:任务增删改查、项目与看板桶、标签、指派、评论、关联、附件、保存筛选器、团队与分享、通知、订阅、Webhook、时间跟踪、数据导入、实例管理;并附通用 API 直通工具兜底</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/vikunja" target="_blank" rel="noopener noreferrer" title="SDK example/vikunja"><span class="psrc-r">SDK</span><span class="psrc-p">example/vikunja</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/vikunja" target="_blank" rel="noopener noreferrer" title="SDK example/vikunja"><span class="psrc-r">SDK</span><span class="psrc-p">example/vikunja</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-weather"> <div class="pcard" id="p-weather">
<div class="pcard-head"><code>weather</code><span class="ver">v1.0.0</span></div> <div class="pcard-head"><code>weather</code><span class="ver">v1.0.0</span></div>
<p>查实时天气与预报(wttr.in,无需 API Key)。可设默认城市;结果标记为不进记忆计算 —— 天气是易变数据,反复写进记忆只会挤占预算。</p> <p>查实时天气与预报(wttr.in,无需 API Key)。可设默认城市;结果标记为不进记忆计算 —— 天气是易变数据,反复写进记忆只会挤占预算。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/weather" target="_blank" rel="noopener noreferrer" title="SDK example/weather"><span class="psrc-r">SDK</span><span class="psrc-p">example/weather</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/weather" target="_blank" rel="noopener noreferrer" title="SDK example/weather"><span class="psrc-r">SDK</span><span class="psrc-p">example/weather</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-ai_image"> <div class="pcard" id="p-ai_image">
<div class="pcard-head"><code>ai_image</code><span class="ver">v1.3.0</span></div> <div class="pcard-head"><code>ai_image</code><span class="ver">v1.3.0</span></div>
<p>文生图:按文字提示生成图片,下载到本地并返回<strong>文件路径</strong>(可直接被多模态链路读取)。</p> <p>文生图:按文字提示生成图片,下载到本地并返回<strong>文件路径</strong>(可直接被多模态链路读取)。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/ai_image" target="_blank" rel="noopener noreferrer" title="SDK example/ai_image"><span class="psrc-r">SDK</span><span class="psrc-p">example/ai_image</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/ai_image" target="_blank" rel="noopener noreferrer" title="SDK example/ai_image"><span class="psrc-r">SDK</span><span class="psrc-p">example/ai_image</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-files"> <div class="pcard" id="p-files">
<div class="pcard-head"><code>files</code><span class="ver">v1.0.0</span></div> <div class="pcard-head"><code>files</code><span class="ver">v1.0.0</span></div>
<p>沙箱文件操作:读写与编辑文件,<strong>全部操作限制在沙箱目录内</strong>(读取/写入/编辑/列目录)。</p> <p>沙箱文件操作:读写与编辑文件,<strong>全部操作限制在沙箱目录内</strong>(读取/写入/编辑/列目录)。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/files" target="_blank" rel="noopener noreferrer" title="SDK example/files"><span class="psrc-r">SDK</span><span class="psrc-p">example/files</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/files" target="_blank" rel="noopener noreferrer" title="SDK example/files"><span class="psrc-r">SDK</span><span class="psrc-p">example/files</span><span class="psrc-out">↗</span></a>
</div> </div>
<div class="pcard" id="p-luademo"> <div class="pcard" id="p-luademo">
<div class="pcard-head"><code>luademo</code><span class="ver">v0.1.0</span></div> <div class="pcard-head"><code>luademo</code><span class="ver">v0.1.0</span></div>
<p>Lua 插件全功能示例:工具(no_memory / cleaner)、阶段钩子、通道、数据类 API —— 想用 Lua 写插件,从这个例子抄起。</p> <p>Lua 插件全功能示例:工具(no_memory / cleaner)、阶段钩子、通道、数据类 API —— 想用 Lua 写插件,从这个例子抄起。</p>
<a class="psrc" href="https://github.com/JianFeeeee/homeagentsdk/blob/main/example/luademo" target="_blank" rel="noopener noreferrer" title="SDK example/luademo"><span class="psrc-r">SDK</span><span class="psrc-p">example/luademo</span><span class="psrc-out">↗</span></a> <a class="psrc" href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/example/luademo" target="_blank" rel="noopener noreferrer" title="SDK example/luademo"><span class="psrc-r">SDK</span><span class="psrc-p">example/luademo</span><span class="psrc-out">↗</span></a>
</div> </div>
</div> </div>
</div> </div>
@ -3010,35 +3010,35 @@ echo <span class="s">"你好,记住我喜欢喝咖啡"</span> | ./build/waiter
<div> <div>
<h4>文档</h4> <h4>文档</h4>
<ul> <ul>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/assets/docs/zh/OVERVIEW.md">项目概览</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/assets/docs/zh/OVERVIEW.md">项目概览</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/assets/docs/zh/ARCHITECTURE.md">技术架构</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/assets/docs/zh/ARCHITECTURE.md">技术架构</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/assets/docs/zh/PLUGIN_DEV.md">插件开发</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/assets/docs/zh/PLUGIN_DEV.md">插件开发</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/assets/docs/zh/ADAPTER.md">Lua 适配器</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/assets/docs/zh/ADAPTER.md">Lua 适配器</a></li>
</ul> </ul>
</div> </div>
<div> <div>
<h4>深入</h4> <h4>深入</h4>
<ul> <ul>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/docs/zh/input-scheduler-design.md">输入调度器设计</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/docs/zh/input-scheduler-design.md">输入调度器设计</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/docs/zh/resident-subagent-design.md">驻留式子 Agent</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/docs/zh/resident-subagent-design.md">驻留式子 Agent</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/docs/zh/multimodal-space.md">统一多模态空间</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/docs/zh/multimodal-space.md">统一多模态空间</a></li>
</ul> </ul>
</div> </div>
<div> <div>
<h4>项目</h4> <h4>项目</h4>
<ul> <ul>
<li><a href="https://github.com/JianFeeeee/HomeAgent">源码仓库</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent">源码仓库</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/releases">发布下载</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/releases">发布下载</a></li>
<li><a href="https://github.com/JianFeeeee/homeagentsdk">插件 SDK</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent-sdk">插件 SDK</a></li>
</ul> </ul>
</div> </div>
<div> <div>
<h4>状态</h4> <h4>状态</h4>
<ul> <ul>
<li><a href="https://github.com/JianFeeeee/HomeAgent/releases">最新发布:v1.3.x 线</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/releases">最新发布:v1.3.x 线</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/internal/meta/meta.go">main 在研:1.4.0</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/internal/meta/meta.go">main 在研:1.4.0</a></li>
<li><a href="https://github.com/JianFeeeee/HomeAgent/blob/main/LICENSE">内核许可:AGPL-3.0-only</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent/blob/main/LICENSE">内核许可:AGPL-3.0-only</a></li>
<li><a href="https://github.com/JianFeeeee/homeagentsdk/blob/main/LICENSE">插件 SDK:MIT</a></li> <li><a href="https://github.com/JianFeeeee/HologramAgent-sdk/blob/main/LICENSE">插件 SDK:MIT</a></li>
</ul> </ul>
</div> </div>
</div> </div>