AI 求职每日一课 · 2026-09-19
MONTH 1 · WEEK 2 · SATURDAY PROJECT

做一个可审计的求职助理 Agent

第 1 月 · 会调用|第 2 周 · 让模型可靠调用业务工具|预计 30 分钟

今日成果:运行一个能创建提醒、阻断未确认写操作、幂等重试并输出脱敏审计日志的最小系统。

为什么今天学这个

昨天补上执行过程、预算和确认;今天把工具注册、Schema、超时、幂等、确认与审计装成完整项目。模型只提出候选动作,服务端才决定能否执行。

用户目标 → 模型提出调用 → 注册表/Schema → 风险确认 → 幂等执行 → 审计;超时 → 查询状态 → 人工接管

三个核心要点

能力收口

只运行版本化白名单工具;模型输出是不可信输入。

确认绑定计划

工具名与规范化参数生成哈希,参数变化后旧授权失效。

重试是状态机

超时进入 unknown,先查询状态,不能换键盲目重放。

日志最小化

记录决策与状态,不保存完整简历和手机号。

最小可运行示例

def run(plan, confirmed, idem_key): pid = plan_id(plan); return waiting(pid) if confirmed != pid else idempotent_execute(idem_key, plan)

完整可复制代码、依赖、输入和预期输出见同日 Markdown。

生产环境会怎么翻车

  1. 模型绕过注册表:白名单、严格 Schema 与最小网络权限。
  2. 确认后参数漂移:确认绑定计划哈希,执行前复核。
  3. 超时后重复写入:持久化幂等键,先查询状态。
  4. 审计泄露隐私:字段最小化、脱敏、保留期与删除入口。

动手练习

增加只读工具和 1000ms 超时预算,验证未知工具拒绝、只读免确认、参数变化失效、同键不重复、日志不含完整备注。

面试表达、自测与来源

30 秒回答:模型只做决策建议;确定性服务端负责注册、校验、确认、幂等、状态恢复和审计。用重复运行成功率、重复副作用率、P95 延迟和人工接管率验收。

超时且无法查询状态怎么办?

标记 unknown,停止自动重试并进入人工对账。

明天做第 2 周复盘:解释何时选工具、工作流或 Agent。