docs(i18n): standardize contract terminology
This commit is contained in:
@@ -3,4 +3,4 @@
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/web/README.md
|
||||
README.md: 811c8b3439a8962116df0e8b3ab4f6e282ecb3d2
|
||||
README.zh.md: c7c0546c6a2527ba04bd802945c0dd4ee4353a37
|
||||
README.zh.md: e328447d5d026c0abc815b269179ba6c4cd9acfc
|
||||
|
||||
@@ -13,6 +13,6 @@
|
||||
| [`web-fetch-local/`](web-fetch-local/README.md) | 抓取公共 HTTP 和 HTTPS 资源 | 注册到 `ctx.web` |
|
||||
| [`tool-web/`](tool-web/README.md) | 向模型公开 web 搜索和抓取 | 注册到 `ctx.tools` |
|
||||
|
||||
[web 能力决策](../../.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.md) 记录了搜索和抓取共用一项提供方选择服务的原因。
|
||||
[web 能力决策](../../.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.md)记录了搜索和抓取共用一项提供方选择服务的原因。
|
||||
|
||||
子系统参考——搜索/抓取请求与结果、可用性、`WebError`——见 [docs/subsystems/web.md](../../docs/subsystems/web.md);依据(含延后的 SSRF 防护)见 [web 能力 seam Agent Note](../../.agents/notes/implemented/architecture/2026-06-24-web-capability-seam.md)。
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/web/tool-web/README.md
|
||||
README.md: 646601bb5bd6c27876918b7aca49962ae34bae33
|
||||
README.zh.md: 192b7020f5fac026f325448630b2e17d7ce6a0c4
|
||||
README.zh.md: 135c75831045225a0ac6d4637ff5c8b4105336c0
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
## 稳定注册
|
||||
|
||||
工具注册遵循产品**启用状态**,而非后端可用性。即使选中的提供方缺失、错误配置、存在歧义或暂时不可用,工具仍保持可见;seam 在执行时解析提供方,执行以结构化 `WebError`(例如 `WEB_PROVIDER_UNAVAILABLE`、`WEB_PROVIDER_AMBIGUOUS`)失败,`ToolRegistry.execute()` 会把它转为模型可读、钩子/UI 可路由的错误工具结果。这样无需把插件加载顺序、凭据状态或 HMR(热模块替换)时机纳入面向模型契约,也能保持模型 schema 稳定。要彻底移除 web 工具,请在此处通过配置将其禁用。
|
||||
工具注册遵循产品**启用状态**,而非后端可用性。即使选中的提供方缺失、错误配置、存在歧义或暂时不可用,工具仍保持可见;seam 在执行时解析提供方,执行以结构化 `WebError`(例如 `WEB_PROVIDER_UNAVAILABLE`、`WEB_PROVIDER_AMBIGUOUS`)失败,`ToolRegistry.execute()` 会把它转为模型可读、钩子/UI 可路由的错误工具结果。这样无需把插件加载顺序、凭据状态或 HMR(热模块替换)时机纳入面向模型约定,也能保持模型 schema 稳定。要彻底移除 web 工具,请在此处通过配置将其禁用。
|
||||
|
||||
工具绝不会调用提供方的 `available()`,也不会枚举提供方;唯一执行路径是 `ctx.web.search()`/`ctx.web.fetch()`,提供方不可用时,选择机制会在执行阶段抛出结构化 `WebError`,其错误码由工具接收。提供方选择完全留在 seam 内,由单一主体负责。
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/web/web-search-deepseek/README.md
|
||||
README.md: 95340314fe08d0963b899f4a1d704a98f85963a5
|
||||
README.zh.md: 48d94b64d15e4c0902e5222fe9a737b1e67270fc
|
||||
README.zh.md: cf83426f70d6d2a77fd9acf5e927d1b13ec345eb
|
||||
|
||||
@@ -79,6 +79,6 @@ DeepSeek 不返回该提供方可作为 `content` 信任的提供方生成答案
|
||||
## 已知限制与暂缓事项
|
||||
|
||||
- **一次搜索需要完整的 Messages 模型轮次**:会产生延迟与生成 token,并且最多执行 `maxUses` 次服务器侧搜索;DeepSeek 不公开专用检索端点。
|
||||
- **动态凭据的可用性在操作内部解析**:同步的 `available()` 契约可以确认解析器存在,但无法查询异步凭据存储。因此,选中的无密钥提供方会使搜索以 `WEB_PROVIDER_CREDENTIAL_MISSING` 失败;稳定的 `web_search` schema 仍保持注册。调用方取消在本地与该预检存在竞态,但无法强制任意凭据后端自行停止工作。
|
||||
- **动态凭据的可用性在操作内部解析**:同步的 `available()` 约定可以确认解析器存在,但无法查询异步凭据存储。因此,选中的无密钥提供方会使搜索以 `WEB_PROVIDER_CREDENTIAL_MISSING` 失败;稳定的 `web_search` schema 仍保持注册。调用方取消在本地与该预检存在竞态,但无法强制任意凭据后端自行停止工作。
|
||||
- **超量返回的源仍消耗 token**:协议没有结果数量旋钮,`maxResults` 只能由 seam 在事后截断。
|
||||
- **未引用的结果没有 `snippet`**:只有 `text` 块中的引用(`cited_text`)匹配其 URL 时,源才会获得 snippet。
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write packages/web/web/README.md
|
||||
README.md: 73765fe060cc0a2b0fa3d69703a670f488a29ac9
|
||||
README.zh.md: 3cce0fb528457b566b2c2ab4ffd1f29471255c07
|
||||
README.zh.md: bebdb52d6c9bd33db5a982c1f278e71c1882f2de
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[English](README.md) | 中文
|
||||
|
||||
**web 访问 seam**:抽象 `WebService`(`ctx.web`)定义 harness 具备哪些 web 访问能力(搜索 web、抓取 URL),并通过多个提供方实现,不把模型契约绑定到某个厂商的 API 形状。
|
||||
**web 访问 seam**:抽象 `WebService`(`ctx.web`)定义 harness 具备哪些 web 访问能力(搜索 web、抓取 URL),并通过多个提供方实现,不把模型约定绑定到某个厂商的 API 形状。
|
||||
|
||||
该包是 web 能力中负责接口的三分之一。与 bash/fs 不同,它在一个 seam 上跨越搜索与抓取两种能力,每种能力都可能有多个提供方:
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
## 词汇
|
||||
|
||||
`WebSearchRequest`(`query`、`maxResults?`)→ `WebSearchResult`(`content?`、`sources[]`、`truncated`);每个 `WebSearchSource` 都有必填 `url` 与可选 `title`/`snippet`/`publishedAt`(Perplexity 引用可能只含 URL)。`WebFetchRequest`(`url`)→ `WebFetchResult`(最终 `url`、`statusCode`、`body`、`truncated`);取消作为可选的直接 `AbortSignal` 参数传给 `search()`/`fetch()`。`WebFetchBody` 是这里拥有的封闭判别联合(`html` | `text`);消费方使用 `switch` 实现穷尽检查,因此新增类型会导致编译失败,直到处理完毕。完整契约见 `src/types.ts`,其中也包含 `WebError` code 分类体系。
|
||||
`WebSearchRequest`(`query`、`maxResults?`)→ `WebSearchResult`(`content?`、`sources[]`、`truncated`);每个 `WebSearchSource` 都有必填 `url` 与可选 `title`/`snippet`/`publishedAt`(Perplexity 引用可能只含 URL)。`WebFetchRequest`(`url`)→ `WebFetchResult`(最终 `url`、`statusCode`、`body`、`truncated`);取消作为可选的直接 `AbortSignal` 参数传给 `search()`/`fetch()`。`WebFetchBody` 是这里拥有的封闭判别联合(`html` | `text`);消费方使用 `switch` 实现穷尽检查,因此新增类型会导致编译失败,直到处理完毕。完整约定见 `src/types.ts`,其中也包含 `WebError` code 分类体系。
|
||||
|
||||
## 模型体验
|
||||
|
||||
|
||||
Reference in New Issue
Block a user