作者:互联网 时间: 2026-07-11 09:04:52
app.mokahr.com/social-recr…
这份招聘要求,表面上是一份岗位描述,本质上是一张能力地图。它暗含了两层能力的叠加:
很多人容易把这两层混为一谈,结果学得又杂又浅,哪个都不精。
下面,我们分四步走:
你可以把它当作一份三个月到半年的自学地图,也可以当作面试前的查漏补全清单。
把原文拆成两段来看,逻辑会更清晰:
能熟练使用AI Agent工具开发软件,并且能在完全没有经验的技术领域里,靠AI辅助也能写出有质量保证的代码。
要求你不仅是Agent产品的重度用户,还要理解这些产品背后的运行机制——LLM怎么调用、上下文怎么管理、工具怎么调用、多个Agent怎么协作。
JD要的不是“会用AI写代码的人”,而是 “既能用Agent高效交付,又能讲清楚Agent内部原理,甚至能自己动手改造Agent运行环境的人”。
下面按照一个Agent系统实际运行的顺序来讲,而不是按字母表。这样更容易建立整体图景,而不是记一堆孤立的概念。
LLM API就是你调用大模型的接口:发一段文本过去,模型返回一段文本。
新手容易忽略三个关键点:
后面所有Agent机制,本质上都是在解决同一个问题:在一次次LLM API调用之间,怎么组织好传给模型的内容,以及怎么处理返回的内容。吃透了API调用,后面的概念都会好懂很多。
这是JD里最容易被新手忽略、但资深工程师格外看重的一点。
大模型每生成一个token,都要用到之前所有token算出的注意力中间结果(Key和Value,简称KV)。如果每次都从头重算,速度慢、成本高。KV Cache就是把这些中间结果缓存下来,当新一轮请求的开头部分和上一轮完全一样时,直接复用缓存,只计算新增部分。
实际影响:如果你频繁在对话历史前面插入或修改内容(比如动态改写system prompt),会导致KV Cache频繁失效,拖慢速度、推高成本。这也是为什么很多Agent系统的设计原则是 “只在末尾追加,不改前面已生成的部分”。
理解了这一点,你才能看懂主流Agent产品的上下文管理策略为什么那样设计——这往往是面试中区分“用过”和“懂原理”的关键问题。
一个Agent本质上就是一个循环:
这个模式也常被称为 ReAct(Reasoning + Acting)。
新手最容易犯的错误,是把Agent当成“一次性生成答案的高级版”。实际上,Agent的关键在于 能在多轮循环中不断根据新信息调整策略——这是Agent和普通对话机器人的本质区别,没有这个循环就不算Agent。
模型本身只会生成文本,不能真的查数据库、发邮件、执行代码。Tool Use让模型在生成文本时能“声明”它想调用某个工具、传什么参数,由外部程序真正执行,再把结果返回给模型。
具体机制是:你在调用API时,告诉模型有哪些工具可用(名称、描述、参数格式),模型需要时会返回结构化的调用请求,而不是普通文本。
这是所有Agent产品能“做事”而不只是“聊天”的技术基础。
这两个概念紧密相关,放在一起讲。
新手容易忽视的一点是:好的Planning不是一次性生成完整计划就不再变,而是要在Agent Loop中不断根据执行结果动态调整。这也是为什么Planning和Agent Loop是紧密绑定的概念。
对应到JD里“无经验领域也能靠AI高质量编程”这条,靠的正是这种规划推理能力——拆解陌生技术栈的学习路径,然后逐步执行。
与其把所有操作细节塞进system prompt,让模型每次重新“想起来”,不如把某类任务的最佳实践写成独立的文档或脚本包(比如“如何生成规范的Word文档”),让Agent按需加载。
好处是:
MCP出现之前,想让Agent接入Gmail、Slack、GitHub、数据库,每接一个服务都要单独写适配代码,不同Agent产品之间也无法复用。
MCP是一个开放协议,定义了Agent和外部工具/数据源之间统一的通信标准。可以理解成 “Agent界的USB接口” ——只要服务实现了MCP,任何支持MCP的Agent客户端都能直接接入,不用重复造轮子。
这是目前Agent生态发展最快的方向之一,也是搭建企业级Agent系统的必备标准。
LLM本身不记得任何历史,每次调用都要把需要的上下文重新传回去。Memory机制通常分三层:
| 记忆类型 | 存储内容 | 技术载体 |
|---|---|---|
| 短期/工作记忆 | 当前任务的中间状态 | 内存 / Redis |
| 中期记忆 | 完整对话历史 | MySQL / PostgreSQL |
| 长期记忆 | 跨对话保留的用户偏好和事实知识 | 向量数据库(语义检索) |
这一层如果想深入,直接对照你自己熟悉的三层记忆架构去理解,就是最好的案例,不需要再找别的教材。
Subagent(子袋里):任务足够复杂时,主Agent把某个子任务完整委派给独立的Subagent执行。子Agent有自己独立的上下文窗口,处理完只把“结果摘要”返回给主Agent。核心价值是上下文隔离——避免主Agent被中间过程信息淹没。
Multi-Agent(多智能体协作):是这个思路的扩展。设计多个各有专长的Agent(规划、编码、测试、审核),按明确协议协同完成复杂系统级任务。
在学习路径的阶段四,你会用LangGraph搭建这样一个多Agent系统,把概念落地成工程实践。
这是JD里反复出现的三个概念,也是最容易讲混的地方。它们的边界必须分清楚:
| 概念 | 关注范围 | 核心操作 | 通俗理解 |
|---|---|---|---|
| Prompt Engineering | 单次调用的输入文本 | 角色设定、约束、少样本示例、输出格式控制 | “把这一次‘指令’写好” |
| Context Engineering | 整个运行过程中的全部信息组织 | 历史裁剪压缩、工具结果摘要、RAG知识注入、Token预算分配 | “把多轮‘背景信息’管理好” |
| Harness Engineering | 整个Agent系统的工程架构 | Loop设计、工具注册调度、错误处理重试、多Agent通信、状态持久化、可观测性、人工审批介入 | “把整套‘运行环境’搭建好” |
JD特意提到 “对Agent Harness开发有极大热情”,说明岗位真正看重的是第三层能力——不满足于用别人做好的产品,而是有兴趣自己设计和搭建这套运行环境。
前面讲的都是“概念层”,但概念要落地,必须依托具体的代码技术栈。这一部分按层级列出整套Agent系统的技术栈,每一层都解释清楚是什么、为什么需要它。
| 技术 | 作用 |
|---|---|
| Python 3.10+ | 核心语法之外,重点补上类型注解(Type Hints)——不是可选项,FastAPI和主流Agent框架都重度依赖它 |
| FastAPI | 搭建Agent后端服务的主流选择,原生支持异步(async/await),适合大量I/O等待场景 |
| Uvicorn | 跑FastAPI的ASGI服务器,了解启动和--reload调试即可 |
| 技术 | 作用 |
|---|---|
| HTML/CSS/JS基础 | 不用精通,但要能看懂DOM结构和基本JS语法 |
| Vue3(Composition API) | 组件化开发前端界面,直接学Composition API(setup、ref、reactive) |
| Vite | Vue3配套构建工具,用npm create vue@latest起项目即可 |
| Axios / 原生fetch | 前端调用后端API的基础 |
| SSE(Server-Sent Events) | Agent输出逐token流式生成,前端实时渲染“打字机效果”,比WebSocket简单,是主流首选 |
| 技术 | 定位 |
|---|---|
| LangChain | “零件库”——可插拔的组件化工具库(Prompt模板、LLM调用、输出解析、工具封装) |
| LangGraph | “总装图纸”——状态图编排框架,原生支持条件分支、循环、状态持久化 |
| 技术 | 用途 |
|---|---|
| MySQL / PostgreSQL | 存对话历史、用户画像等结构化数据(中期记忆) |
| Redis | 存Agent执行过程中的中间状态、短期/工作记忆,读写速度快 |
| 向量数据库(Chroma起步,进阶Qdrant/Milvus) | 存长期记忆和RAG知识库,靠语义相似度检索 |
| 技术 | 用途 |
|---|---|
| Git | 版本管理,团队协作必备 |
| Docker | 将整套系统(后端+数据库+向量库)打包成可移植容器 |
| Langfuse / LangSmith(可选) | Agent可观测性工具,追踪每一步调用和执行耗时 |
下面五个阶段,按 “先会用 → 再理解 → 后改造” 的逻辑递进。每个阶段都包含:目标、学习内容、落地项目,以及它对应JD里的哪项要求。
(0基础必学,有基础可跳过,周期1-2周)
目标:具备读懂和调用Agent系统所需的最低限度编程能力,同时提前接触后面会用到的Web框架。
学习内容:
落地项目:一个基于FastAPI的接口,内部调用LLM API实现连续多轮对话,用Postman或简单脚本测试通过。
(周期1-2周)
目标:让“用AI辅助开发”变成本能反应,满足JD里“高强度Agent产品用户”的要求。同时借这个机会把Vue3这个陌生技术栈学会。
具体做法:
落地项目:一个Vue3 + FastAPI的前后端联调小项目——前端是一个简单对话框,调用后端FastAPI接口,展示LLM的问答结果。同时整理一份自己的“AI辅助开发checklist”。
(周期2-3周)
目标:不再把Agent当黑盒,知道它内部到底在做什么。同时体会“手写”和“用框架”之间的差异。
具体做法:
落地项目:两个版本的同一个Agent(纯手写版 + LangChain版),支持至少2个工具调用、含短期记忆,能完成“需求拆解→执行→校验”的完整闭环,并写一段对比笔记说明两版的优劣。
(周期3-5周,岗位核心考核)
这一阶段按 Prompt → Context → Harness 的顺序层层升级。
同一需求写多版提示词做对比测试,重点练习控制AI规范写注释、写单元测试、按格式输出(JSON/Markdown代码块)。产出一套自己的代码开发提示词模板库。
给阶段二做的Agent加一层RAG:
这是技术栈融合的重点:
落地项目:一个完整的前后端联调Agent系统——Vue3前端 + FastAPI后端 + LangGraph编排 + MySQL/Redis存储 + Chroma向量检索,支持流式对话、有短期和长期记忆、能调用至少2个工具。
(周期2-4周)
目标:从“用Agent产品”进化到“有能力自己设计Agent运行环境”。
具体做法:
Multi-Agent系统:用LangGraph的多图协同搭建一个多Agent系统,模拟企业级软件开发场景——
工程化部署:整个系统用Docker打包(后端服务+MySQL+Redis+向量库全部容器化)
终极验证:选一个你完全没接触过的技术栈(比如Go后端、React前端、小程序开发),只靠这套Multi-Agent系统自主规划、检索、编码、调试完成一个完整项目,全程可人工干预调试。
持续做两件事:
有余力可以接入Langfuse这类可观测性工具,给整套Multi-Agent系统加上执行链路追踪。
完成上面五个阶段后,用下面这份清单自查:
这份JD本质上要求的,不是掌握某个具体框架的API,而是要求你对 “LLM怎么被组织成一个可靠系统” 这件事有系统性理解。
技术名词和具体框架会变——今天是LangGraph,明天可能是别的框架;今天是Vue3,明天可能是别的前端框架。但Agent Loop、上下文管理、工具调用这些底层原理相对稳定。
上面的学习路径,是一份扎实的自学地图。但如果你希望在更短的时间内,不仅走完这条路,还能和同样方向的同行者一起探讨、获得资深工程师的即时反馈,那可以考虑另一种学习方式。
慕课网最近推出的 「Harness & Hermes」多智能体开发特训营,其课程大纲的设计思路与本文提到的能力模型高度吻合。它不只是讲API调用,而是把 Harness Engineering(脚手架工程) 作为核心,带你从0到1手写一个完整的Multi-Agent系统。