怎么成为一个 ai agent 工程师?

怎么成为一个 ai agent 工程师?

就是我是一个后端开发,想成为一个 ai agent 工程师,公司内部有转岗机会,但是我不想背刺现在的老板(对我挺好的)我想自学一下,我大概是一个 6 年经验的开发,感觉卷后端有点卷不过别人,下次面试就要面试 P7 了,但是我感觉我没那个水平,如果接着面 P6 会被挑战觉得能力不行。现在b 战网上的课程都很浅,就是 langgraph 一下,好像就结束了,想问下,怎么自学成为 ai agent 工程师,可以通过社招面试的那种

如果没基础的话可以先看微软的《AI Agents for Beginners》 – GitHub 5万+星,12课时左右就能很快入手,而且有完整的中文教程github.com/microsoft/ai

把Agent基础概念、工具调用、记忆系统、多Agent协作这些基本都覆盖完了,不需要网上找那些卖课的,来付费学习课程。

Hugging Face也有免费的《Agents Course》,但是更偏实践性。

huggingface.co/learn/ag

生产部署,smolagents、LangGraph这些,如果要在自己的简历上添加做agent的项目经历,根据这里面的课程做几个小demo可能更好。

agent重要的其实是状态图、持久化、复杂工作流编排这些。学会这些,进行封装是可以手搓一个agent框架的,但是如果想快速部署,比如立刻做一个agent应用,也可以推荐几个框架。

一个是LangGraph 。官方文档在langchain-ai.github.io/

社区教程是github.com/langchain-ai

还有AutoGen,微软的

Redirecting…

github.com/microsoft/au

CrewAI

docs.crewai.com/

github.com/crewAIInc/cr



还是推荐手搓比较好,手搓可以推荐Datawhale《Hello-Agents》,从零入手直接手搓agent框架,没有任何库依赖。

github.com/datawhalechi

先说我自己的情况吧。6年后端,主要做Java那一套,Spring全家桶玩得还算溜。去年年底开始焦虑,感觉后端这块真的卷不动了,身边比我年轻的人技术栈比我新,比我老的人title比我高。

然后公司内部有个AI Agent的岗位在招人,我动心了。但问题是,我不想背刺现在的老板(他对我确实挺好的),所以就想着自己先学学,等学得差不多了再说。

结果…B站上那些课程,我TM看了一圈,全是”30分钟学会LangGraph”、”一小时搞定AI Agent”。看完之后我以为自己会了,结果找朋友内推去面试,第一轮技术面就被问懵了。

面试官问我:”你知道为什么LangGraph要用StateGraph吗?和普通的函数调用链有什么本质区别?”

我:……(大脑一片空白)

面试官又问:”如果让你设计一个支持百万级并发的Agent调度系统,你会怎么做?”

我:……(继续空白)

那场面试,尴尬得我脚趾头都能抠出三室一厅。

后来我才明白,B站那些教程教的是”怎么用”,但面试考的是”为什么这么设计”和”怎么做得更好”。

这半年我自己摸索,踩了无数坑,终于算是摸到点门道了。今天写这篇文章,就是想告诉你们,别走我的弯路


我先给你泼盆冷水。

很多人(包括半年前的我)以为,AI Agent工程师就是”会调用LangChain API的人”。

错得离谱。

我后来总结了一下,这个岗位其实分三个层次:

就是会用LangChain、LangGraph这些框架,能跑通官方demo,遇到问题就翻文档。

说白了,就是个”高级调包侠”。

这个层次的人,2025年已经烂大街了。

我之前以为学到这个层次就够了,结果发现,这个层次的人面试通过率极低,因为供给太多了。

能理解Agent的底层架构,知道ReAct、Plan-and-Execute这些模式是怎么回事,能设计复杂的多Agent协作系统,懂得在生产环境里优化性能。

这是P7的门槛。

大部分公司招AI Agent工程师,其实要的是这个层次的人。

能从零实现一个Agent框架,深度理解LLM的推理机制,能设计大规模Agent集群的调度系统。

这个层次的人,基本上是各大厂的专家、架构师了。

我的目标是第二层,但我发现,想到第二层,你得有第三层的视野。

不然面试官随便深挖几个问题,你就露馅了。


我把这半年学的东西,按照”从底层到上层”的顺序,给你梳理一遍。

一开始我以为,向量数据库不就是”存Embedding,然后做相似度搜索”嘛,有啥难的?

后来面试被问:”为什么Pinecone用HNSW算法,Milvus支持多种索引?什么场景下该选哪种?”

我才发现,我对向量数据库的理解,停留在”会用”的层面,根本不懂原理。

后来我花了一个月时间,把向量检索的几个核心算法都搞明白了:

HNSW(分层图结构):查询快,但内存占用大,适合高QPS的场景•IVF(倒排索引+聚类):适合大规模离线检索•Annoy(随机投影树):内存占用小,但召回率稍低

然后我还自己动手,用Milvus搭了一个支持千万级向量的检索系统,踩了一堆坑:

冷启动问题:新文档的Embedding怎么快速索引?•增量更新:怎么在不重建索引的情况下更新向量?•多租户隔离:怎么在共享集群里做租户级别的数据隔离?

这些问题,B站教程里根本不会讲。

但面试会问。


我刚开始学RAG的时候,写的代码是这样的:

def naive_rag(query): docs = vector_db.search(query, top_k=5) context = "\n".join(docs) response = llm.generate(f"Context: {context}\nQuery: {query}") return response 

我以为这就是RAG了。

结果面试官问我:”你这个RAG有什么问题?”

我:……没问题啊?

面试官:检索质量差、上下文窗口浪费、无法处理多跳推理、缺乏可解释性。

我:……(又是一片空白)

后来我才知道,Naive RAG只是最基础的版本,生产环境里根本不够用。

真正的RAG,要做这些优化:

第一步:Query优化

•Query Rewriting:把用户的问题改写成更适合检索的形式•Query Decomposition:把复杂问题拆成几个子问题•HyDE:先让LLM生成一个假设性的答案,再用这个答案去检索

第二步:检索优化

•Hybrid Search:向量检索+BM25,两个结果融合•Reranking:用Cross-Encoder重新排序•Contextual Compression:把无关的内容压缩掉

第三步:生成优化

•Self-RAG:让模型自己判断要不要检索•CRAG:检测检索结果的质量,如果不行就回退到网络搜索

这些东西,我是自己一点点摸索出来的。

B站教程里,基本不讲。


Agent这块,我踩的坑最多。

一开始我以为,Agent就是”LLM + Tools”,让LLM调用几个工具就完事了。

后来我发现,Agent的核心不是”调用工具”,而是”推理过程的设计”。

ReAct就是让LLM交替进行”推理”和”行动”。

def react_agent(task): history = [] while not is_finished(): # 推理:下一步该做什么 thought = llm.generate(f"Task: {task}\nHistory: {history}\nThought:") # 行动:执行工具 action = parse_action(thought) observation = execute_tool(action) history.append({"thought": thought, "action": action, "observation": observation}) return final_answer 

看起来简单吧?

但实际上,这里面有一堆问题:

推理错误怎么办?→ 需要Reflexion机制,让Agent反思自己的错误•推理效率低怎么办?→ 需要Few-shot示例,提供高质量的推理样本•任务太长怎么办?→ 需要分层ReAct,把任务拆成子任务

这些问题,我都是在实际项目里踩坑才知道的。

这个模式是先让LLM生成一个完整的计划,然后逐步执行。

def plan_and_execute(task): # 生成计划 plan = planner.generate_plan(task) # 执行计划 results = [] for step in plan: result = executor.execute(step, context=results) results.append(result) # 如果执行失败,重新规划 if need_replan(result): plan = planner.replan(task, results) return results 

这个模式的难点在于:

怎么生成高质量的计划?→ 需要结构化输出,用JSON Schema约束•什么时候触发重规划?→ 执行失败、发现新信息、用户需求变更•哪些步骤可以并行?→ 需要分析步骤之间的依赖关系

这是我觉得最难的部分。

怎么让多个Agent协作完成任务?

我试过三种架构:

中心化调度:一个主Agent负责分配任务给其他Agent•去中心化协商:Agent之间自己协商谁做什么•分层管理:大Agent管小Agent

每种架构都有优缺点,具体用哪种,得看业务场景。


一开始我觉得,Memory不就是”把对话历史存起来”嘛。

后来我发现,Memory系统的设计,直接影响Agent的智能程度。

我把Memory分成三层:

第一层:工作记忆(就是当前对话的上下文)

class ConversationBuffer: def __init__(self, max_tokens=2000): self.messages = [] def add_message(self, message): self.messages.append(message) # 超出token限制就删掉最早的消息 while self.count_tokens() > self.max_tokens: self.messages.pop(0) 

第二层:短期记忆(定期总结)

class SummaryMemory: def __init__(self): self.summary = "" self.recent_messages = [] def add_message(self, message): self.recent_messages.append(message) # 每10条消息总结一次 if len(self.recent_messages) > 10: self.summary = llm.summarize(self.summary, self.recent_messages) self.recent_messages = [] 

第三层:长期记忆(向量数据库)

class VectorMemory: def store(self, memory_item): self.vector_db.insert({ "text": memory_item.text, "embedding": embed(memory_item.text), "timestamp": memory_item.timestamp, "importance": memory_item.importance }) def retrieve(self, query): return self.vector_db.search(query, top_k=5) 

这套Memory系统,我是参考人类的记忆机制设计的。

效果还不错,但实现起来挺麻烦的。


前面那些都是”能跑”的层面,但生产环境还要考虑:

传统后端系统,你可以看日志、看Trace。

但Agent系统,一个任务可能涉及几十次LLM调用,每次调用的输入输出都不一样,怎么追踪?

我自己实现了一个简单的追踪系统:

class AgentTracer: def start_span(self, name, inputs): span = { "span_id": generate_id(), "name": name, "start_time": time.time(), "inputs": inputs } self.spans.append(span) return span def end_span(self, span_id, outputs): span = self.find_span(span_id) span["end_time"] = time.time() span["outputs"] = outputs span["duration"] = span["end_time"] - span["start_time"] 

有了这个,我就能看到Agent的完整推理链路,哪一步出问题了一目了然。

LLM调用是要花钱的,而且不便宜。

我总结了几个省钱的技巧:

1智能模型路由:简单任务用便宜的模型,复杂任务用贵的模型2Prompt压缩:用LLMLingua这种工具,把Prompt从500 tokens压缩到200 tokens3语义缓存:相似的问题直接返回缓存的答案

这些优化做完,成本能降低30-50%。

这块我一开始完全没意识到,后来看到有人用Prompt Injection攻击Agent,我才知道这事儿有多严重。

主要防御三个方面:

1输入验证:检测用户输入里有没有注入攻击2工具访问控制:限制Agent能调用哪些工具3输出验证:检查Agent的输出有没有泄露敏感信息


说了这么多理论,你肯定想知道,具体怎么学?

我把我这半年的学习路径,按照时间线给你梳理一遍。

Week 1-2:LLM基础

•我先把《Attention Is All You Need》这篇论文啃了一遍(说实话,第一遍看得云里雾里)•然后自己动手,用PyTorch实现了一个简单的Transformer•这个过程很痛苦,但确实让我理解了LLM的底层原理

Week 3-4:Prompt Engineering

•学习Few-shot、Chain-of-Thought这些技巧•自己设计了一个Prompt模板库,积累了一些好用的Prompt

Week 5-8:RAG实践

•搭了一个完整的RAG系统,从文档上传到向量化到问答•对比了不同的Embedding模型(OpenAI、Cohere、BGE)•实现了Hybrid Search + Reranking

Week 9-12:向量数据库

•深度使用Milvus,把官方文档翻了个遍•理解HNSW、IVF这些算法的原理•自己搭了一个千万级向量的检索系统,踩了无数坑

Week 13-16:Agent基础

•精读ReAct、Reflexion这些论文•从零实现了一个ReAct Agent(没用任何框架,全手写)•这个过程让我真正理解了Agent的状态管理

Week 17-20:LangGraph深度

•学习StateGraph的设计模式•实现了复杂的Agent工作流,包括条件分支、循环、并行执行•构建了一个Plan-and-Execute Agent

Week Agent 智能体 21-24:Multi-Agent系统

•设计Agent通信协议•实现Agent编排系统•处理冲突和容错

Week 25-28:可观测性

•设计Agent追踪系统•实现指标收集和监控•构建可视化Dashboard

Week 29-32:性能优化

•LLM调用优化(缓存、批处理)•成本控制策略•并发和异步处理

Week 33-36:安全与可靠性

•实现输入输出验证•工具访问控制•错误处理和重试机制


我前前后后面了5家公司,有过的有挂的,总结了一些经验。

典型问题:”设计一个能够自动处理客户工单的Agent系统”

这种题,考的是你的架构设计能力。

我的回答框架是这样的:

1

先问清楚需求(千万别上来就开始设计)

•工单类型有哪些?•并发量多大?•准确率要求多高?•延迟要求多少?2

画架构图

•整体架构•核心模块•数据流3

深入细节

•Agent怎么设计?•工具怎么设计?•状态怎么管理?•错误怎么处理?4

优化方案

•性能怎么优化?•成本怎么控制?•怎么扩展?

典型问题:”解释HNSW算法的原理,以及为什么它比暴力搜索快”

这种题,考的是你对底层原理的理解。

如果你只是会用,肯定答不上来。

典型问题:”你遇到过Agent陷入无限循环的情况吗?怎么解决的?”

这种题,考的是你有没有真正做过项目。

我的回答是:

“遇到过。有一次Agent在处理一个复杂任务时,一直在’推理-行动-推理-行动’这个循环里出不来。

后来我分析了一下,发现是因为Agent的推理结果不够明确,导致它一直在尝试不同的工具,但都没有得到满意的结果。

我的解决方案是:

1设置最大循环次数,超过就强制退出2在每次循环时,让Agent判断’是否取得了进展’,如果连续3次没进展就退出3优化Prompt,让Agent的推理结果更明确

这个问题解决之后,Agent的成功率从60%提升到了85%。”

这种回答,面试官一听就知道你是真做过的。


最后,我把这半年用过的、觉得真正有用的资源,分享给你。

1

ReAct: Synergizing Reasoning and Acting in Language Models

•这是Agent的基础,必须读2

Reflexion: Language Agents with Verbal Reinforcement Learning

•讲Agent怎么从错误中学习3

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

•RAG的奠基论文

1

智能文档问答系统

•技术栈:LangChain + Milvus + GPT-4•学习重点:RAG pipeline设计2

自动化代码审查Agent

•技术栈:LangGraph + GitHub API + GPT-4•学习重点:Tool使用、结构化输出3

Multi-Agent协作系统

•技术栈:LangGraph + Custom Tools•学习重点:Agent编排、通信协议

arXiv:每周看cs.AI和cs.CL的最新论文•GitHub Trending:关注AI Agent相关的热门项目•Twitter/X:关注AI领域的KOL•Discord/Slack:加入AI开发者社区


说实话,这半年我也很焦虑。

看着身边的人一个个转型成功,我还在自己摸索,压力真的很大。

但现在回头看,这半年的积累,是值得的。

我不仅学会了AI Agent的技术,更重要的是,我建立了一套系统化的学习方法。

这套方法,比技术本身更值钱。

最后说一句:

AI这个领域变化太快,没有人能一直领先。

但只要你保持学习,保持思考,你就不会被淘汰。

加油吧,兄弟。

一天一小时需要一个月,刷完 anthropic.skilljar.com/ 这个 Claude 的官方教程,你就算是入门了。这是我目前看到的最好的基础教程,整个流程和各个知识点都会讲到,了解整个 ai agent 的工作原理。

之后就可以有针对性的进行深入学习了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/277604.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月14日 上午8:14
下一篇 2026年3月14日 上午8:14


相关推荐

关注全栈程序员社区公众号