mirror of
https://gitcode.com/JianFeeeee/homeagent-sdk.git
synced 2026-09-30 06:13:14 +00:00
`ParallelSafe` / `Serial` / `stream_index` 三个新能力此前**零文档**: README 提到 `Serial` 的那处是 UART 串口,与并发声明无关。插件作者只能 读源码注释才能知道这些字段存在及其优先级。 ## docs/guide/parallel-tool-declaration.md - 保守 opt-in 的理由:存量插件不改一行就得串行,不会被升级意外并发 - 声明 `ParallelSafe` 的三个条件(线程安全 / 不争抢资源 / 顺序无关) - `Serial` 存在的意义:让"我确认过**必须**串行"与"我没想过"可区分 - **`Serial` 胜出**,不允许被 `ParallelSafe` 或默认值覆盖 - 声明字段放在 `ToolDef` 末尾,遵循既有 `NoMemory` 风格 - 压测效果 N=2/4/8 → 1.41×/2.22×/3.88×,并附"必须同时统计实际执行数" 的理由(旧适配器耗时更短但实际处理 0 个工具) ## docs/guide/stream-tool-call-index.md 面向写 Lua 适配器的人: - 上游 `index` 字段的用途:分桶累积 `id`/`name`/`arguments` - **键名是 `stream_index` 不是 `index`** —— 写错会被 Go 解码器静默丢弃 - 不透传的实际后果:name 互相覆盖、args 碎片混拼、工具被当空参数调用 - 顺带记两个易踩点:不能按 name 过滤分片;扁平结构的协议族同样要带 - 自检命令;并注明 `gemini.lua` 不涉及(协议是 `functionCall`) ## 其它 - `mkdocs.yml` nav 登记两篇 —— 之前它们会被 mkdocs 明确警告 "not included in the nav configuration",等于在站点里不可达 - 重跑 `tools/apidoc/build.sh` 同步 `docs/api/*`、`llms.txt`(生成物) 核实过的事实,避免臆造: - 内置工具声明是**核心仓**的 `toolDefOptions`/`parallelOpts()` (`internal/agent/core/tooldefs.go`),不是 `sdk.BuiltinToolDef` —— 初稿写错 - `gemini.lua` 对 `functionCall|tool_calls` 匹配数为 0,确认无流式实现 - `server/kimicode/anthropic/ollama` 四个适配器确有 `stream_index`(2~5 处) - 跨仓相对链接不可解析,故改为纯文本路径指路 `docs/api/tools.md` 属生成物(首行注明"请勿手改"),其 `ToolDef` 签名被截断、 不展示字段 —— 这是生成器既有行为,本次 diff 只是行号漂移,未改它。
87 lines
2.0 KiB
Markdown
87 lines
2.0 KiB
Markdown
<!-- 本页由 tools/apidoc/gensite 从源码生成,请勿手改;要改文档就改 sdk/*.go 的注释。 -->
|
||
|
||
# 常量与枚举
|
||
|
||
SDK 里的取值枚举。其中带「仅内置」标注的取值在内核侧会被夹到较低级别。
|
||
|
||
## StageOnInput 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `StageOnInput` | |
|
||
| `StagePreAction` | |
|
||
| `StagePostAction` | |
|
||
| `StageBeforeToolcall` | |
|
||
| `StageAfterToolcall` | |
|
||
| `StageBeforeOutput` | |
|
||
| `StageAfterOutput` | |
|
||
|
||
## ContextPolicyNone 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `ContextPolicyNone` | |
|
||
| `ContextPolicyPrune` | |
|
||
|
||
## RecallPolicyNone 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `RecallPolicyNone` | |
|
||
| `RecallPolicyAuto` | |
|
||
|
||
## ScenePolicyAuto 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `ScenePolicyAuto` | |
|
||
| `ScenePolicyNone` | |
|
||
|
||
## PriorityL1 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `PriorityL1` | |
|
||
| `PriorityL2` | |
|
||
| `PriorityL3` | |
|
||
| `PriorityL4` | PriorityL4 仅内核级(内置)插件可用;外部插件声明会被夹到 L3。 |
|
||
|
||
## EventRawInput 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `EventRawInput` | |
|
||
| `EventAgentOutput` | |
|
||
| `EventAgentLLMChain` | |
|
||
| `EventToolCall` | |
|
||
| `EventReasoning` | |
|
||
| `EventStage` | |
|
||
| `EventSystem` | |
|
||
| `EventReasoningDelta` | 流式增量事件(token 级):核心 process() 流式化后每收到一个增量块发布。 |
|
||
| `EventContentDelta` | |
|
||
|
||
## StageScopeGlobal 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `StageScopeGlobal` | StageScopeGlobal receives all stage events (default). |
|
||
| `StageScopeOwnTools` | StageScopeOwnTools only receives events for this plugin's own tool calls |
|
||
|
||
## CapText 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `CapText` | |
|
||
| `CapFile` | |
|
||
| `CapImage` | |
|
||
| `CapAudio` | |
|
||
| `CapStructured` | |
|
||
|
||
## ProxyAuthHomeAgent 等
|
||
|
||
| 名称 | 说明 |
|
||
|---|---|
|
||
| `ProxyAuthHomeAgent` | ProxyAuthHomeAgent 表示由 HomeAgent 统一保护:浏览器走门户会话 |
|
||
| `ProxyAuthNone` | ProxyAuthNone 表示不经 HomeAgent 鉴权,直接把请求转发给上游。 |
|
||
|