支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


OpenManus源码小读

发布日期:2025-03-25 06:53:25 浏览次数: 1553 来源:进击的大数据
推荐语

快速掌握OpenManus框架核心要点,体验Agent框架的轻量级实现。

核心内容:
1. OpenManus框架简介及其在Agent领域的应用价值
2. 环境搭建与调试技巧,包括安装和API配置
3. 深入解析框架中的Memory和Tool Agent,理解其在Agent交互中的作用

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

背景

OpenManus是一个小巧的agent框架,是几个优秀的小伙子据说在3个小时复刻Manus而做的。github:https://github.com/mannaandpoem/OpenManus 
对于我个人而言,Agent这么广泛的炒作, 在看smloagents之余, 也看看OpenManus的小巧的实现。这里只会debug一下主线代码, 支线代码就不做了解了(人总有自己的关注点,不用纠结在细枝末节上),当然我也在B站上昨晚偶尔刷到了一个东北的up主大概讲了一小时, 发现不太复杂,自己也尝试着看看这个agent框架,当做算法之外的工作的调剂。费曼学习法,干中学!

安装环境

  1. 这个readme中有, 或者在vscode或者pycharm中都可以配,建议配个venv
  2. 充了10块钱的deepseek的会员, 把api_key填好就可以了,

调试

为了简单起见,我提问的问题会尽量让大模型调用一个Python的Tool Agent,靠本地代码执行就能完成的任务(其实也试了下web search的prompt,但打开浏览器有些乱七八糟的失败,懒得弄了, 不耽误主线流程)

断点

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

memory是什么

这里有个memory的概念,其他框架也有, 当然也有实现的比较复杂的那种,我们只看当前openManus的实现,看看memory到底是什么

这是坨什么?其实是类似工厂方法的一类东西, 这里的tool和其他的user,system,assistant不一样,应该是因为tool有不定长度的入参, 其他role的入参只有一个字符串
到memory的里面呢, 定义了一个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图大概如下

结尾

这个小巧框架的一点流程就大概讲完了, 实际花费时间2小时不到吧,包括折腾环境。实际上复杂agent框架需要解决很多很多问题, 比如
  1. memory的实现,太长了怎么办,是不是要放到其他存储里,那怎么与LLM交流呢?怎么找出最重要的上下文, 用向量数据库吗?用RAG吗?
  2. prompt的实现,也一样,现在只有5 6个tool,可以塞在提示词里,当太多了之后怎么办, 这些tool要分几个大类,然后再让LLM帮我们找细分类别下的tool吗?
  3. 安全性怎么解决
  4. MCP这种刚出来的玩意是干嘛用的?

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询