软件世界的江湖已经变天了。Vibe coding的时代,要想用好各类coding AI agent,去全局了解一下AI aengt底层的工作原理就非常重要。一个选择是可以直接去看open code的源码,但对学习者而言,它太大太重了,掩盖了最基本的核心代码。前天半夜,我突然醒来,一个让人兴奋的念头冒了出来:“为啥我不复刻一个claude code,写一个自己的,简洁版的AI agent来学习呢?”
我可以不用Node.js,我直接用python实现这个agent;
Agent就采用应用最广,最经典的ReAct 模式,便于理解和学习。
为了避免网络问题,我就连国内的开源大模型,为agent装上大脑;
LLM + 读写文件两个最基础的action = 我的agent起步;
基础功能上线后,再增加运行代码、联网搜索的工具;
把国内大模型替换为我ollama本地部署的大模型,这样就可以断网运行,处理敏感数据;
流式处理,实时看到模型迭代的输出和agent的干活;
哇,越想越兴奋,要不是外面漆黑一片,寒风呼啸,我当时差点就要蹦起来说干就干了。好不容易等到昨天忙完工作后,用了20分钟,vibe coding从零搭建了一个自己的python版agent,我取名叫“辉常好奇的叮当猫”,越看越喜欢,她长这个样子:
看到了吧,她和claude code一样,也是一个terminal base的agent。通过执行python代码simple_react_agent.py就可以启动。
在开始之前,我们先来简单复习一下vibe coding的相关概念吧。Vibe coding是啥?最近这词很火,我们先看看github上官方的权威的定义吧。

Vibe coding -- 氛围编程,又有人称它为黑盒编程,零代码编程。通俗地讲就是“用自然语言编程”,用人类之间平时交流时的语言和电脑沟通,比如,你给妈妈怎么说话,就给电脑怎么说话。你可以告诉电脑,“帮我写个贪吃蛇的游戏”,“抓取一下今天的财经新闻”。今天这种高大上的概念,从历史上看,它并不模式,而且以前还被作为一种电脑小白的无脑菜鸟操作,被嘲讽过。回想一下,很多年以前有没有看到过类似的搞笑段子?


好笑吧,我们当年都嘲笑过当年电脑小白的这种让人哭笑不得的操作。但是,随着时代的发展,AGI的逐渐到来,原来看似脑残的操作,在今天变成了一种时髦高级的编程方式,甚至代表了未来软件编程的发展方向。
要想用人类的自然语言实现编程,就必须利用AI agent,AI agent和大模型LLM是什么关系呢,为啥有了LLM还要搞个agent呢?别急,我们把“辉常好奇的叮当猫”拆解开来,看一看就清楚了。

简洁的项目结构
如上图我们看到这个agent非常简洁。核心代码有主程序入口负责整体与用户交互,与大模型交互和调用各类工具。它会按照react模式开启一个循环语句,多次调用LLM和执行各类action。React引擎就封装在engine.py里的一个ReActEngine类里面。对后端大模型的调用则在client.py里面。我们简单浏览一下代码:

Agent流程主程序的循环与react引擎的实例化

React引擎
简单说一下ReAct 模式(Reasoning and Acting)。这种模式的核心在于它模拟了人类“思考 -> 行动 -> 观察”的闭环。它提供了一个标准的模板,即 Thought(推理下一步要做什么)、Action(调用工具执行)、Observation(观察工具返回的结果)。虽然单一的 ReAct 循环容易陷入“死循环”或“幻觉”之中,但是作为学习的入门是最好的。

调用大模型的客户端
这里我们看一下,agent的所有“智慧”能力几乎都来自后端连接的大模型。包括它提供的对用户自然语言的理解和反馈,主流程会多次迭代调用大模型,靠的就是这个LLM 的client。目前几乎主流的LLM都支持openai格式的访问,我在这里配置了一个国内的开源大模型。后续可以换成一个本地部署的大模型,比如DeepSeek或者千问等。这样处理敏感数据时就可以断网使用。
剩下还有一些配置文件,测试文件。整个项目清晰简洁。从代码级别很好地诠释了一个agent是怎么工作的,LLM和action工具如何互相配合,突破了纯粹大模型没有的感知和执行能力,可以自动化地反复迭代,完成用户的要求。
我们看一下这个机器猫运行测试的情况:

读取本地文件成功

生成本地文件,写入内容成功

添加了联网搜索功能

自己编程,编写一个python代码

运行刚才编写的python代码
好了,辉常好奇的机器猫主要功能展示完了。后续可以按照学习的需要一步步完善,比如添加MCP的调用,连接更多的不同的外部系统。添加对skills的支持。
最后我们看看这个机器猫的诞生过程吧,直观看看vibe coding的过程长什么样子。

这里我使用了brainstorming 这个skills来了解我的需求,细化需求。你可以理解为一个清晰的问卷调查表,通过交互式地作答,agent知道你要做啥,需求细节是什么。最后把你的需求变成一个设计稿。各种丰富的skills是agent的一种重要扩展,现在非常火,具体skills是什,如何安装skills,如何使用skills受篇幅所限,就不一一展开了。

