Repository navigation
v3.2.0:筛选码对齐真实平台,错误分类更诚实
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。