游乐游手机版
首页/AI热点日报/热点详情

OpenManus源码小读项目结构与核心代码全流程解析

类型:热点整理2026-07-04
快速掌握OpenManus框架的核心要点,其实并没有想象中那么复杂。这个轻量级Agent框架,在短短几个小时内就被复刻出来,实在让人惊叹。与其在众多概念里绕来绕去,不如直接动手撸一遍源码的调试流程,看看Memory、Tool Agent这些组件到底是如何协同工作的。下面就从环境搭建开始,一步步拆解。

快速掌握OpenManus框架的核心要点,其实并没有想象中那么复杂。这个轻量级Agent框架,在短短几个小时内就被复刻出来,实在让人惊叹。与其在众多概念里绕来绕去,不如直接动手撸一遍源码的调试流程,看看Memory、Tool Agent这些组件到底是如何协同工作的。下面就从环境搭建开始,一步步拆解。

背景

OpenManus是一个迷你的Agent框架,由几位优秀开发者据说在三小时内复刻Manus而成。项目地址:https://github.com/mannaandpoem/OpenManus。在Agent概念炒得热火朝天的时候,读完smloagents那套之后,再看OpenManus这种小巧的实现,格外清爽。这里只啃主线代码的调试过程,支线部分先放一边(每个人都有自己的关注点,不必纠结所有细节)。刚好在B站上也刷到一位东北up主详细讲解了大约一小时,发现逻辑并不复杂,于是尝试自己走一遍这个Agent框架,作为工作之余的调剂。费曼学习法,干中学。

安装环境

  1. 按照README里的步骤操作就行,在VSCode或PyCharm里都能配,建议新建一个venv虚拟环境。
  2. 给DeepSeek充了10块钱的会员,拿到API key填进去就完了。

调试

提问时尽量让大模型调用一个Python Tool Agent,靠本地代码执行就能完成的任务(也试过Web Search相关的prompt,但浏览器打开时总报些乱七八糟的错误,懒得折腾了,反正不影响主线流程)。

断点

问一个问题:斐波那契数列的第5位是多少

Memory是什么

Memory这个组件在其他框架里也有,有些实现得非常复杂。这里只看OpenManus的实现,直观感受一下Memory到底是什么东西。

其实就是一个类似工厂方法的封装。里面Tool和其他的user、system、assistant角色不太一样——Tool有不定长度的入参,而其他角色的入参只有一个字符串。Memory层定义了一个结构,后面用来保存多步执行的结果,本质上就是一个list,没什么特别的。

循环执行

每一步到底执行了什么

这里抽象出了一些概念:先思考,再行动。那么思考了什么?返回值又意味着什么?

Think是什么

Think这一步其实就是把输入全都怼进Memory里,然后调用LLM。提示词里给了几个可用的工具,比较特殊的是Terminate——它告诉LLM,在认为可以结束的时候,可以调用这个Tool。

接着进入关键一步:调用LLM的返回。这里把assistant_msg也写入了message上下文。

Act是什么

这一步是根据之前LLM的提示调用具体的Tool。以PythonExecute为例,会开一个线程,在线程里执行LLM提示的code。这里有些巧思,比如安全性——执行环境只包含了builtins这些函数。执行结果会被塞回到result中。

这时候再回头看Memory和results到底是什么,会发现还有一点小心思:当Agent卡住时怎么办?

如何停止

结果出来后,流程怎么停下来?OpenManus依然依赖大模型来判断。这一次,LLM给出的prompt结果如果是terminate,就会跳转到Terminate这个Tool的执行。当工具是Terminate时,state的状态变为FINISHED,整个循环也就跳出来了。

到这里,整个简单流程就看完了。不过Agent是个挺深的学问:退出时居然没打印结果,懒得修了。

这次调试中用到的类,UML图大致如下(图略)。

结尾

这小巧框架的核心流程大概就这些。实际花费时间不到两小时,包括折腾环境。真正复杂的Agent框架需要面对很多实际问题:

  1. Memory太长怎么办?是不是要放到其他存储里?如何与LLM交流?如何找出最重要的上下文?用向量数据库还是RAG?
  2. Prompt的实现同样麻烦,现在只有五六个Tool,可以塞在提示词里,但Tool一多该怎么办?要不要先分类,再让LLM帮助查找细类下的Tool?
  3. 安全性如何保障?
  4. MCP这种刚冒出来的概念是做什么用的?
来源:https://www.53ai.com/news/OpenSourceLLM/2025032593061.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。