先说说实际效果。你只需发送一句“帮我查查北京今天的天气,再画个折线图”,它便会自动开始执行任务。首先打开浏览器访问目标网页,若链接无法访问,它会自动切换备用方案。等到数据抓取完成后,再保存为文件,最后通过Python脚本生成一张折线图。从任务规划到最终执行,整个流程一气呵成,无需人工干预。

复刻思路
从整体架构来看,实现原理并不复杂,但每个环节都需要精细打磨。
前端作为用户直接交互的界面,我们采用了双栏布局。左侧是核心对话区域,你和AI智能体之间的交流历史,包括它调用各类工具时的摘要信息,都会在此展示,并且支持点击查看详情。右侧则模拟了“Manus电脑”界面——它生成的文件、浏览过的网页,都会实时呈现。前后端通过WebSocket维持长连接,后端一旦产出结果,立刻就能推送到前端,从而实现真正的流式响应体验。
后端基于FastAPI构建,这是一款异步框架,能够很好地支撑WebSocket这类高并发连接需求。它负责接收前端请求、管理连接,并在智能体核心与前端之间高效传递数据。
大模型方面,我们选用DeepSeekV3作为核心决策引擎。它负责理解用户意图、制定任务计划,并借助MCP协议调用各类工具完成操作。
后端细节
MCP服务端
本次一共搭建了两个MCP服务。第一个是业界知名的Playwright——微软出品的端到端测试框架。它支持Chromium、Firefox和WebKit三大浏览器,跨浏览器一致性测试能力出色。不过我们并非用它做测试,而是利用其浏览器自动化能力,给LLM配备一双“手”。通过Playwright MCP服务器,大模型可以直接控制浏览器,实现打开网页、点击元素、填写文字等操作。其快照模式尤其适合此类场景:无需截图,不依赖视觉模型,运行速度快,且能生成结构化数据。
但仅有Playwright还不够——它所提供的工具链无法完全覆盖智能体的所有需求。因此,我们额外搭建了一个名为manus_server的MCP服务,其中集成了几个关键工具:google_search负责搜索链接,make_todo_md用于创建计划文件,write_to_file和execute_command则分别处理文件创建和命令执行。这样一来,智能体无论需要查询网页、编写脚本还是执行指令,都能找到对应的工具,实现全面的自动化能力。
MCP客户端
客户端的核心逻辑集中在一个异步函数中。流程大致如下:收到用户消息后,先将其传递给智能体,随后进入循环。每次智能体生成一段内容,立即判断其中是否包含工具调用。如果没有,说明回答已完成,直接结束循环;如果有,则将工具调用的信息发送给前端展示,接着执行工具,并将执行结果作为新消息追加到智能体的对话历史中,驱动它继续决策。如此循环往复,直到整个任务处理完毕。
Manus电脑的模拟
这部分通过Docker实现。我们创建了一个容器,内部预装了Python运行环境,专门用于执行智能体编写的Python脚本。关键配置在于:容器内的某个目录与本地的指定路径做了绑定,实现文件实时同步。这样一来,智能体在容器里生成的文件,后端可以随时获取,并推送到前端展示。
智能体对容器的所有操作都通过execute_command工具完成。该工具直接将命令发送到容器中执行,并返回结果,过程干净利落。
说到这里,不得不提:真正将一个AI智能体做好,远比想象中复杂。提示词的健壮性、复杂任务的规划与拆解、工具执行出错时的兜底策略、多工具之间的协同配合,再到安全性问题,每一项都是深坑。未来如果继续深入,它的工具集还会进一步丰富,长期记忆和规划能力也会持续增强。最终目标是能在更复杂的场景里,帮用户打通端到端的解决方案。这条路还很长,但方向对了,就不怕慢。
