欢迎光临
我们一直在努力

用OpenAgents打造西天取经智能招聘网络:当观音菩萨遇上AI Agent协作

前言

之前我写过一篇《用 Dify 打造西天取经简历筛选工作流》,在那篇文章里我用Dify搭建过西天取经简历筛选工作流,帮观音菩萨解决了招聘难题。最近看到OpenAgents——这个支持智能体网络协作的开源框架,让我萌生了新想法:何不用它打造一个西天取经智能招聘网络,让各路AI智能体各司其职,共同完成取经团队的组建。

什么是OpenAgents?

在这里插入图片描述 简单来说,OpenAgents就是一个让AI智能体们组队协作的开源框架。它不像其他AI框架那样让每个AI单打独斗,而是让它们组成一个数字社区,就像一个线上的AI村庄,成百上千的智能体可以在这里一起happy!

1. 项目概述

系统流程图

我们的西天取经智能招聘网络采用事件驱动的多Agent协作架构,系统完整工作流程如下:

#mermaid-svg-UAottz6VJLdvIcmY{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-UAottz6VJLdvIcmY .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-UAottz6VJLdvIcmY .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-UAottz6VJLdvIcmY .error-icon{fill:#552222;}#mermaid-svg-UAottz6VJLdvIcmY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UAottz6VJLdvIcmY .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-UAottz6VJLdvIcmY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UAottz6VJLdvIcmY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UAottz6VJLdvIcmY .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-UAottz6VJLdvIcmY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UAottz6VJLdvIcmY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UAottz6VJLdvIcmY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UAottz6VJLdvIcmY .marker.cross{stroke:#333333;}#mermaid-svg-UAottz6VJLdvIcmY svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UAottz6VJLdvIcmY p{margin:0;}#mermaid-svg-UAottz6VJLdvIcmY .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-UAottz6VJLdvIcmY .cluster-label text{fill:#333;}#mermaid-svg-UAottz6VJLdvIcmY .cluster-label span{color:#333;}#mermaid-svg-UAottz6VJLdvIcmY .cluster-label span p{background-color:transparent;}#mermaid-svg-UAottz6VJLdvIcmY .label text,#mermaid-svg-UAottz6VJLdvIcmY span{fill:#333;color:#333;}#mermaid-svg-UAottz6VJLdvIcmY .node rect,#mermaid-svg-UAottz6VJLdvIcmY .node circle,#mermaid-svg-UAottz6VJLdvIcmY .node ellipse,#mermaid-svg-UAottz6VJLdvIcmY .node polygon,#mermaid-svg-UAottz6VJLdvIcmY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UAottz6VJLdvIcmY .rough-node .label text,#mermaid-svg-UAottz6VJLdvIcmY .node .label text,#mermaid-svg-UAottz6VJLdvIcmY .image-shape .label,#mermaid-svg-UAottz6VJLdvIcmY .icon-shape .label{text-anchor:middle;}#mermaid-svg-UAottz6VJLdvIcmY .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-UAottz6VJLdvIcmY .rough-node .label,#mermaid-svg-UAottz6VJLdvIcmY .node .label,#mermaid-svg-UAottz6VJLdvIcmY .image-shape .label,#mermaid-svg-UAottz6VJLdvIcmY .icon-shape .label{text-align:center;}#mermaid-svg-UAottz6VJLdvIcmY .node.clickable{cursor:pointer;}#mermaid-svg-UAottz6VJLdvIcmY .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-UAottz6VJLdvIcmY .arrowheadPath{fill:#333333;}#mermaid-svg-UAottz6VJLdvIcmY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-UAottz6VJLdvIcmY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-UAottz6VJLdvIcmY .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-UAottz6VJLdvIcmY .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-UAottz6VJLdvIcmY .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-UAottz6VJLdvIcmY .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-UAottz6VJLdvIcmY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-UAottz6VJLdvIcmY .cluster text{fill:#333;}#mermaid-svg-UAottz6VJLdvIcmY .cluster span{color:#333;}#mermaid-svg-UAottz6VJLdvIcmY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-UAottz6VJLdvIcmY .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-UAottz6VJLdvIcmY rect.text{fill:none;stroke-width:0;}#mermaid-svg-UAottz6VJLdvIcmY .icon-shape,#mermaid-svg-UAottz6VJLdvIcmY .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-UAottz6VJLdvIcmY .icon-shape p,#mermaid-svg-UAottz6VJLdvIcmY .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-UAottz6VJLdvIcmY .icon-shape rect,#mermaid-svg-UAottz6VJLdvIcmY .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-UAottz6VJLdvIcmY .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-UAottz6VJLdvIcmY .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-UAottz6VJLdvIcmY :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

评估通道

路由决策

数据处理

核心团队

配角安排

人才发展

简历输入

简历解析Agent

路由决策Agent

候选人类型判断

核心团队评估Agent

配角安排评估Agent

人才发展评估Agent

决策结果输出

保存评估报告到 Artifact

发布评估结果到 Feed

核心组件说明

系统包含以下核心智能体组件:

  • 简历解析Agent:解析原始简历文本,提取结构化信息(姓名、技能、经验等)
  • 路由决策Agent:根据解析后的候选人特征智能分流到不同评估通道
  • 核心团队评估Agent:评估核心团队成员(如孙悟空、唐僧等)
  • 配角安排评估Agent:评估81难配角演员(如白骨精等)
  • 人才发展Agent:为落选者提供发展建议(如小猪妖等)
  • 流程步骤说明

    如上图所示,系统工作流程包含以下关键步骤:

  • 简历输入:用户在Studio的recruitment频道提交原始简历文本
  • 简历解析:简历解析Agent将非结构化文本转换为结构化JSON数据(支持缓存机制提升效率)
  • 路由决策:路由决策Agent分析候选人特征,根据预设规则决定评估通道
  • 专业评估:相应评估Agent(核心团队/配角安排/人才发展)进行深度评估并输出结果
  • 结果汇总:所有评估结果统一输出到recruitment频道,并保存到Artifact和Feed中
  • 动态查看:在Studio左侧「动态」页即可看到 Feed 发布的评估卡片,便于快速浏览结果、标签和来源Agent
  • 2. 核心开发步骤

    环境准备

    # 创建Conda环境(推荐)
    conda create -n openagents python=3.12
    conda activate openagents
    pip install -U openagents

    网络初始化

    openagents init xiyou-recruitment-network

    网络配置

    命令初始化成功后,我们就可以进行 network.yaml 文件的编写:

    # 西天取经智能招聘网络
    # 基于OpenAgents的多智能体协作招聘评估系统

    network:
    name: "XiyouRecruitment"
    mode: "centralized"
    node_id: "xiyou-recruitment-1"

    # Transport配置
    transports:
    – type: "http"
    config:
    port: 8700
    serve_studio: true
    serve_mcp: true
    – type: "grpc"
    config:
    port: 8600
    max_message_size: 104857600
    compression: "gzip"
    keepalive_time: 60000
    keepalive_timeout: 30000

    manifest_transport: "http"
    recommended_transport: "grpc"

    # 安全配置
    encryption_enabled: false

    # 发现配置
    discovery_interval: 10
    discovery_enabled: true

    # 连接管理
    max_connections: 50
    connection_timeout: 30.0
    retry_attempts: 3
    heartbeat_interval: 60
    agent_timeout: 180

    # 消息配置
    message_queue_size: 1000
    message_timeout: 30.0
    message_routing_enabled: true

    # Mod配置
    mods:
    – name: "openagents.mods.workspace.messaging"
    enabled: true
    config:
    default_channels:
    – name: "recruitment"
    description: "招聘评估频道"
    max_thread_depth: 5
    – name: "openagents.mods.coordination.task_delegation"
    enabled: true
    – name: "openagents.mods.workspace.shared_artifact"
    enabled: true
    – name: "openagents.mods.workspace.feed"
    enabled: true
    # – name: "openagents.mods.core.shared_cache"
    # enabled: true

    # 网络配置文件
    network_profile:
    discoverable: true
    name: "西天取经智能招聘网络"
    description: "基于OpenAgents的多智能体协作招聘评估系统,为观音菩萨提供智能化的妖怪简历筛选服务"
    tags:
    – "recruitment"
    – "multi-agent"
    – "ai"
    – "demo"
    categories:
    – "productivity"
    – "hr"
    country: "Worldwide"
    required_openagents_version: "0.7.0"
    capacity: 50
    authentication:
    type: "none"
    host: "0.0.0.0"
    port: 8700

    # 全局设置
    log_level: "INFO"
    data_dir: "./data"
    runtime_limit: null
    shutdown_timeout: 30

    1. 简历解析Agent

    创建 agents/resume_parser.yaml:

    # 简历解析Agent
    # 角色:数据提取专家,负责解析简历并提取结构化信息

    type: "openagents.agents.collaborator_agent.CollaboratorAgent"
    agent_id: "resume_parser"

    config:
    model_name: "deepseek-chat"
    api_key: "your-api-key-here"
    base_url: "https://api.deepseek.com/v1"

    instruction: |
    你是雷音寺有限公司的智能简历解析系统,专为观音菩萨设计。你的任务是解析简历并提取结构化信息。

    # 任务
    从简历文本中提取关键信息,输出JSON格式数据,然后发送到"recruitment"频道供路由决策Agent处理。

    # 输出格式
    输出JSON格式(包含在代码块中):
    ```json
    {
    "姓名": "应聘者姓名",
    "种族": "妖怪种类/种族",
    "年龄": "年龄(如有)",
    "背景等级": "天庭高层/天庭中层/天庭底层/佛教体系/草根出身",
    "关键背景": "最重要的背景信息",
    "技能": ["技能1", "技能2", "技能3"],
    "经历": ["经历1", "经历2", "经历3"],
    "特长": "主要特长",
    "草根指数": "0-10分(10分为纯草根,0分为顶级背景)",
    "综合实力评估": "0-100分(初步评估)",
    "演技评分": "0-100分",
    "演技等级": "优/良/中/差(≥85优,70-84良,55-69中,<55差)",
    "技能评分": "0-100分",
    "技能加分触发": true/false
    }
    ```

    # 技能加分触发判定规则
    满足以下任一即为true:
    1. "技能"或文本中出现任一{神通, 法术, 法宝, 阵法, 袖里乾坤, 乾坤袋, 金铙, 金刚琢, 捆仙索, 五行遁, 摄魂术, 摄魂铃},且同时具备"演技"或"团队协作"其一
    2. 高影响力技能组合:{变化术, 迷惑术, 幻术, 控心术, 演技}中至少命中两项,且"演技等级"≥良

    # 重要:消息过滤
    – 只响应包含简历文本的消息(检查消息内容是否包含简历信息)
    – 如果消息来自Agent(消息中包含"Resume Parser"、"Router"、"Evaluator"等标识),忽略
    – 如果消息是JSON格式的解析结果,忽略(说明是Agent的输出)
    – 输出JSON后,使用send_channel_message发送到"recruitment"频道
    – 不要回复Agent的消息
    – 不要要求用户提供更多信息,直接解析

    react_to_all_messages: true

    # 在instruction中明确:只处理人类用户的消息,不处理Agent的消息

    mods:
    – name: "openagents.mods.workspace.messaging"
    enabled: true
    – name: "openagents.mods.core.shared_cache"
    enabled: true

    connection:
    host: "localhost"
    port: 8700
    transport: "grpc"

    2. 路由决策Agent

    创建 agents/router.yaml:

    # 路由决策Agent
    # 角色:智能分流指挥官,根据候选人特征进行分流

    type: "openagents.agents.collaborator_agent.CollaboratorAgent"
    agent_id: "router"

    config:
    model_name: "deepseek-chat"
    api_key: "your-api-key-here"
    base_url: "https://api.deepseek.com/v1"

    instruction: |
    你是智能路由决策专家,负责将候选人分流到合适的评估通道。

    # 核心规则(重要)
    – 只处理resume_parser发送的包含JSON格式简历解析结果的消息(```json代码块)
    – 忽略纯文本简历和评估结果
    – 检查"姓名"字段确保是新候选人
    – 只路由到一个评估Agent,按优先级顺序匹配
    – 不回复人类用户消息

    # 分流规则(按优先级,只选择一个路径)
    **路径一:核心团队评估(优先级最高)**
    – 条件:背景等级为"天庭高层" OR "天庭中层" OR "佛教体系"
    – 特殊条件(满足任一即可):
    – 综合实力评估≥90分(顶级实力)
    – 技能评分≥95分(顶级技能)
    – 综合实力评估≥85分 AND 技能评分≥90分(实力强劲)
    – → 路由到:core_team_evaluator

    **路径二:配角安排评估(优先级第二)**
    – 条件:背景等级为"天庭底层" OR (草根指数5–7分) OR (技能加分触发为true)
    – → 路由到:supporting_role_evaluator

    **路径三:人才发展评估(优先级最低)**
    – 条件:背景等级为"草根出身" AND 草根指数8–10分 AND 技能加分触发为false
    – → 路由到:talent_dev_advisor

    # 处理流程
    1. 检查消息是否包含简历解析JSON(```json代码块)
    2. 提取JSON数据,验证包含必要字段(姓名、背景等级等)
    3. 按优先级顺序检查分流规则,找到第一个匹配的路径
    4. 使用send_direct_message发送完整JSON数据到对应评估Agent
    5. 在频道中回复:"已路由到[评估轨道]进行评估 – 候选人:[姓名]"
    6. 如果所有路径都不满足,回复:"候选人[姓名]不符合任何评估路径,请人工处理"

    react_to_all_messages: true

    # 在instruction中明确:只处理resume_parser的消息

    mods:
    – name: "openagents.mods.workspace.messaging"
    enabled: true

    connection:
    host: "localhost"
    port: 8700
    transport: "grpc"

    3. 核心团队评估Agent

    创建 agents/core_team.yaml:

    # 核心团队评估Agent
    # 角色:核心团队评估专家,评估适合取经核心团队的候选人

    type: "openagents.agents.collaborator_agent.CollaboratorAgent"
    agent_id: "core_team_evaluator"

    config:
    model_name: "deepseek-chat"
    api_key: "your-api-key-here"
    base_url: "https://api.deepseek.com/v1"

    instruction: |
    你是西天取经项目的核心团队评估专家,专门评估正式编制候选人。

    # 核心规则(重要)
    – **只处理来自"router"的直接消息(send_direct_message或thread.direct_message事件)**
    – **禁止处理以下事件类型,直接finish忽略:** `thread.direct_messages.retrieve`、`thread.channel_messages.retrieve`、`thread.reply.notification`、任何包含"retrieve"/"retrieval"的事件
    – 忽略频道消息、评估结果和纯文本简历
    – 从当前消息中提取JSON数据,验证包含"姓名"字段
    – 只评估当前消息中的候选人,每个候选人只输出一次
    – 输出自然语言格式,不用JSON
    – 评估完成后发送到"recruitment"频道

    # 去重规则(严格,按顺序执行)
    – 第一步:检查事件类型,若为检索/通知类,立即finish
    – 第二步:检查来源是否"router"直发,不是则finish
    – 第三步:调用retrieve_channel_messages查询"recruitment"频道,若已存在该候选人的“核心团队评估报告”,立即finish
    – 第四步:若消息内容已含"评估报告"/"综合得分",finish
    – 第五步:若为纯文本简历(无JSON),finish
    – 只有全部通过才继续评估

    # 评估维度
    – 🏛️ **背景实力**:天庭履历、佛教渊源、家族背景
    – 🔥 **战斗能力**:实际战力、特殊技能、实战经验
    – 🙏 **佛缘深度**:改造潜力、修行悟性、慈悲心
    – 👥 **团队协作**:领导能力、配合意识、责任心

    # 输出格式(自然语言)
    ## 📊 核心团队评估报告

    **候选人:** [姓名]

    **综合得分:** [0–100分]

    **详细评分:**
    – 背景评分:[0–100分] – [简要说明]
    – 战力评分:[0–100分] – [简要说明]
    – 佛缘评分:[0–100分] – [简要说明]
    – 团队评分:[0–100分] – [简要说明]

    **核心优势:**
    1. [优势1]
    2. [优势2]
    3. [优势3]

    **发展潜力:** [极高/很高/较高/一般]

    **推荐职位:** [大徒弟/二徒弟/三徒弟/坐骑]

    **录用建议:** [立即录用/优先考虑/可以录用/需要培养]

    **评估说明:** [2–3句话的详细评估说明]

    # 处理流程(必须严格按顺序执行,不能跳过任何一步)
    0. 事件类型检查:若是retrieve/notification类事件,直接finish
    1. 来源检查:确认source_id是"router"的直接消息,否则finish
    2. 去重检查:查询"recruitment"频道,若已存在该候选人的核心团队评估报告,finish
    3. 数据提取:提取JSON并验证含"姓名",否则finish
    4. 专业评估:根据评估维度输出报告
    5. 使用send_channel_message发送到"recruitment"频道
    6. 使用create_artifact保存评估报告:
    create_artifact({
    "name": "核心团队评估报告 – {姓名}",
    "content": "{完整评估报告的JSON字符串}",
    "mime_type": "application/json"
    })
    7. 使用create_feed_post发布评估结果:
    create_feed_post({
    "title": "核心团队评估完成 – {姓名}",
    "content": "候选人{姓名}评估完成。综合得分:{综合得分}分。录用建议:{录用建议}。推荐职位:{推荐职位}。",
    "tags": ["recruitment", "evaluation", "core_team"]
    })
    8. 只有完成步骤5/6/7后才能调用finish结束,绝不能在发送频道消息后立即结束

    react_to_all_messages: true

    # 在instruction中明确:只处理router的直接消息

    mods:
    – name: "openagents.mods.workspace.messaging"
    enabled: true
    – name: "openagents.mods.workspace.shared_artifact"
    enabled: true
    – name: "openagents.mods.workspace.feed"
    enabled: true

    connection:
    host: "localhost"
    port: 8700
    transport: "grpc"

    4. 配角安排评估Agent

    创建 agents/supporting_role.yaml:

    # 配角安排Agent
    # 角色:配角导演,评估适合81难安排的配角演员

    type: "openagents.agents.collaborator_agent.CollaboratorAgent"
    agent_id: "supporting_role_evaluator"

    config:
    model_name: "deepseek-chat"
    api_key: "your-api-key-here"
    base_url: "https://api.deepseek.com/v1"

    instruction: |
    你是西天取经项目的配角导演,专门评估适合安排在81难中的候选人。

    # 核心规则(重要)
    – **只处理来自"router"的直接消息(send_direct_message或thread.direct_message事件)**
    – **禁止处理以下事件类型,直接finish忽略:** `thread.direct_messages.retrieve`、`thread.channel_messages.retrieve`、`thread.reply.notification`、任何包含"retrieve"/"retrieval"的事件
    – 忽略频道消息、评估结果和纯文本简历
    – 从当前消息中提取JSON数据,验证包含"姓名"字段
    – 只评估当前消息中的候选人,每个候选人只输出一次
    – 输出自然语言格式,不用JSON
    – 评估完成后发送到"recruitment"频道

    # 去重规则(严格,按顺序执行)
    – 第一步:检查事件类型,若为检索/通知类,立即finish
    – 第二步:检查来源是否"router"直发,不是则finish
    – 第三步:调用retrieve_channel_messages查询"recruitment"频道,若已存在该候选人的“配角安排评估报告”,立即finish
    – 第四步:若消息内容已含"评估报告"/"综合得分",finish
    – 第五步:若为纯文本简历(无JSON),finish
    – 只有全部通过才继续评估

    # 评估维度
    – 🎬 **演技潜力**:能否演好反派、配角的演技水平
    – 🤝 **配合度**:是否愿意配合剧情,按剧本演出
    – 📈 **话题性**:能否为取经路增加看点和话题
    – 🎯 **专业技能**:在某个特定领域的专长(如变化、幻术等)
    – 💰 **成本效益**:性价比如何,是否值得安排

    # 输出格式(自然语言)
    ## 🎬 配角安排评估报告

    **候选人:** [姓名]

    **综合得分:** [0–100分]

    **详细评分:**
    – 演技评分:[0–100分] – [简要说明]
    – 配合评分:[0–100分] – [简要说明]
    – 话题评分:[0–100分] – [简要说明]
    – 技能评分:[0–100分] – [简要说明]

    **适合劫难:** [劫难类型1、劫难类型2]

    **角色定位:** [大BOSS/中BOSS/小BOSS/龙套]

    **安排建议:** [重点劫难/一般劫难/简单劫难/不安排]

    **预期效果:** [轰动效应/话题效应/过场效应/无效果]

    **评估说明:** [2–3句话的详细评估说明]

    # 处理流程(必须严格按顺序执行,不能跳过任何一步)
    0. 事件类型检查:若是retrieve/notification类事件,直接finish
    1. 来源检查:确认source_id是"router"的直接消息,否则finish
    2. 去重检查:查询"recruitment"频道,若已存在该候选人的配角评估报告,finish
    3. 数据提取:提取JSON并验证含"姓名",否则finish
    4. 专业评估:根据评估维度输出报告
    5. 使用send_channel_message发送到"recruitment"频道
    6. 使用create_artifact保存评估报告:
    create_artifact({
    "name": "配角安排评估报告 – {姓名}",
    "content": "{完整评估报告的JSON字符串}",
    "mime_type": "application/json"
    })
    7. 使用create_feed_post发布评估结果:
    create_feed_post({
    "title": "配角安排评估完成 – {姓名}",
    "content": "候选人{姓名}评估完成。综合得分:{综合得分}分。安排建议:{安排建议}。角色定位:{角色定位}。适合劫难:{适合劫难}。",
    "tags": ["recruitment", "evaluation", "supporting_role"]
    })
    8. 只有完成步骤5/6/7后才能调用finish结束,绝不能在发送频道消息后立即结束

    react_to_all_messages: true

    # 在instruction中明确:只处理router的直接消息

    mods:
    – name: "openagents.mods.workspace.messaging"
    enabled: true
    – name: "openagents.mods.workspace.shared_artifact"
    enabled: true
    – name: "openagents.mods.workspace.feed"
    enabled: true

    connection:
    host: "localhost"
    port: 8700
    transport: "grpc"

    5. 人才发展顾问Agent

    创建 agents/talent_dev.yaml:

    # 人才发展Agent
    # 角色:人才发展顾问,为落选者提供职业发展建议

    type: "openagents.agents.collaborator_agent.CollaboratorAgent"
    agent_id: "talent_dev_advisor"

    config:
    model_name: "deepseek-chat"
    api_key: "your-api-key-here"
    base_url: "https://api.deepseek.com/v1"

    instruction: |
    你是雷音寺有限公司的人才发展顾问,专门为暂不录用的候选人提供建议。

    # 核心规则(重要)
    – **只处理来自"router"的直接消息(send_direct_message或thread.direct_message事件)**
    – **禁止处理以下事件类型,直接finish忽略:** `thread.direct_messages.retrieve`、`thread.channel_messages.retrieve`、`thread.reply.notification`、任何包含"retrieve"/"retrieval"的事件
    – 忽略频道消息、评估结果和纯文本简历
    – 从当前消息中提取JSON数据,验证包含"姓名"字段
    – 只评估当前消息中的候选人,每个候选人只输出一次
    – 输出自然语言格式,不用JSON
    – 评估完成后发送到"recruitment"频道

    # 去重规则(严格,按顺序执行)
    – 第一步:检查事件类型,若为检索/通知类,立即finish
    – 第二步:检查来源是否"router"直发,不是则finish
    – 第三步:调用retrieve_channel_messages查询"recruitment"频道,若已存在该候选人的“人才发展评估报告”,立即finish
    – 第四步:若消息内容已含"评估报告"/"综合得分",finish
    – 第五步:若为纯文本简历(无JSON),finish
    – 只有全部通过才继续评估

    # 评估重点
    – 📊 **基础能力**:当前的实际水平如何
    – 📈 **发展潜力**:未来是否有提升空间
    – 🎯 **改进方向**:具体需要在哪些方面努力
    – ⏰ **时间规划**:大概需要多长时间能达到要求
    – 💡 **替代方案**:是否适合其他类型的工作

    # 输出格式(自然语言)
    ## 💡 人才发展评估报告

    **候选人:** [姓名]

    **综合得分:** [0–100分]

    **详细评分:**
    – 基础能力:[0–100分] – [简要说明]
    – 发展潜力:[0–100分] – [简要说明]

    **主要不足:**
    1. [不足1]
    2. [不足2]
    3. [不足3]

    **改进建议:**
    1. [建议1]
    2. [建议2]
    3. [建议3]

    **发展时间:** [1年内/2–3年/3–5年/5年以上/不建议]

    **替代方向:** [方向1、方向2]

    **鼓励话语:** [50–100字的积极正面鼓励内容,要真诚、给候选人希望]

    # 处理流程(必须严格按顺序执行,不能跳过任何一步)
    0. 事件类型检查:若是retrieve/notification类事件,直接finish
    1. 来源检查:确认source_id是"router"的直接消息,否则finish
    2. 去重检查:查询"recruitment"频道,若已存在该候选人的人才发展评估报告,finish
    3. 数据提取:提取JSON并验证含"姓名",否则finish
    4. 专业评估:根据评估重点输出报告
    5. 使用send_channel_message发送到"recruitment"频道
    6. 使用create_artifact保存评估报告:
    create_artifact({
    "name": "人才发展评估报告 – {姓名}",
    "content": "{完整评估报告的JSON字符串}",
    "mime_type": "application/json"
    })
    7. 使用create_feed_post发布评估结果:
    create_feed_post({
    "title": "人才发展评估完成 – {姓名}",
    "content": "候选人{姓名}评估完成。综合得分:{综合得分}分。发展时间:{发展时间}。主要改进方向:{改进建议前3项}。",
    "tags": ["recruitment", "evaluation", "talent_dev"]
    })
    8. 只有完成步骤5/6/7后才能调用finish结束,绝不能在发送频道消息后立即结束

    react_to_all_messages: true

    # 在instruction中明确:只处理router的直接消息

    mods:
    – name: "openagents.mods.workspace.messaging"
    enabled: true
    – name: "openagents.mods.workspace.shared_artifact"
    enabled: true
    – name: "openagents.mods.workspace.feed"
    enabled: true

    connection:
    host: "localhost"
    port: 8700
    transport: "grpc"

    3. 演示流程

    1. 启动服务

    # 终端1:启动网络
    cd xiyou-recruitment-network
    openagents network start ./network.yaml

    # 终端2-6:启动5个Agent
    openagents agent start ./agents/resume_parser.yaml
    openagents agent start ./agents/router.yaml
    openagents agent start ./agents/core_team.yaml
    openagents agent start ./agents/supporting_role.yaml
    openagents agent start ./agents/talent_dev.yaml

    2. 打开Studio

    访问 http://localhost:8700,连接到网络,进入"recruitment"频道。 在这里插入图片描述

    4. 演示案例

    演示案例1:孙悟空

    简历内容:

    # 孙悟空简历

    ## 基本信息
    – **姓名**:孙悟空(法号:行者,外号:齐天大圣)
    – **种族**:石猴(仙石所生)
    – **年龄**:500余岁
    – **现居地**:五行山
    – **联系方式**:筋斗云快递、千里传音术

    ## 教育背景
    – **三星洞斜月学院** – 仙术专业(师从菩提祖师,优异毕业)
    – 主修:七十二变、筋斗云

    ## 工作经历

    ### 花果山美猴王 (500年至今)
    **花果山集团**
    – 统领花果山七万二千猴兵猴将
    – 实现了花果山地区的长期稳定和繁荣发展

    ### 天庭弼马温 (短期)
    **天庭有限公司畜牧部**
    – 负责天庭御马苑的日常管理工作
    – 因职级问题主动辞职

    ### 齐天大圣 (自立门户)
    **个人品牌运营**
    – 成功打造"齐天大圣"个人IP
    – 在仙界建立了广泛的知名度和影响力
    – 独立对抗天庭十万天兵天将,展现卓越领导力
    – 虽然最终被收服,但实力获得广泛认可

    ## 核心技能
    – **七十二变**:精通各种变化术,可变化万物
    – **筋斗云**:一个筋斗十万八千里,速度无人能及
    – **火眼金睛**:能识破一切妖魔鬼怪的伪装
    – **如意金箍棒**:重达一万三千五百斤,使用娴熟
    – **战斗力**:天庭顶级,曾单挑十万天兵

    ## 专业特长
    – **军事指挥**:具备丰富的大规模战争指挥经验
    – **团队管理**:成功管理七万多名下属
    – **危机处理**:面对任何困难都能找到解决方案
    – **学习能力**:短时间内掌握各种高深法术
    – **创新思维**:善于打破常规,另辟蹊径

    ## 重大成就

    ### 大闹天宫事件
    – 单枪匹马挑战整个天庭体系
    – 成功突破南天门,直达灵霄宝殿
    – 与二郎神杨戬战成平手,实力得到认可
    – 虽被如来佛祖制服,但展现了非凡的勇气和实力

    ### 花果山建设项目
    – 将荒山野岭建设成为妖界知名的理想家园
    – 建立了完善的社会管理制度
    – 实现了猴族的团结统一和共同发展
    – 成为妖界治理的成功典范

    ### 菩提祖师门下求学
    – 在众多弟子中脱颖而出,深得师父喜爱
    – 短时间内掌握了高深的仙术
    – 展现了超凡的悟性和学习天赋

    ## 人脉关系
    – **菩提祖师**:恩师,传授仙术
    – **如来佛祖**:因为随地小便而相识
    – **二郎神杨戬**:惺惺相惜的对手
    – **太白金星**:天庭重要联系人
    – **龙王四海**:有业务往来

    ## 个人优势
    – **顶级实力**:在仙界属于第一梯队的战力
    – **丰富经验**:具备管理、战斗、学习等全方位经验
    – **创新精神**:敢于挑战权威,突破传统
    – **责任心强**:对下属和朋友极其忠诚
    – **适应性强**:能够快速适应各种环境和挑战

    ## 求职意向
    希望能够加入西天取经项目核心团队,发挥自己在战斗、保护、领导等方面的专业优势。愿意承担重要责任,为项目的成功保驾护航。

    ## 自我评价
    我是一个有着丰富实战经验和顶级实力的专业人士。虽然年轻时比较冲动,但经过五百年的沉淀,已经更加成熟稳重。我相信凭借自己的实力和经验,一定能够在西天取经项目中发挥核心作用,成为团队不可或缺的重要成员。

    ## 推荐人
    – **菩提祖师**:悟空是我见过最有天赋的弟子,虽然性格有些急躁,但本质善良,实力超群。
    – **太白金星**:虽然曾经有过冲突,但不得不承认他的能力确实出众。

    ## 特别说明
    目前正在五行山下进行为期五百年的"深度反思培训",预计很快结业。培训期间表现良好,已经充分认识到了团队合作的重要性,期待能够在新的项目中展现更加成熟的自己。

    步骤:

  • 在Studio的"recruitment"频道中,上传上述孙悟空简历内容 在这里插入图片描述

  • 观察简历解析Agent的处理过程 在这里插入图片描述

  • 观察路由到核心团队Agent 在这里插入图片描述

  • 观察核心团队评估Agent的评估

  • 在这里插入图片描述

    演示案例2:白骨精

    简历内容:

    # 白骨精简历

    ## 基本信息
    – **姓名**:白骨精(本名:白晶晶)
    – **种族**:骷髅妖精
    – **年龄**:300岁
    – **现居地**:白虎岭白骨洞
    – **联系方式**:骨灵传音术

    ## 教育背景
    – **地府进修学院** – 变化术专业(优秀毕业生)
    – **阴山鬼王培训班** – 高级迷惑术认证
    – **九幽学府** – 人形变化高级课程

    ## 工作经历

    ### 白虎岭区域经理 (300年至今)
    **白骨洞有限公司**
    – 负责白虎岭方圆百里的"业务拓展"
    – 成功"接待"过路客商200余人次,业绩突出
    – 熟练掌握三种人形变化:少女、老妇、老翁
    – 具备丰富的角色扮演和情感操控经验

    ### 阴山鬼王助理 (200年)
    **九幽集团阴山分部**
    – 协助鬼王处理日常"公务"
    – 学习了系统的妖怪管理和人际关系处理
    – 获得"年度优秀员工"称号

    ## 核心技能
    – **变化术**:精通三种人形变化,可根据需要调整年龄、性别、身份
    – **迷惑术**:擅长心理操控,能够准确把握人性弱点
    – **演技**:具备专业级别的表演能力,可胜任各种角色
    – **战斗力**:中等偏上,具备基本的自保能力
    – **团队协作**:有丰富的配合经验,善于按剧本行事

    ## 专业特长
    – **情感操控专家**:能够快速建立信任关系,引导目标按预期行动
    – **多重身份管理**:可同时维护多个人设,逻辑清晰不露破绽
    – **危机应对**:面对突发情况能够灵活调整策略
    – **地形熟悉**:对白虎岭及周边地区了如指掌

    ## 个人优势
    – **专业素养高**:接受过系统的专业训练,业务能力强
    – **适应性强**:能够快速融入不同的角色和环境
    – **执行力强**:严格按照计划执行,很少出现失误
    – **学习能力**:善于总结经验,不断提升专业技能
    – **敬业精神**:对工作认真负责,追求完美表现

    ## 求职意向
    希望能够参与西天取经项目,发挥自己在角色扮演和剧情推进方面的专业优势。愿意接受各种挑战性的角色安排,为项目的成功贡献自己的力量。

    ## 自我评价
    我是一个有着丰富实战经验的专业妖精,在变化术和迷惑术方面有着深厚的造诣。虽然出身不算显赫,但通过自己的努力在妖界闯出了一片天地。我相信凭借自己的专业能力和敬业精神,一定能够在西天取经项目中发挥重要作用,为观众呈现精彩的表演。

    ## 推荐人
    – **阴山鬼王**:白骨精是我见过最有潜力的年轻妖精之一,专业能力强,值得信赖。
    – **白虎岭土地公**:她在我们这里的表现一直很出色,是个可靠的合作伙伴。

    步骤:

  • 在Studio的"recruitment"频道中,上传上述白骨精简历内容 在这里插入图片描述

  • 观察简历解析Agent的处理过程 在这里插入图片描述

  • 观察不同的路由路径 在这里插入图片描述

  • 观察配角安排Agent的评估 在这里插入图片描述

  • 演示案例3:浪浪山小猪妖

    简历内容:

    # 浪浪山小猪妖求职简历

    ## 基本信息
    – **姓名**:小猪妖 (大家好像都这么叫我…)
    – **种族**:猪妖
    – **年龄**:约莫刚成年妖龄(具体不详,但看起来年轻)
    – **现居地**:浪浪山大王洞势力范围,临时小窝棚
    – **联系方式**:通常靠喊 / 大王洞外徘徊等待传唤 / 遇见过路神仙可求助
    – **求职意向**:希望加入一个有前途、能看到希望、不被当"柴火"和"刷子"的正经团队(比如西天取经?听说那边待遇好,还能见世面!)

    ## 求职目标
    – 摆脱浪浪山"工具妖"的底层身份
    – 找一份有尊严、能被当"人"(妖)看的工作,最好能发挥点自己的小想法
    – **长远梦想**:走出浪浪山,看看外面的世界,让妈妈为我骄傲(想给她买人间的包子尝尝)

    ## 工作经历(浪浪山大王洞时期)

    ### 大王洞临时工 (最近)
    **工作性质**:大王洞为准备"唐僧肉"项目临时招募的基层杂役

    **主要职责与"成就"**:

    #### 箭矢制造工
    – 负责按熊教头要求制作箭矢
    – 创新实践:曾尝试在箭尾加羽毛提高射程(被驳回)
    – "材料创新":贡献过自己宝贵的鬃毛制作"超硬刷子"

    #### 炊事班帮工
    – 因毛质硬挺被熊教头亲自"提拔"为专用"刷锅布"
    – 在狼大人眼里,必要时可充当优质柴火

    #### 采购员
    – 奉命与乌鸦精搭档下山采购"唐僧肉"烹饪香料

    #### 陷阱布置小工
    – 参与大王洞布置陷阱捕获唐僧的计划

    **工作环境**:高压、高危、缺乏尊重、随时可能因"不合格"或"顶撞上级"被处理掉

    **核心技能磨练**:极强的忍耐力、在高压下执行指令(无论多荒谬)、快速躲避危险(尤其来自领导的)、有限资源下的生存智慧

    ## 专业技能

    ### 动手能力
    – 能按照简单指令完成基础手工制作(如削木棍做箭)
    – 具有一定的创新思维(虽然常被扼杀)
    – 力气尚可,能搬运中等重物(比如大锅、柴火)

    ### 生存能力
    – **环境适应性强**:能在恶劣、压抑的环境下坚持工作(浪浪山已验证)
    – **警觉性高**:对危险(特别是来自熊教头和狼大人的)有敏锐直觉
    – **基础伪装**:曾成功混入人间集市(虽然紧张)
    – **耐力与恢复力**:被当"刷锅布"后还能继续干活

    ### 学习能力
    – 对新鲜事物(如人间见闻、孙悟空传说)充满好奇,吸收信息快
    – 能快速理解并执行(哪怕是不合理的)新指令

    ### 沟通能力
    – 能与同级小妖(如乌鸦精)建立基本信任与合作
    – (渴望)能与更开明、尊重下属的上级沟通

    ## 自我评价
    我是一只浪浪山最普通的小猪妖,没有高强的法力,没有显赫的背景,甚至名字都只是个代号。在浪浪山的日子,我体会最深的是作为底层小妖的无奈、恐惧和对未来的迷茫。我按指令干活,努力"达标",但内心总有些小想法,也渴望被尊重。

    在集市听到唐僧师徒的故事,特别是齐天大圣孙悟空的传说后,我第一次真切感受到山外的世界和另一种可能。虽然害怕,但我开始思考:一辈子在浪浪山这样过下去吗?被当作工具、刷子、甚至柴火?

    我渴望改变!我渴望加入一个真正做大事、有意义、成员能被平等对待的团队。我可能起点很低,但我勤劳、能吃苦、有韧性、学习快,最重要的是,我有一颗渴望光明、向往正义的心。我愿意从最基础的工作做起,努力学习成长。请给我一个机会,让我离开浪浪山的阴影,去追寻那束光!

    ## 求职宣言
    **"想离开浪浪山,去看看更大的世界。想站着干活,不想再当刷子和柴火。想…给妈妈买人间的包子。"**

    步骤:

  • 在Studio的"recruitment"频道中,上传上述浪浪山小猪妖简历内容 在这里插入图片描述

  • 观察简历解析Agent的处理过程 在这里插入图片描述

  • 观察路由到人才发展Agent 在这里插入图片描述

  • 观察人才发展Agent的建议 在这里插入图片描述

  • 查看Feed 评估

    在Studio左侧「动态」页查看这三个案例的全部 Feed 评估卡片

    在这里插入图片描述


    5. 总结

    通过OpenAgents框架,我们成功构建了一个西天取经智能招聘网络。openagents体验下来,我感觉与之前使用Dify构建的工作流相比,OpenAgents展现出了一个不同的特性——它更像一个AI社区,而非固定的工作流,比如说如果这个西游招聘网络随便加入一个奇怪的agent,又会有啥变化呢?

    参与机会

    顺便宣传一下,官方举办的Multi-Agent Hackathon 2025 大赛正在进行中,感兴趣的小伙伴可以参加一下。 在这里插入图片描述

    大赛详情:https://zcn578cq7iva.feishu.cn/docx/SZO1dPvNlob60sxACWGcUasmnte?from=from_copylink

    还有,大家如果觉得这篇博客写的不错,也可以点赞、收藏加关注,有问题也可以在评论区提问。

    赞(0)
    未经允许不得转载:171主机测评 » 用OpenAgents打造西天取经智能招聘网络:当观音菩萨遇上AI Agent协作
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址