哎呀肚子疼 (@pupa)【学习笔记】不到 100 行,写一个最小的、能够自主进化的 agent 中发帖

这篇文章主要参考:Building a minimal AI agent from scratch。本文全程手打,没有 AI 修改/润色,主要是为了巩固一下学到的东西,顺便记录一下自己开发一个 agent 的过程。 
我自己的开发环境是 Fedora 44 (Linux),所以用 Windows 运行我的代码可能会有些问题。
在这篇文章,你将会看到:

古法编程
已经快绝迹的 CV 工程师
agent 尝试搞懂自己
agent 尝试优化自己

最小 agent 构成
简单来说,agent 的执行流程可以概括成:

等待用户输入。
AI 处理输入,决定要不要调用工具。如果不需要(任务已经完成或者需要用户提供更多信息),回到第一步。
AI 调用工具,把工具执行结果作为输入返回给 AI,回到第二步。

伪代码如下:
messages = [] # 历史对话
while True:
...