好久,没有写博客了,再不写点什么我可能就忘了我还有博客了。
因为年底找到工作了,对于两段空窗和35+的我,这份工作对我来说弥足珍贵。所以我对这份工作也是全身心的投入。一方面因为我热爱编程,一方面我也享受这份体面的工作)。周末时间做做家务,看看财经,顶多再挤出一天时间看看AI相关的文章。春假期间,2天在路上,在家里玩了3天,走了几家亲戚,就这样稀里糊涂的过去了,快两个月没写博客了。
我不得不承认,由于去年我投入了很长的时间学习英语,我对AI的认知是落后了很多。因为2025年AI Agent的发展很猛!
所以写这篇文章也是简单总结最近2个月,关于AI我学到了什么,以及对AI和未来的看法。
首先回顾下AI Coding的发展
1. ChatGPT3.5 诞生,代码搬运阶段
2022年12月
ChatGPT3.5横空出世,不到两个月的时间有了上亿的用户量。
它是一个聊天机器人,无论你问它什么,它都会。
同样你可以问它编程问题,程序员通过它来Copy&Paste
2. IDE插件, 典型代表是VSCode插件Copilot
它支持Chat和Edit两种模式,在Edit模式下可以对文件进行修改,以diff的形式展示差异,你可以像merge代码一样
ConfirmorRevert即可
IDE 集成AI插件出了能直接修改代码,还能获取更多上下文信息(当前项目的目录结构,正在打开哪些文件,控制台信息,IDE提示等)进而大幅提高了代码生成质量和编码效率。
Edit模式的本质是一个Agent,Agent负责tools和AI之间的通信。
最基本的tools有list_files,read_file,write_file;
然后Agent通过系统提示词 orFunction Call告诉AI有哪些tools.
Agent和tools之间,通过studio(标准输入输出)进行通信; Agent有很多种,tools也有很多,不同的Agent可能用到相同的tools,通过Copy代码的方式不利于维护,于是就有了MCP协议。将这些工具部署到服务器(MCP服务器)上,Agent(MCP客户端)通过MCP协议发送请求。当然MCP服务器和客户端也可以在同一台机器上
代码以diff的形式,一方面可与节省token,另一方面AI还避免了AI还原整个文件时引入新的bug。
Q: Function Call是什么?
A: 一开始Agent通过系统提示告诉AI我这里有什么工具方法,怎样调用,但AI的回复不是100%正确,也就是说回复的脚本不能100%的正确运行,于是当Agent检测到程序不能正确运行时,会重新请求AI,这样就很浪费token。后来LLM在训练的时候就增加了Function Call功能,这样就把“如何调用tool、JSON格式及JSON返回”从系统提示词工具移除了,单独配置。AI自己检测程序能否运行,会不断重试,直到返回正确的格式。这样以来就节省了token。但不是每个AI模型都有Function Call,即使有也不一定规范一致。所以目前还是有很多Agent通过系统提示词告知AI有哪些tools。
Cursor 2023年3月发布,24年流行因为通过插件的形式实现AI Coding的功能还是有局限型,所以fork了VSCode进行二次开发。这样能够对底层框架进行更灵活的修改,如Cursor的
Tab Tab Tab的能力就是通过插件的方式无法实现的。
Vibe Coding是一个概念,目标是将产研的一整套流程用AI实现,把需求喂给(or复述)给AI,让AI写代码修bug、建表、操作数据库、连接服务器、后台配置、部署等都叫交给AI去做(这些流程都有对应的MCP,云厂商也纷纷提供MCP允许AI Agent来操作服务器)
通过命令行的形式与AI交互,这种形式让用户更具聚焦于当前任务。
我的理解:也能更方便地执行shell脚本,对文件进行增删改查操作等也能更方便的展示结果。
当然图形化界面能做的事情它都能做到。
后面再单独介绍它,,,
Spec Coding: 2025年9月,以SDD为核心的spec-kit再开源社区中快速传播。一些时候我们感觉Vibe Coding生成的代码不可控, 那么我们如何才能让AI根据我们的需求或期望更好的生成代码呢? Spec-kit提供了一个很好的范例
Vibe Coding的主要问题
Spec Coding通过 结构化编码步骤,确保AI清楚地理解项目规范和需求。
通过spec和设计良好的上下文管理方式,配合Workflow降低环节,且每一步可审计。
它增加了需求设计的时间,大幅减少了Coding和单测的时间。
Claude Code当之无愧是AI Agent首屈一指的代表!后来OpenAI 的Codex,google的Gemini CLI都是模仿它。
我们知道AI是有很多缺点,如下
没关系,AI Agent就来解决这些问题。
Agent连接tools 和 LLM,解决了AI不能行动的问题,相当于给大脑,安装了手和脚(包括眼、口、鼻、耳朵)的能力。
Function Call告知AI有哪些能力stdio或MCP调用tools前面提到过,通过Agent通过系统提示词的方式告知AI有哪些tools。
AI的回复的脚本不一定能运行,但是反复调用AI又会浪费token。
Fuction Call 就解决了这个问题,一次生成可运行的脚本--节省了token。
MCP标准化了接口(tools的使用),多个Agent可以共用同一个tool。
市面上有很多很多MCP
AI回答不了私域问题, 我们可以把知识文档通过提示词的方式喂给它,这样它就能回答私域问题了。
但是这样 token 很贵!于是就有了RAG方案,简单说就是通过这个技术把问题相关的知识(相关文档的相关片段部分)喂给它--按需喂食。这样就大幅节省了token。
RAG把文档按照某种规则把文档分成片段,然后向量化向量数据。一般来说向量的维度越高(可以理解为参考的维度越多),RAG的能力就越强。
RAG方案很多,没有哪一种能打满全场,新的方案还在探索中
TODO 介绍下Graph RAG
AI回到不了私域问题,RAG是一种解决方案。一方面没有哪一种RAG方案能打满全场,另一方面除了私域知识还有私域系统项目脚本等RAG不能处理,通过Agent Skill可以运行脚本调用私内系统的接口。
当然没有Skill,通过提示词的方式也能做!但是那样token消耗巨大。 Skill提供了一种按需加载的方案。
这就好比先告诉AI 我有哪些系统,对应的文档是什么。
当问题涉及某个系统时,才会读取对应系统的文档。
如果涉及到对应系统才进行调用执行脚本,更牛的AI可以只执行脚本不读取内容(节省token)。
当然Skill能力的好坏取决于你的Skill文档质量。脚本也是,如果你写的函数名就不清晰,AI还是会读取你的脚本内容的。
前面说到 Vibe Coding有时生成的代码不理想,Spec Coding通过 结构化编码步骤,确保AI清楚地理解项目规范和需求。 这就是依靠给AI提供记忆实现的。
Claude Code 的Claude.md就是给AI提供了记忆。你可以在里面写入项目规范、私域package文档、私域系统文档等内容。 这也就是Spec Coding 如何解决 VibeCoding 生成代码不理想的问题。
Claude Code 最近又推了自动记忆的功能。
AI是模糊的正确,传统的程序运行结果是精准正确的,但却局限性很大。两者结合就能放大AI的能力。
Cluade Code提供hook的能力。
prettier eslist stylelint检查代码风格和质量,执行CICD等;Spec Coding喂食需求给AI的时候,通过提供的脚本,获取项目的一些环境变量等信息。SubAgent是一个独立的Agent,有着自己独立的上下文、工具、skill等。
Claude Code提供Plugin的能力,Plugin就是利用 Skill、Hook、SubAgent、指令集解决某一类问题,一块封装好打包给你,然后就想安装软件那样,下载安装后就能解锁新的能力。
就写这么多吧, 有机会细细说,,,
本文作者:郭郭同学
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!