Web 开发者基于 Dify 构建 AI Agent 招聘系统
Web 开发者利用 Dify 平台构建 AI Agent 应用。文章通过类比前端状态管理与提示词工程,解析 Agent 核心原理。实战演示创建简历筛查 Agent,通过 Vue3 调用 API 实现低代码 HR 招聘系统。涵盖上下文管理、结构化输出、系统集成及隐私保护方案,帮助开发者将工程思维迁移至 AI 开发。

Web 开发者利用 Dify 平台构建 AI Agent 应用。文章通过类比前端状态管理与提示词工程,解析 Agent 核心原理。实战演示创建简历筛查 Agent,通过 Vue3 调用 API 实现低代码 HR 招聘系统。涵盖上下文管理、结构化输出、系统集成及隐私保护方案,帮助开发者将工程思维迁移至 AI 开发。


在 Web 开发中,我们常说:'需求不清晰,返工十次'。同样,在 AI 应用开发中,'提示词(Prompt)不精准,输出全跑偏'。
<UserCard /> 组件,需要传入 name、avatar、role 等 props;在 Dify 中,你也需要设计一个结构化的提示词模板,明确告诉 AI:'请根据以下字段生成面试评价:候选人姓名、岗位、技术栈、沟通能力、项目经验'。因此,Web 开发者不是'从零开始学 AI',而是'用已有工程思维驾驭 AI'。

Dify(https://dify.ai)是一个开源且支持私有部署的 LLM 应用开发平台,其核心价值在于:
| Web 开发概念 | Dify 中的对应能力 |
|---|---|
| RESTful API | Dify 提供标准 HTTP API,可被任何前端/后端调用 |
| 环境变量管理 | 支持密钥、模型参数、上下文长度等配置 |
| 工作流编排 | 可视化构建多步骤 Agent 流程(如:先解析 PDF 简历,再打分) |
| 前端组件 | 内置聊天界面,也可通过 SDK 嵌入 React/Vue 应用 |
| 日志与监控 | 自动记录每次调用输入/输出,便于调试 |
对 Web 开发者而言,Dify 就像一个'AI 微服务'——你只需关注如何调用它,而不是如何训练模型。

在 React 中,你用 useState 或 Redux 管理用户输入、表单状态;在 Dify 中,对话上下文(Context)就是 Agent 的'全局状态'。例如:
【系统提示】你是一个 HR 助手,请始终记住:
- 当前岗位:Java 后端工程师
- 必须考察:Spring Boot、MySQL、分布式事务
- 评分标准:1-5 分,5 分为优秀
【用户输入】这是张三的简历:...(略)
技巧:把岗位 JD、评分规则等'静态信息'放在系统提示中,避免每次重复传递。
设计一个可复用的提示词模板,就像定义一个 React 组件的 props 类型:
# Dify 中的提示词模板(YAML 风格)
岗位名称:{{job_title}}
技能要求:{{required_skills}}
简历内容:{{resume_text}}
请按以下 JSON 格式输出:
{"score": 0-5,"strengths":["...","..."],"weaknesses":["...","..."]}
这样,你的前端只需传入 job_title、required_skills、resume_text 三个变量,即可获得结构化输出。

我们将构建一个包含四大模块的系统:
技术栈:Dify(后端 AI 逻辑) + Vue3(前端展示) + Spring Boot(可选,用于对接企业 HR 系统)
你是一名资深 HR,请根据以下岗位要求对候选人简历进行评分(1-5 分),并指出优缺点。
【岗位要求】{{job_description}}
【简历内容】{{resume}}
请严格按以下 JSON 格式返回,不要包含其他文字:
{
"overall_score": 0,
"technical_match": 0,
"experience_match": 0,
"comments": { "strengths": [], "weaknesses": [] }
}
<template>
<div>
<textarea v-model="resume" placeholder="粘贴简历内容"></textarea>
<button @click="screenResume">智能筛查</button>
<pre>{{ result }}</pre>
</div>
</template>
<script setup>
import { ref } from 'vue'
const resume = ref('')
const result = ref('')
const screenResume = async () => {
const response = await fetch('https://api.dify.ai/v1/chat-messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
inputs: {
job_description: '熟悉 Spring Boot, MySQL, 3 年以上经验',
: resume.
},
: ,
: ,
:
})
})
data = response.()
result. = .(data.)
}
注意:Dify 的 API 返回字段为 answer,内容即为你在提示词中要求的 JSON 字符串。
每个 Agent 都是独立的 Dify 应用,可通过同一套前端调用。

score 必须为数字);结合 Few-shot 示例(在提示词中加入 1-2 个正确输出样例)。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online