从提示词,工具,上下文管理三个角度看OpenManus
OpenManus是什么?
这里感谢DeepSeek提供的总结。
OpenManus是一个开源的多智能体协作平台,旨在复刻并改进商业AI Agent产品Manus的核心功能,支持本地化部署和模块化扩展。它由中国团队MetaGPT开发,底层整合了Claude 3.5、Qwen VL Plus等多种大型语言模型,通过多智能体协作机制分解任务,并调用API工具链完成具体操作。
主要特点包括:
模块化设计:支持可插拔的工具链(如Python执行器、浏览器自动化)和系统指令,便于功能扩展
透明化运行:提供实时反馈日志,展示任务分解逻辑和工具调用步骤
多模型兼容:可配置GPT-4o、Claude等主流LLM,适应不同需求
与闭源的Manus相比,OpenManus强调开源免费、技术透明,但当前版本功能仍处于初级阶段,性能与商业版存在差距。其GitHub仓库上线首日即获得8.1k+ Star,适合开发者探索AI Agent的定制化开发。
本文以ac66e8fd441c845fd1d93e6881c0277357f7b750这个commit hash版本作为分析对象。
提示词
项目在app/prompt目录下存放了大量提示词文件。
主题提示词文件包含,角色定义
You are OpenManus, an all-capable AI assistantYou are an AI assistant with access to a Model Context Protocol (MCP) server.You are an expert Planning Agent tasked with solving problems efficiently through structured plans.SETTING: You are an autonomous programmer, and you are working directly in the command line with a special interface.You are an agent that can execute tool callsYou are an AI agent designed to data analysis / visualization task. You have various tools at your disposal that you can call upon to efficiently complete complex requests.
约束部分,根据角色不同采用了不同的约束方式。包括工作目录,指南,任务要求,状态管理,格式化输出。
整体采用ReAct的模式,think,Act接口。
工具
支持function call, MCP, 沙箱。
上下文管理
通过一个memory接口schema来定义上下文管理的读写方式
目前通过不稳定的flow方式实现多智能体交互,尝试了A2A貌似还没有采用。