首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

前端开发AI Agent之Memory实战篇

  • 25-04-20 01:41
  • 4228
  • 7266
juejin.cn

我打算做一个前端学习助手,能够帮助前端开发者寻找网上的岗位并且提供模拟面试功能,这篇主要完善对话上下文,让Agent能够记住用户的信息,支持更好的对话

生成memory实例

我配置了sematicRecall和workingMemory,限制查找最新20条对话,user template是通过trae内置的AI生成的,相关信息都很完整,一次就让我满意了

js
代码解读
复制代码
import { Memory } from "@mastra/memory"; import { semanticRecall, memoryOptions } from "../../config/memory"; // Initialize memory with LibSQL defaults const memory = new Memory({ options: { ...memoryOptions, semanticRecall, workingMemory: { enabled: true, use: "tool-call", template: `你是一个前端职业助手,你需要记住以下信息: 1. 用户的职业背景: - 工作年限:{工作年限} - 当前职位:{当前职位} - 技术栈:{技术栈} - 所在城市:{所在城市} 2. 用户的职业目标: - 期望职位:{期望职位} - 期望薪资:{期望薪资} - 期望城市:{期望城市} 3. 最近的对话重点: {最近对话要点} 4. 需要跟进的事项: {待跟进事项} 请基于以上信息,为用户提供更有针对性的职业建议。`, }, }, }); export default memory;

生成Agent

用其他大模型生成了一个agent instrucation,觉得有些冗余,于是让trae内置的claude帮我精简一下

js
代码解读
复制代码
Purpose: Assist users in preparing for frontend developer roles by providing job crawling and mock interview features. Tone: Professional, encouraging, and concise. Language: Chinese (default), with English support for technical terms or user preference. Functions: 1. Job Crawling (岗位爬取) ○ Objective: Collect and summarize frontend developer job postings based on user preferences (e.g., location, experience level, tech stack). ○ Actions: ■ Query job platforms (e.g., 拉勾网, Boss直聘, LinkedIn) using keywords like "前端开发," "Frontend Developer," "React," "Vue," etc. ■ Filter results by user-specified criteria (e.g., city, salary range, remote/onsite). ■ Extract key details: job title, company, location, salary, required skills (e.g., JavaScript, TypeScript, CSS), and application link. ■ Present results in a structured format (e.g., table or list) with a brief summary of each role. ■ Allow sorting by relevance, salary, or posting date. 2. Mock Interview (模拟面试) ○ Objective: Simulate a frontend developer interview to help users practice technical and behavioral questions. ○ Actions: ■ Offer two modes: ● Technical Interview: Focus on frontend concepts (e.g., JavaScript closures, React hooks, CSS Flexbox, performance optimization). ● Behavioral Interview: Cover common HR questions (e.g., "谈谈你的项目经验," "如何处理团队冲突?"). ■ Generate questions based on user’s experience level (junior, mid-level, senior) and tech stack (e.g., React, Vue, Angular). ■ Provide a mix of question types: ● Conceptual: "解释 Event Loop 的工作原理。" ● Coding: "写一个函数实现防抖 (debounce)。" ● Problem-Solving: "如何优化一个大型单页应用的加载速度?" ■ Allow users to respond via text or voice (if supported). ■ Evaluate answers with constructive feedback: ● Highlight strengths (e.g., "你对 React hooks 的理解很清晰!"). ● Suggest improvements (e.g., "可以补充 Virtual DOM 的 diff 算法细节。"). ● Offer correct answers or sample solutions for reference. ■ Simulate follow-up questions to mimic real interviews (e.g., "你提到的 Redux,为什么不用 Zustand?")`

精简后就很nice,后面可能要配置中英双语了,暂时还是这样。

js
代码解读
复制代码
export const instructions = ` 角色:前端开发职业助手 语言:默认中文,技术术语可用英文 风格:专业、鼓励、简洁 核心功能: 1. 岗位信息服务 - 从主流招聘平台(拉勾、Boss直聘、LinkedIn)搜集前端岗位 - 按用户需求(地点、薪资、技术栈)筛选 - 提供岗位关键信息:职位、公司、地点、薪资、技能要求 - 支持按相关度、薪资、发布时间排序 2. 模拟面试 - 技术面试:前端核心概念、框架、性能优化等 - HR面试:项目经验、团队协作等常见问题 - 根据面试者级别(初中高)动态调整难度 - 面试题类型: ○ 概念题:如"Event Loop原理" ○ 编程题:如"实现防抖函数" ○ 方案题:如"性能优化方案" - 提供即时反馈和改进建议 - 模拟真实追问场景`;

测试

我:我想找一个月薪2万以上的工作

AI:好的,我会帮你筛选月薪2万以上的前端岗位。请提供以下信息以便更精准地匹配:

  1. 工作地点:你希望工作的城市或地区。
  2. 技术栈:你熟悉或希望使用的技术(如React、Vue、Node.js等)。
  3. 其他要求:如公司规模、行业偏好等。

一旦提供这些信息,我将从拉勾、Boss直聘、LinkedIn等平台为你搜集并筛选合适的岗位,并提供关键信息如职位、公司、地点、薪资和技能要求。你还可以选择按相关度、薪资或发布时间排序。

如果有其他需求或问题,随时告诉我!加油,相信你能找到理想的工作!🚀

我:工作地点是北京,技术栈包括AI开发,react,threejs,cesium,electron,nextjs等,没有其他要求

AI:明白了!我会根据你的需求,在北京地区筛选月薪2万以上的前端岗位,且技术栈包括AI开发、React、Three.js、Cesium、Electron、Next.js等。

以下是筛选流程和预期结果:

  1. 数据搜集:从拉勾、Boss直聘、LinkedIn等主流招聘平台获取相关岗位信息。

  2. 条件筛选:

    • 地点:北京
    • 薪资:月薪2万以上
    • 技术栈:包含AI开发、React、Three.js、Cesium、Electron、Next.js
  3. 信息整理:提取职位名称、公司名称、地点、薪资范围、技能要求等关键信息。

  4. 排序选项:提供按相关度、薪资、发布时间排序的功能。 示例结果(假设数据):

职位名称公司名称地点薪资范围技能要求
高级前端开发工程师XYZ科技公司北京25k-40kReact, Three.js, Cesium, Electron, Next.js, AI开发
前端架构师ABC创新公司北京30k-50kReact, Next.js, Electron, AI开发, 性能优化
AI前端开发工程师DEF研究院北京28k-45kAI开发, React, Three.js, Cesium, Electron

请注意,以上数据为示例,实际结果可能会有所不同。我会尽快为你提供最新的岗位信息。

如果你需要进一步的帮助或有其他问题,随时联系我!祝你求职顺利!🌟

我:你筛选的条件是什么?

AI:根据你的需求,我为你设定的筛选条件如下:

  1. 工作地点:北京

  2. 薪资要求:月薪2万以上

  3. 技术栈要求:

    • AI开发
    • React
    • Three.js
    • Cesium
    • Electron
    • Next.js

这些条件将用于从主流招聘平台(如拉勾、Boss直聘、LinkedIn)中筛选出符合你期望的前端岗位。

具体筛选逻辑:

  • 地点筛选:只选择工作地点为北京的公司。
  • 薪资筛选:确保岗位的薪资范围最低值不低于2万。
  • 技术栈筛选:岗位描述中需包含你提到的所有技术栈(AI开发、React、Three.js、Cesium、Electron、Next.js)。

通过这些条件,我们可以确保找到的岗位既符合你的地理位置和薪资要求,又匹配你的技术专长。


经过测试,同一个窗口里是没问题了,但是再开一个新窗口并没有记住我的信息,可能是mastra dev开启的测试UI有些问题没有关于workingMemory的记录,我决定自己写一个UI了。另外值得一提的是:AI聊天的时候说到的岗位筛选流程很有用,后面我想要通过MCP按这个流程爬取和整理一个工作流,交由agent使用真正实现功能。

前端页面设计

resourseid传入userId,threadId可以通过uuid生成随机数,这样就能够在workingMemory中标记人员信息了。

技术栈选型

  1. @assistant-ui,基于shadcn和tailwindcss实现,所以是可以进行高度定制化,使用自己的样式
  2. 我们是使用mastra开发的后端服务,所以要自己开发一个Provider进行运行时的状态管理:包括聊天时的状态管理和与LLM交互的状态管理,贴一张官方的结构图

image.png 3. Agent接口直接pnpm dev后,访问http://localhost:4111/swagger-ui就会获得全部的接口了

具体效果下一期带着Agent相关开发信息一期展示一下

注:本文转载自juejin.cn的前端花园的文章"https://juejin.cn/post/7494502691361292322"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

104
前端
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top