跳转到内容

0.5.0 - Fire and Blood

新功能

  • 新增 OpenCTI 威胁情报提供商,和 AlienVault OTX 一起作为一等 Threat Intelligence Provider 管理。
  • OpenCTI 支持数据库化配置、连通性测试、SSL 校验、代理和超时设置,并在威胁情报设置页中以独立标签页展示。
  • 威胁情报查询现在默认聚合所有已启用的真实提供商,不再使用 Mock Provider 作为运行时兜底。
  • 新增 ASP CLI agent API 基础能力,覆盖版本探测、认证、Case、Alert、Artifact、Knowledge、Comment、File、Enrichment、Playbook、SIEM、Threat Intelligence 和 CMDB 等自动化访问场景。
  • CLI 现在具备 PyPI 包元数据,可通过 asp-cli 包提供 asp 命令,并接入 GitHub Release 工作流自动发布。
  • 新增 WebSocket 实时事件与 Inbox 实时刷新基础,支持未读数、消息新增、删除、已读状态和评论事件的实时同步。
  • 新增表格偏好存储和左侧固定列配置,让用户对数据表的可见列、顺序和固定列设置可以持久化。
  • 文档站新增 LLM 友好的 Markdown 输出能力,为英文产品文档生成 llms.txtllms-full.txt 和页面级 Markdown,并为页面提供轻量复制、查看、下载 Markdown 操作。

优化

  • asp auth login 现在会在保存配置前调用认证版本接口验证 API URL 和 API Key,避免错误配置被写入本地。
  • AlienVault OTX 配置测试改为调用认证接口校验 API Key,避免公开接口导致错误 key 也显示成功。
  • OpenCTI、OTX 和 SIEM 设置入口的图标更加贴近各自语义。
  • 多处前端 Ant Design deprecated props 已更新到 v6 推荐写法,减少运行时告警。
  • 前端全局 message 调用接入 App.useApp(),可以正确消费动态主题上下文。
  • 实时 WebSocket 生命周期更稳健,避免开发环境刷新时连接尚未建立就被关闭造成噪声告警。
  • Alert 详情页的 Descriptions 布局补齐列宽,避免 span 总和与列数不匹配。
  • TagList 渲染补充稳定 key,避免 React 列表 key 告警。

修复

  • 修复 UUID 主键记录在游标分页时无法序列化 cursor,导致 /api/agent/v1/cases/?page_size=1 返回 500 的问题。
  • 修复 Cursor 解码逻辑默认按整数 ID 处理的问题,兼容 BaseModel 使用 UUID 的记录。
  • 修复 CLI 登录成功路径未真正验证服务端可用性的问题。

部署和发布工程

  • Release 工作流现在会在创建 GitHub Release 后构建并发布 asp-cli 到 PyPI。
  • CLI PyPI 发布使用 Trusted Publishing,不需要在仓库或 GitHub Secrets 中保存 PyPI API Token。
  • Release runbook 增加 CLI/PyPI 发布步骤、版本校验、失败处理和验证命令。
  • CLI 版本必须与主项目 release 版本保持一致:Git tag 使用 v0.5.0,PyPI 包版本使用 0.5.0
  • 本次发布会生成 asp-compose-0.5.0.tar.gz,并发布对应 GHCR 镜像标签。

升级说明

如果已经部署 0.4.1,升级到 0.5.0 时建议先完成一次停机全量备份,然后更新 .env 中的镜像版本:

text
ASP_BACKEND_IMAGE=ghcr.io/funnywolf/agentic-soc-platform/asp-backend:0.5.0
ASP_FRONTEND_IMAGE=ghcr.io/funnywolf/agentic-soc-platform/asp-frontend:0.5.0

执行升级:

bash
./scripts/upgrade.sh

如果需要使用 CLI,可以通过 pipx 安装:

bash
pipx install asp-cli==0.5.0

开发者笔记

这个版本的标题借用了坦格利安家族的家族箴言:Fire and Blood

这次最深的感受是:如果开发过程中你觉得一个东西不对劲,觉得现在的状态不好,那它大概率真的不对劲。不要指望它会自己变好,也不要因为“还能跑”就先放着。它会像一根刺一样越扎越深,最后还是要拔出来,只是到那时要付出更多成本,也会更痛。

这说的就是 MCP 转 CLI。

早期用 MCP 是为了快速把 Agent 和平台能力接起来,这个选择在当时有意义。但继续往下做就会发现,MCP runtime 这条路会让部署、鉴权、文件访问、命令能力、版本发布和用户使用路径都变得不够直接。它不是一个小瑕疵,而是会影响后续所有 Agent 能力的基础形态。

所以 0.5.0 做了一个更痛但更干净的选择:把 Agent 访问 ASP 的主要入口转向 CLI。CLI 可以版本化、可以发布到 PyPI、可以被脚本和技能稳定调用,也更容易和现有认证、API、发布流程对齐。MCP 相关工作没有白费,它帮助验证了 Agent 真正需要哪些能力;但平台继续往前走时,CLI 是更可控、更清晰的基础。

有些刺早拔会疼,晚拔会更疼。这一版就是把它拔出来。

最后更新于: