返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

OpenManus源码小读

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 12:48 |阅读模式 打印 上一主题 下一主题

背景

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这种刚出来的玩意是干嘛用的?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ