Skip to content

fix(aidev): correct request examples and require DELETE bodies - #47

Merged
wklken merged 3 commits into
TencentBlueKing:masterfrom
robot-wklken:codex/dd-46-fix-aidev-review-findings
Oct 21, 2026
Merged

wklken merged 3 commits into
TencentBlueKing:masterfrom
robot-wklken:codex/dd-46-fix-aidev-review-findings

Conversation

@robot-wklken

Copy link
Copy Markdown
Collaborator

Fixes #46

修复 PR #21 review 报告中的 8 条高、4 条中级问题。五个归档/删除 action 现在要求显式提供包含真实 space_id 的 DELETE body,缺少 body 时在读取凭据前返回本地输入错误,并提供 body schema 和完整示例。共享请求层已有 DELETE body 支持,继续复用该路径。

同步修正 CLI help、AIDev usage skill 和集成用例中的 MCP 服务地址及凭证 ID、知识文档相对路径与制品 URL、ZIP 目标目录、非空 system 消息、文档更新选择器、管理员清单、上传模块、自定义凭证字段,以及批量/跨空间请求的非空资源列表。补充知识列表空间限制、标签范围和 url / upload_url 的说明。

验证:

  • 修改前 26 个测试套件通过;新增 20 个示例检查与 10 个 DELETE 检查先失败,修复后通过。
  • make fmt、make lint(0 issues)、make test(26 suites)和 make build 通过。
  • 65 个 AIDev 场景使用真实二进制、仓库 Flask mock 和 YAML runner 在本地全部通过;AIDEV-006 按场景 ID 与 case 路径单独运行也通过。

本环境没有 Docker,集成验证使用相同 mock 和 runner 在本地执行。私有 AIDev 服务及真实网关未调用;HTTP 边界和 mock 验证证明 CLI 发送了 DELETE JSON body,实际部署的网关转发行为仍依赖其资源配置。

Require explicit DELETE bodies for archive and delete actions so callers
can supply the real space ID. Correct MCP, knowledge, collection, admin,
credential and upload examples, including nonempty batch requests.

Keep CLI help, usage guidance and integration inputs consistent. Add
semantic example checks and HTTP-boundary DELETE regression coverage.
@wklken

wklken commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

@robot-wklken

  1. 不要改 README.md / README_EN.md
  2. 回答问题: 为什么很多命令参数中出现 --body {space_id:}? space_id 是所有命令需要的概念吗? 为什么放body中而不是变成 --space_id? (不要改代码,给出原因说明)

@robot-wklken

Copy link
Copy Markdown
Collaborator Author

已按两点处理:

  1. 撤回 README.md / README_EN.md 各自新增的 AIDev 示例行,两份文件与 PR 基线完全一致。本次后续提交只改这两份 Markdown;代码、YAML 和测试未修改。已检查文件内容一致性及 diff 范围。按仓库的纯文档规则,本次不需要运行 Go lint/test。

  2. space_id 是 AIDev 的空间标识,用来指定操作涉及的空间。Skill、Agent、知识库、凭证等资源操作经常需要它,所以示例中反复出现;它不是 bk-cli 全局必填参数,也不是每个 AIDev 命令都要求传入。list_spaces、list_tags、list_credential_types、list_knowledge_update_frequencies 不需要传;list_skills、list_agents 等列表可省略或传 all,查询有权限的空间;创建、归档等操作则需要明确的目标空间。

为什么有时是 --space_id,有时在 --body 中:当前封装按各接口定义的参数位置发送。比如 get_skill 将 space_id 放在 query,因而已有 --space_id;upsert_skill 将它放在 JSON body,而本 PR 补齐的五个 DELETE action 也在 body 中传它,例如:

bk-cli aidev get_skill --skill_id 1 --space_id demo-space
bk-cli aidev archive_skill --skill_id 1 --body '{"space_id":"demo-space"}'

CLI 还有一个独立的设计选择:YAML action 只为 path/query 字段生成命名 flag,JSON body 字段统一由 --body 传入。body_schema 仅用于帮助展示,不会自动生成 --space_id;body_required 只检查显式 body 非空,也不会注入空间 ID。依据是 docs/design.md 的 §11.1–11.2、internal/system/action_input.go 的 BuildActionInputSpec 和 internal/system/runner.go 的 RunAction。

让 body 中的 space_id 也接受 --space_id 在技术上可行,但需要额外把 flag 合成进 JSON body,并明确与显式 --body 的覆盖规则;直接把 YAML 参数改成 query 只会改成 URL 查询参数,不能替代 body。现有 Go 命令已能做这种输入封装,例如 upload_file --space_id ... 将它写入 multipart 表单。因此,这个差异来自接口参数位置和现有 YAML 输入约定,并非空间 ID 必须采用某一种 CLI 形式。按要求,本次只解释原因,不改代码。

@wklken

wklken commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

@robot-wklken docs/user-guide.md 中也不应该加上aidev 的示例, 子系统的只加入各自的skills

Remove AIDev action examples and dedicated upload and DELETE guidance from the general user guide. Point readers to the existing system skills, which already cover these workflows.
@robot-wklken

Copy link
Copy Markdown
Collaborator Author

已核实这条意见并修正文档:移除了 docs/user-guide.md 中的 AIDev 操作示例及上传、DELETE、知识列表和标签的专用说明,改为指向对应的 skills/。相关示例和输入说明已由 skills/bk-cli-aidev/SKILL.md 覆盖。

本次提交只修改用户指南。文档范围、skill 覆盖、相对链接、代码块及 git diff --check 检查通过;仅改 Markdown,按仓库规则无需运行 make lint 和 make test。

@wklken
wklken merged commit 801887f into TencentBlueKing:master Oct 21, 2026
4 checks passed
robot-wklken added a commit to robot-wklken/bk-cli that referenced this pull request Oct 21, 2026
Merge current master to include AIDev TencentBlueKing#21 and its DELETE-body fixes from TencentBlueKing#47. Refresh the v0.2.9 draft and restore the missing v0.2.8 repository changelog from the existing release notes while preserving earlier history.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

查看review 报告并处理

2 participants