跳转至

Temporal 面试速查

1. 先给定位

Temporal 在这个项目里是工程编排层,不是论文核心创新。如果面试官不问,可以不主动讲。被问到时,重点说它解决长任务、状态追踪、timeout 和 retry,不要展开太深。

比较稳的一句话:

GitHub 侧收到请求后不会直接跑 Agent,而是把任务交给后端执行服务;后端通过 Temporal worker 执行长时间 workflow。Temporal 主要负责任务状态、超时、失败记录和 retry。

2. 最小概念

Workflow:长流程,比如一次安全审查从输入准备到 Agent 执行、产物落盘、结果返回。

Activity:workflow 里的具体执行单元,比如拉起某个 runner 步骤、执行阶段任务、处理 artifact。activity 可以配置 timeout、retry,也更适合包住外部 I/O。

Worker:真正跑 workflow/activity 代码的进程。它监听 task queue,从 Temporal server 拿任务来执行。

Task queue:任务队列名字,用来把某类任务路由给对应 worker。

Retry / timeout:让长任务失败时有明确状态和边界,不至于 webhook 请求挂死,也方便查询和重试。

3. 项目里怎么串

可以按这个顺序讲:

  1. GitHub App 接到 webhook 或 dispatch。
  2. GitHub 集成层物化仓库 workspace,准备审查输入。
  3. GitHub 集成层调用后端执行服务。
  4. 后端执行服务提交 Temporal workflow。
  5. Worker 执行 workflow,workflow 再调具体 activity 或 Agent 阶段逻辑。
  6. 产物落盘后,GitHub 集成层或 publisher 查询状态并发布结果、评论或可提交的修复草稿。

4. 被追问时怎么答

Q:为什么不用普通队列?

普通队列也能做一部分,比如异步触发和后台消费。但 Temporal 更适合长流程,因为它天然保留 workflow 状态、超时、失败和重试语义。这个项目里安全审查不是一个短任务,中间还有多个阶段和 artifact,所以用 workflow 语义更贴近问题。

Q:Temporal 是不是你的核心贡献?

不是。我会把它说成工程运行载体。核心贡献还是 Agent workflow 的阶段拆分、证据流、修复/验证闭环和评测。Temporal 的作用是让这条链路能稳定地跑在 GitHub 集成层后面。

Q:你熟 Temporal 到什么程度?

我熟项目里用到的边界:workflow、activity、worker、task queue、timeout、状态查询,以及为什么要把长任务从 webhook 里解耦出来。Temporal 更底层的 server 内部组件不是这个项目的重点,我不会主动展开。

5. 不要说太满

  • 不要说“Temporal 保证任务一定成功”。它保证的是可追踪的执行、超时、重试和状态,不保证 Agent 结果正确。
  • 不要把 Temporal 包装成论文创新点。
  • 不要主动讲 Temporal 内部架构,除非你真的准备了。
  • 不要说这套就是生产级部署方案;本项目链路跑通过,但生产化还要补隔离、监控、权限和成本治理。