1270 words
6 minutes
AI Interview 中的Agent编排方案

AI Interview 中的Multi-Agent 架构#

Agent 组成#

Agent职责核心节点
Main Orchestrator主协调 Agent,规则驱动流程控制init, orchestrator, decide_next, final_feedback
ResumeAgent简历解析与存储parse_resume, fetch_old_resume
KnowledgeAgent知识库检索与职责管理shuffle_responsibilities, find_standard_answer
QuestionAgent问题生成与去重generate_warmup, generate_initial, generate_followup
EvaluateAgent回答评估evaluate_with_standard, evaluate_without_standard
FeedBackAgent反馈生成generate_correction, generate_guidance, generate_comment

顶层流程#

stateDiagram-v2
    [*] --> init
    init --> orchestratorAgent
    orchestratorAgent --> decide_next
    decide_next --> question_agent: 继续面试
    decide_next --> final_feedback: 结束
    question_agent --> evaluate_agent
    evaluate_agent --> feedback_agent
    feedback_agent --> decide_next
    final_feedback --> [*]

Agent 流转图#

flowchart TB
    subgraph OrchestratorAgent
        A[START] --> B[init]
        B --> C[orchestratorAgent]
        C --> D{decide_next}
    end

    subgraph Agents
        D -->|question_agent| E[QuestionAgent]
        D -->|resume_agent| F[ResumeAgent]
        D -->|knowledge_agent| G[KnowledgeAgent]
        D -->|evaluate_agent| H[EvaluateAgent]
        D -->|feedback_agent| I[FeedBackAgent]
    end

    E --> H
    H --> I
    I --> D

    D -->|final_feedback| J[final_feedback]
    J --> K[END]

    style OrchestratorAgent fill:#252526
    style Agents fill:#252526

主流程时序图#

sequenceDiagram
    participant User as 用户
    participant Orch as Orchestrator
    participant QA as QuestionAgent
    participant KA as KnowledgeAgent
    participant EA as EvaluateAgent
    participant FB as FeedBackAgent

    User->>Orch: 开始面试
    Orch->>Orch: init phase
    Orch->>QA: 生成预热问题
    QA-->>User: 预热问题
    User->>Orch: 回答

    loop 面试循环
        Orch->>KA: 查找标准答案
        KA-->>Orch: 标准答案/无标准答案
        Orch->>EA: 评估回答
        EA-->>Orch: 评估结果
        Orch->>FB: 生成反馈
        FB-->>User: 反馈
        Orch->>QA: 生成追问/下一问题
        QA-->>User: 问题
        User->>Orch: 回答
    end

    Orch->>Orch: final_feedback
    Orch-->>User: 最终报告

各 Agent 内部运行详解#

1. ResumeAgent#

flowchart LR
    subgraph ResumeAgent
        A{新简历?} -->|Yes| B[parse_resume]
        A -->|No| C[fetch_old_resume]
        B --> D[存储到DB]
        B --> E[提取responsibilities]
        E --> F[Review3审核]
        F -->|通过| G[传给KnowledgeAgent]
        F -->|失败| H[反馈环重试]
        C --> G
    end

职责: 解析新简历文本或获取已有简历,提取结构化信息。

节点功能
parse_resume调用 LLM 解析简历文本,提取 skills、projects、responsibilities
fetch_old_resume从数据库读取已有简历

2. KnowledgeAgent#

flowchart TB
    subgraph KnowledgeAgent
        A[接收responsibilities] --> B[shuffle_responsibilities]
        B --> C[随机打乱顺序]
        C --> D[取第一条]
        D --> E[传给QuestionAgent]
        D --> F[其余存入向量库]

        G[标准答案查询] --> H{从mastered_questions查找}
        H -->|找到| I[Review3审核]
        I -->|通过| J[标准答案传给EvaluateAgent]
        I -->|失败| K[重试一次]
        K -->|失败| L[告知无标准答案]
        H -->|未找到| L
    end

职责: 职责列表随机化、向量库存储、标准答案查找。

节点功能
shuffle_responsibilities随机打乱职责列表,确保面试问题顺序随机
store_to_vector_db将职责存入 pgvector 向量数据库
find_standard_answer在 mastered_questions 中查找相似问题的标准答案

3. QuestionAgent#

flowchart TB
    subgraph QuestionAgent
        A{check_phase} -->|warmup| B[generate_warmup]
        A -->|initial| C[generate_initial]
        A -->|followup| D{deduplicate_check}

        D -->|不重复| E[generate_followup]
        D -->|重复且dev>=0.8| F[跳过]
        D -->|重复且dev<0.8| E

        E --> G[Review3审核]
        G -->|通过| H[输出问题]
        G -->|失败| I[反馈环]

        B --> H
        C --> H
    end

职责: 生成预热/初始/追问问题,问题去重检查。

节点功能
generate_warmup生成预热问题,让候选人放松
generate_initial基于简历和职责生成初始问题
generate_followup基于原始问题、用户回答生成追问
deduplicate_check检查问题是否重复(逻辑重复检测)

4. EvaluateAgent#

flowchart TB
    subgraph EvaluateAgent
        A{有标准答案?} -->|Yes| B[evaluate_with_standard]
        A -->|No| C[evaluate_without_standard]

        B --> D[Review3审核]
        C --> D
        D -->|通过| E[输出评估结果]
        D -->|失败| F[反馈环重试]
    end

职责: 使用标准答案或无标准答案模式评估用户回答。

节点功能
evaluate_with_standard有标准答案时,基于标准答案评估偏差度
evaluate_without_standard无标准答案时,基于问答质量评估

评估输出:

  • deviation_score: 偏差分数 (0-1)
  • is_correct: 是否正确
  • key_points: 关键点评
  • suggestions: 改进建议

5. FeedBackAgent#

flowchart TB
    subgraph FeedBackAgent
        A[接收evaluation] --> B{dev < 0.3?}
        B -->|Yes| C[CORRECTION纠错]
        B -->|No| D{dev < 0.6?}
        D -->|Yes| E[GUIDANCE引导]
        D -->|No| F[COMMENT点评]

        C --> G[Review3审核]
        E --> G
        F --> G
        G -->|通过| H[输出反馈]
        G -->|失败| I[反馈环]
    end

职责: 根据偏差分数生成不同类型的反馈。

反馈类型触发条件说明
correctiondev < 0.3直接给出正确答案
guidance0.3 ≤ dev < 0.6提示性追问引导
commentdev ≥ 0.6正面鼓励继续深入

Review 审核机制#

每个 Agent 输出后经过 3 实例投票审核

flowchart LR
    A[Agent输出] --> B[Review Voter 1]
    A --> C[Review Voter 2]
    A --> D[Review Voter 3]

    B --> E{通过?}
    C --> E
    D --> E

    E -->|≥2通过| F[输出给下一阶段]
    E -->|<2通过| G[反馈环重试]

审核标准:

Agent审核项
ResumeAgentresponsibilities 非空、技能 ≥3、项目 ≥1
KnowledgeAgentis_used=false、SessionID 匹配、标准答案契合
QuestionAgent问题不重复、追问基于 Q+A+E
EvaluateAgent评估基于 Q+A、评估合理
FeedBackAgent反馈基于 Q+A+E、反馈类型匹配

追问退出条件#

flowchart TB
    A{dev >= 0.8 且 depth >= max?} -->|Yes| B[退出追问]
    A -->|No| C[继续生成追问]
  • deviation_score >= 0.8 depth >= max_followup_depth → 退出追问
  • deviation_score >= 0.8 → 该逻辑问题去重,不再出现
  • deviation_score < 0.8 → 同一逻辑问题允许重复

Interview State#

interview state
session_id: 会话ID
resume_id: 简历ID
current_series: 当前系列号
current_question: 当前问题
current_question_id: 当前问题ID
followup_depth: 追问深度
max_followup_depth: 最大追问深度
followup_chain: 追问链
series_history: 系列历史记录 {series_number: SeriesRecord}
answers: 回答记录 {question_id: Answer}
feedbacks: 反馈记录 {question_id: Feedback}
interview_mode: 面试模式
feedback_mode: 反馈模式
error_threshold: 连续答错阈值
created_at: 创建时间
error_count: 当前系列连续错误次数
AI Interview 中的Agent编排方案
https://sgjki547.top/posts/agent-arrange/
Author
SGJki
Published at
2026-04-08
License
CC BY-NC-SA 4.0