Skip to content

v3.2.0:筛选码对齐真实平台,错误分类更诚实

Choose a tag to compare

@github-actions github-actions released this 02 Nov 08:02
· 358 commits to master since this release
d5f085e

v3.2.0:筛选码对齐真实平台,错误分类更诚实

这一版的主线有两条:把搜索筛选码换成平台网页实际使用的那一套,以及不再把程序缺陷报成「可以重试的网络错误」。

必须注意

  • --industry 改用平台行业码,14 个对不上平台的旧标签已移除:金融、软件/信息服务、区块链、证券/基金、教育培训、房地产、汽车、物流/运输、广告/传媒、消费品、制造业、能源/环保、政府/非营利、农业。保存过这些标签的预设和 watch 会返回 INVALID_PARAM,报错会给出相近的可选值。旧码原本就发错,例如「人工智能」实际搜的是「机械设备/机电/重工」,移除是把静默的错误行为变成显式报错。仍可直接传数字行业码,或用 --url。
  • --experience、--salary 的码按网页筛选器校正:经验码此前整体错位一档,薪资低三档同样错位。同样的标签现在搜到正确的档位,结果会和以前不同。预设和 watch 存的是标签,升级后自动使用新码;10-15K 保留给旧预设,按包含它的 10-20K 档请求。
  • CLI 缺陷与平台数据结构异常改报 INTERNAL_ERROR(不可恢复):不再是可重试的 NETWORK_ERROR。按错误码决定是否重试的 Agent 需要相应调整;--exit-codes sysexits 下退出码为 70。
  • 依赖下限改为 browser-cookie3>=0.20.0:pip install -U boss-agent-cli 会一并升级它。0.20.0 以前版本不满足时,登录的 Cookie 提取会直接抛 AttributeError,走不到 CDP / 扫码降级。

主要变更

  • --city 新增「全国」与嘉兴、徐州、香港,共 44 个城市。「全国」是平台的不限城市码,本地预筛与匹配评分把它当作没有城市条件——此前就算平台支持,本地预筛也会把结果全部排除、评分给每个职位记一条「城市不匹配」。
  • Cookie 提取更容易诊断:boss login --cookie-source <浏览器> 没提取到时,stderr 会说明是读取失败(附异常类型与原因)还是该浏览器没有登录 Cookie;拿不到解密密钥时按平台说明原因并提示替代方式。macOS 上只在非默认浏览器配置(如 Chrome 的 Profile 1)登录时也能读到,自动探测不再为没有登录记录的浏览器逐个弹钥匙串授权框。
  • --education 补上低学历三档(初中及以下、中专/中技、高中):此前在本地阈值比较里存在,却不能作为筛选条件。
  • 未知筛选标签报错时附上最接近的可选值,例如 未知行业类型: 汽车,相近的可选值: 汽车零部件、汽车经销商…。
  • 平台响应字段为显式 null 时不再崩溃(jobList、welfareList、bossInfo 等):null 列表当作空结果,null 文本字段输出空串,信封里的字段类型保持稳定。detail 遇到 bossInfo 为空时也不会再误报 JOB_NOT_FOUND。
  • boss login 不再先走纯 httpx 的 QR 通道:该通道只在终端打印二维码 ID、从不展示可扫描的二维码,任何一次登录都不可能经由它完成,却会先向登录服务发请求。CDP 不可用时直接打开浏览器扫码。
  • AI 集成修复:OpenAI 推理模型(o 系列、gpt-5 及之后)改发 max_completion_tokens、不再发送 temperature,配置后不再一律 HTTP 400;模型返回 content: null 时输出 AI_API_ERROR 信封而不是 traceback;HTTP 错误的 error.message 带上服务端原因,recovery_action 按状态码给出对应下一步。
  • Agent 集成文档默认改为只读流程:apply / greet / batch-greet 等平台写操作,只在用户当前对话点名具体岗位、并在操作前再次确认时执行一次;不建外发队列、不无人值守批量、不重试结果不明的写操作;遇到风控、验证页或限流时保存 checkpoint 并停止。

验证

pytest 3225 passed|ruff 通过|mypy 零错误|boss --help / boss --version / boss schema --format native 正常|离线冒烟通过|发布工作流内 pytest 通过并完成打包与 PyPI 发布。

完整清单见 CHANGELOG。