Repository navigation
Conversation
来源:agent-compose_sample itest/2026-10-14-main-6200fcb7/FAILURES.md 的 12/18/21/23/32 条 (区间 v2610.1.0..6200fcb 的实测)。只改文档,不动代码;英文与 zh-CN 同步。 - #18 SKILL.md frontmatter(yaml-manual,skills 一节):原文只说「必须包含有效的 SKILL.md」, 未写 frontmatter 的存在、`---` 围栏、`name`/`description` 必须非空、frontmatter 的 `name` 必须与配置一致,也没写这些内容规则**只在 sandbox 启动时**报错(`config` 一律放过)。 补一段说明 + 三类报错与时机对照表。 - #12 microVM 驱动的 runtime base URL(yaml-manual,driver 一节):boxlite/microsandbox 启动真正的内核、不加入 Docker 网络,既不解析 Compose 服务名,也访问不到只发布在宿主回环上的 daemon;`AGENT_COMPOSE_RUNTIME_BASE_URL` 必须是 sandbox 可达地址且 daemon 要发布在该地址上。 - #32 sandbox_policy 的实际作用域(yaml-manual,Scheduler 一节):原文只写「sticky 允许绑定并 复用 sandbox」。补的是**调用级选项**这个静默陷阱:`AgentRequestOverridesSession` (`pkg/schedulers/run_host.go:633-640`)把 `title`(纯展示字段)与 `driver`/`guestImage`/`workspaceId`/`env`/`volumes` 一并算作 override,于是 `useProjectAgentRun`(`run_host_project_agent.go:99`)返回 false、走会话路径且 `forceNew=true`(`scheduler_session_runner.go:139-140`),sticky 绑定既不查也不写—— 给一个本来没变的调用加个 title 就会把 sticky 静默变成「每次一个新 sandbox」。 声明式 trigger 生成的是裸 `scheduler.agent(<prompt>)`(`internal/projects/scheduler.go:62-65`), 不带 override,因此仍在 sticky 路径上。(此结论修正了 FAILURES.md 原文把成因归为 「脚本式 scheduler 无法 sticky」的判断;并行多 Agent 拒绝非 `new` 属有意限制,文档已有,未重复。) - #21 `project down` 会取消在飞的 scheduler run(command-line-manual):被取消的 run 记为 `failed` + `context canceled`(可能附带无法确认 guest 终止),且 `sandboxids` 为空; 关心 run 历史时应先等 scheduler 空闲。 - #23 无签名无 token 的 webhook source(command-line-manual):原文写「不能与另一个启用的 source 共用 URL」,实测 PUT 第二个源**不会预警**(两次 200),歧义在投递时以 `409 unsigned webhook source is ambiguous` 报出。改写为「不得共用」+ 说明实际强制点。 校验:`task docs:build` 通过 —— `Pages checks passed for 82 YAML schema fields and 12 public files` (含 schema-coverage 单测)。未改 `pkg/compose/spec.go`。
|
评审任务执行失败。 |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
补齐集成测试中发现的 5 处文档缺口。来源是
agent-compose_sample的itest/2026-10-14-main-6200fcb7/FAILURES.md(被测区间v2610.1.0..6200fcb7)。只改
docs/pages(英文与docs/pages/zh-CN同步),未改动任何代码。SKILL.md的 frontmatter 是硬性要求但文档没写(agent-compose-yaml-manual.md的skills一节):原文只说「必须包含有效的
SKILL.md」。补齐首行---围栏、name/description必须非空、frontmatter 的
name必须与配置一致,并给出三类内容问题的报错原文与报错时机对照表——它们只在 sandbox 启动期暴露,
config/config --quiet一律放过。boxlite/microsandbox会启动真正的内核、不加入 Docker 网络,因此既不解析 Docker Compose 服务名,也访问不到只发布在宿主回环上的 daemon。
写明
AGENT_COMPOSE_RUNTIME_BASE_URL(或驱动级覆盖项)必须是 sandbox 自身可达的地址,且 daemon 要真的发布在该地址上,否则第一个
run --prompt会以error sending request for url (http://<service-name>:<port>/api/runtime/…)失败。sandbox_policy的调用级选项陷阱(Scheduler 一节):补上「任何调用级选项(
title/driver/guestImage/workspaceId/env/volumes)都会让该次调用使用新的会话sandbox,sticky 绑定既不查也不写」。
title只是展示字段,所以给一个本来没变的调用加个标题,就会把
sticky静默变成「每次一个新 sandbox」;而声明式 trigger 生成的是裸scheduler.agent(<prompt>)(仅在 trigger 自己声明策略时追加{ sandboxPolicy: … }),不受影响、仍在 sticky 路径上。
down会取消在飞的 scheduler run(command-line-manual.md):被取消的 run 记为failedcontext canceled(若无法确认 guest 已停止还会带上docker runtime could not confirm termination of guest execution),且sandboxids为空;关心 run 历史时应先等 scheduler 空闲再down。command-line-manual.md):原文写「不能与另一个启用的source 共用 URL」,但实测
PUT第二个源不会有任何预警(两次都 200)并会存下两个源,歧义直到真正投递时才以
409 {"error":"unsigned webhook source is ambiguous"}暴露。改写为「不得共用」并说明实际的强制点。
Testing
未运行
task lint/task build/task test:本 PR 只改 4 个 markdown 文件,这三个 gate 的范围是Go / proto / installer / SDK,不覆盖
docs/pages;文档改动的适用 gate 是task docs:build(已跑)。未改动
pkg/compose/spec.go,因此没有 schema 覆盖面的新增与需要重新生成的产物。5 处文案的每一条结论都来自区间内的实测记录,涉及的代码位置(
pkg/schedulers/run_host.go:633-640、pkg/schedulers/run_host_project_agent.go:99、pkg/agentcompose/adapters/scheduler_session_runner.go:139-140、internal/projects/scheduler.go:62-65、pkg/skills/resolve.go:632)已逐条sed/grep复核。Checklist
相关(本 PR 不关闭任何 issue):#774 的文档面即本 PR 的
sandbox_policy段落;其余产品侧问题见 #769–#778。