在社区交流中发现多位开发者反映OpenManus框架存在一些问题:
- 谷歌搜索不可用
- 生成文件难追踪
- 配置灵活度不足。
对相关代码进行优化,通过分叉项目实现了针对性改进方案,并已提交PR!现将关键优化方案分享给各位开发者伙伴。
痛点一:搜索引擎水土不服?国产方案来接力
解决方案:
- 集成百度搜索:
# 新增百度搜索工具类(app/tool/baidu_search.py) class BaiduSearch(BaseTool): async def execute(self, query: str) -> List[str]: return [result['url'] for result in search(query)] - 集成Brave国际搜索:支持API密钥配置,规避网络限制
- 配置建议:
# config.example.toml 片段 [agent.agents.Manus] available_tools = ["...", "baidu_search", "..."] # 替代原google_search [tool.tools.brave_search] config = { api_key = "your_api_key" } - 更改agent prompt
GoogleSearch: Perform web information retrieval
更改为:
BaiduSearch: Perform web information retrieval
痛点二:生成文件"捉迷藏"?智能路径管理上线
改进亮点:
- 新增统一输出目录配置
# FileSaver工具支持自定义保存路径(app/tool/file_saver.py) def _get_save_path(self, file_path: str) -> Path: return Path(self.save_path) / Path(file_path).name - 自动创建多级目录,避免路径错误
痛点三:配置僵硬?动态调节生态成型
关键突破:
# 示例:完全自定义Agent配置
[agent.agents.CustomAgent]
system_prompt = "你是个擅长数据处理的分析师" # 自定义角色
max_steps = 50 # 复杂任务延长步数
available_tools = ["python_execute", "file_saver"] # 工具自由组合
技术实现:
- 构建
TOOL_REGISTRY中央注册表,支持工具动态加载# app/agent/toolcall.py TOOL_REGISTRY = { "baidu_search": BaiduSearch, "brave_search": BraveSearch # 新增工具注册 } - 配置驱动初始化:Agent自动加载预设工具集
- 提示词支持热更新,无需修改代码即可调整对话逻辑
实践验证:开发者实测数据
百度搜索工具
- query: 从wiki中查找中国面积最大的5个咸水湖泊,并保存到markdown文件
- 结果截图:
Brave搜索工具
- query: Summary of the policies Trump has adopted since taking office, saved as markdown
- 结果截图:
如何体验
# 使用社区分支
git clone https://github.com/zozowind/OpenManus.git
参照更新后的config.example.toml文件,建议重点配置:
- 模型配置(第2-22行)
- 文件保存路径设置(第55-57行)
- Agent参数定制(第59-71行)
致社区开发者
本次优化完全基于社区需求驱动开发,感谢各位开发者的issue反馈。开源生态的活力正体现在这样的协作共创中,期待更多伙伴加入改进行列!
我们始终相信:开源项目的生命力在于社区的共创。如果您在使用过程中遇到问题或有新需求:
- 提 Issue:在项目仓库的 Issue 区详细描述问题场景
- 文章评论:在评论区分享您的使用体验或优化建议
- 社群讨论:加入开发者微信群