简介:本资源是面向AI开发者、数据分析师与商业智能从业者的《2025 Manus学习手册》,系统讲解中国Monica团队研发的通用AI智能体平台Manus的核心理念、多智能体架构(MAS)原理及全流程自动化能力。手册深入解析Manus如何自主理解任务、调用浏览器/代码编辑器等虚拟工具完成市场调研、股票分析、旅行规划、教育内容生成等复杂场景,并附内测申请方式与多个真实案例演示。资源为单文件PDF,共1个19.3MB文档,内容结构清晰,涵盖产品定位、技术机制、八大典型应用场景及注册使用指引。已有875人学习下载,读者可直接获取GAIA基准测试对比数据、创始人‘少结构,多智能’设计哲学阐释、Manus与Deep Research等主流Agent的性能差异分析,以及从任务创建到结果交付的完整操作逻辑图谱。
1. Manus不是聊天框,是能自己开浏览器、写代码、生成PPT的“数字手”
你输入“帮我分析特斯拉股票并生成带图表的PDF报告”,传统大模型只会返回一段文字描述——而Manus会立刻在虚拟环境中打开浏览器搜索财报、调用Python爬取雅虎财经数据、用Plotly画出K线与情绪热力图、用Jinja2模板渲染HTML、再转成PDF发给你。它不解释怎么做,它直接做完。这不是LLM加个插件的缝合怪,而是基于多智能体系统(Multiple Agent System)构建的可执行任务闭环体:规划层拆解目标为待办清单(todo.md),研究层调用Browser Use深度检索网页(单次抓取23条结果并截图留痕),执行层在隔离虚拟机中运行终端命令、操作网页DOM、生成/保存/调试代码文件,最后由记忆层持续更新结构化任务状态。目前它已在GAIA基准测试中跑出40%+准确率,远超GPT-4-Turbo的7%,成为首个在真实复杂任务链上验证可行的通用AI Agent。适合需要把模糊需求快速落地为可交付成果的商业分析师、教育工作者、创业者——尤其当你凌晨三点提交“整理YC W25所有B2B公司名单并标注技术栈”,早上醒来邮箱里已有一份带超链接和筛选功能的Excel。
2. 多智能体协同机制:从todo.md规划到Browser Use执行的全链路拆解
2.1 规划层:用结构化Markdown替代长上下文记忆
Manus抛弃了主流Agent依赖的“滚动式Prompt记忆”方案,转而将任务规划固化为todo.md文件。该文件并非简单待办列表,而是具备状态标记、优先级嵌套、子任务依赖关系的轻量级项目管理结构。例如日本旅行规划任务生成的初始todo.md:
# 7-Day Japan Itinerary with Proposal Ideas ## [ ] Research Kyoto historical sites (priority: high) - [ ] List UNESCO World Heritage sites in Kyoto - [ ] Identify hidden gems near Fushimi Inari - [ ] Check accessibility for proposal setup ## [ ] Compare accommodation options (priority: medium) - [ ] Filter ryokan with English support & private onsen - [ ] Cross-reference prices on Booking.com & Japanese platforms - [ ] Verify cancellation policy for last-minute changes ## [ ] Generate HTML travel handbook (priority: low) - [ ] Embed interactive map (Google Maps API) - [ ] Add essential Japanese phrases with audio links - [ ] Include packing checklist for spring weather提示:Manus每次完成子任务后,会自动将对应行标记为
[x]并追加执行摘要(如[x] Scraped 12 ryokan listings from Booking.com (2025-03-28T14:22:03Z))。这种设计规避了LLM上下文窗口衰减问题,让长期任务具备可审计性。
2.1.1 todo.md的生成逻辑与人工干预点
系统通过LLM对用户原始指令进行三阶段解析:
- 意图识别:区分核心目标(“生成旅行手册”)与约束条件(“4月15-23日”“预算2500-5000美元”“含求婚场景”);
- 任务分解:调用内置规则引擎匹配知识图谱(如“日本文化体验”→关联茶道/剑道/禅修场所数据库);
- 优先级排序:基于时间敏感性(签证办理需前置)、外部依赖(酒店价格需实时抓取)、失败风险(网页反爬可能中断)动态调整
priority标签。
人工可干预的关键节点在于:
- 在任务创建界面手动修改
todo.md中的priority值(如将“求婚场所调研”从medium提至high); - 删除冗余子任务(如发现用户已提供酒店名单,可删去“Compare accommodation options”整节);
- 添加跨任务依赖(在
Generate HTML...节末尾插入depends-on: Research Kyoto historical sites)。
2.2 研究层:Browser Use协议实现可控网页交互
Manus的Browser Use模块并非简单调用Selenium,而是封装了三层抽象:
- 语义层:将用户指令(如“找奈良鹿公园最佳求婚地点”)转化为结构化查询参数(
location="Nara Park",purpose="proposal",filter=["scenic", "private", "photo-friendly"]); - 协议层:通过自研WebDriver代理发送原子化操作指令(
scroll-to-element,click-selector,extract-text-css),每步操作均生成带时间戳的截图存档; - 容错层:当页面加载超时或元素未找到时,自动触发备选路径(如切换至Google Maps搜索替代官网查询)。
2.2.1 Browser Use的典型操作序列与参数说明
以股票分析任务中“获取特斯拉最新季度财报”为例,其执行流程如下:
# 步骤1:启动无头浏览器并导航至SEC官网 browser launch --headless --timeout 30s browser navigate https://www.sec.gov/edgar/search/ # 步骤2:填充搜索表单(使用CSS选择器精确定位) browser fill "input#company" "Tesla, Inc." browser select "select#date-range" "Last 3 months" browser click "button[type='submit']" # 步骤3:解析结果页并定位10-Q文件(XPath确保稳定性) browser wait-for "div#results div.document-row" browser extract xpath "//div[contains(text(),'10-Q')]/following-sibling::div/a/@href" > filing_url.txt # 步骤4:下载PDF并校验(MD5防传输损坏) browser download "$(cat filing_url.txt)" --output tesla-q1-2025.pdf md5sum tesla-q1-2025.pdf | grep -q "a1b2c3d4" && echo "✓ Valid SEC filing"注意:
browser fill命令中的input#company采用ID选择器而非模糊文本匹配,避免因页面文案微调导致定位失败;browser extract xpath使用相对路径而非绝对路径,适应SEC官网频繁的DOM结构调整。
2.3 执行层:虚拟机环境中的工具链调度与代码沙箱
Manus在云端虚拟机中预装了标准化工具链:Python 3.11(含pandas/numpy/plotly)、Node.js 20、Chrome 122、LibreOffice 7.6。所有代码执行均在Docker容器内完成,资源限制为2核CPU/4GB内存/30秒超时。关键设计在于工具调用决策树:
- 当任务涉及数据可视化 → 自动选择Python + Plotly(非Matplotlib,因后者需GUI环境);
- 当需生成交互式HTML → 调用Node.js + EJS模板引擎(非Jinja2,因前端渲染更高效);
- 当处理PDF导出 → 启动Headless LibreOffice转换(非wkhtmltopdf,因对中文排版支持更优)。
2.3.1 代码生成与执行的闭环验证机制
以“生成特斯拉股票仪表盘”为例,Manus会分四步验证代码可靠性:
- 静态检查:用pyflakes扫描语法错误,拒绝执行含
os.system("rm -rf /")等危险模式的代码; - 沙箱预演:在空数据集上运行代码,确认无无限循环且内存占用<512MB;
- 数据注入测试:将模拟财报数据(含NaN/inf值)注入,验证异常处理逻辑;
- 输出合规校验:检查生成的HTML是否包含
<meta charset="UTF-8">及响应式viewport标签。
实际生成的仪表盘代码片段(经简化):
# dashboard_generator.py import pandas as pd import plotly.express as px from plotly.subplots import make_subplots # 1. 数据加载(自动适配SEC CSV格式) df = pd.read_csv("tesla-filing-data.csv", parse_dates=['date'], na_values=['N/A', '—']) # 兼容SEC报表特殊空值标记 # 2. 关键指标计算(显式处理缺失值) revenue_growth = df['revenue'].pct_change().fillna(0).round(3) profit_margin = (df['net_income'] / df['revenue']).fillna(0).round(3) # 3. 双Y轴图表(强制设置y-axis范围防缩放失真) fig = make_subplots(specs=[[{"secondary_y": True}]]) fig.add_trace(px.line(df, x='date', y='revenue').data[0], secondary_y=False) fig.add_trace(px.line(df, x='date', y='net_income').data[0], secondary_y=True) fig.update_yaxes(range=[0, df['revenue'].max()*1.2], title_text="Revenue ($M)", secondary_y=False) fig.update_yaxes(range=[0, df['net_income'].max()*1.2], title_text="Net Income ($M)", secondary_y=True) # 4. 导出为嵌入式HTML(禁用外部CDN,确保离线可用) fig.write_html("tesla-dashboard.html", include_plotlyjs='cdn', full_html=False)逻辑说明:
parse_dates=['date']确保时间序列正确排序;na_values=['N/A', '—']覆盖SEC报表中两种常见空值标记;fill(0)将增长率缺失值设为0而非NaN,避免图表断裂;include_plotlyjs='cdn'虽增加首次加载延迟,但大幅减小HTML体积(实测从8MB降至120KB)。
3. 实战:从零构建股票分析工作流——参数配置、进度监控与结果导出
3.1 创建任务时的关键参数配置表
Manus任务创建界面提供6个可配置参数,直接影响执行路径与资源分配。下表列出高频场景下的推荐值:
| 参数名 | 可选项 | 默认值 | 推荐配置(股票分析场景) | 配置逻辑说明 |
|---|---|---|---|---|
| 任务类型 | Research / Coding / Document / Multi-step | Multi-step | Research | 强制启用Browser Use模块,跳过纯代码生成路径 |
| 数据源可信度 | Strict / Balanced / Permissive | Balanced | Strict | 仅抓取SEC.gov、Yahoo Finance等白名单域名,过滤论坛/博客内容 |
| 代码语言偏好 | Python / JavaScript / None | None | Python | 股票分析依赖pandas生态,JavaScript无法处理大型CSV |
| 输出格式 | PDF / HTML / Excel / Auto | Auto | PDF | 投资报告需固定版式,HTML易被邮件客户端截断 |
| 执行超时 | 5min / 15min / 30min / 1h | 15min | 30min | 财报PDF下载+图表渲染+PDF转换耗时约18-22分钟 |
| 隐私模式 | On / Off | Off | On | 禁用所有第三方分析脚本(如Google Analytics),符合金融数据合规要求 |
提示:当选择
Strict数据源时,Manus会自动在todo.md中插入验证步骤:“[ ] Verify all data points sourced from SEC.gov or Yahoo Finance official API”。
3.2 进度监控:从虚拟机日志到用户端状态映射
Manus将执行过程分为7个可观测阶段,每个阶段在用户界面显示对应状态图标与耗时:
| 阶段 | 用户端显示 | 虚拟机日志特征 | 典型耗时 | 异常信号 |
|---|---|---|---|---|
| Planning | 🧩 拆解任务中... | INFO planner: generated todo.md with 12 subtasks | 8-15s | 日志中出现ERROR planner: ambiguous constraint "budget" |
| Researching | 🔍 检索数据中... | INFO browser: loaded https://finance.yahoo.com/quote/TSLA/financials | 45-90s | WARN browser: timeout after 3 retries for element #main-content |
| Coding | 💻 生成代码中... | INFO coder: wrote dashboard_generator.py (213 lines) | 12-28s | ERROR coder: syntax error in line 87: missing colon |
| Executing | ⚙️ 运行代码中... | INFO executor: container exited with code 0 | 30-110s | CRITICAL executor: OOM killed process (mem=4.2GB) |
| Validating | ✅ 校验结果中... | INFO validator: HTML contains <meta charset="UTF-8"> | 3-8s | ERROR validator: PDF size > 10MB, recompressing... |
| Exporting | 📤 导出成果中... | INFO exporter: converted dashboard.html to report.pdf | 5-12s | WARN exporter: font substitution for Japanese glyphs |
| Delivering | 📬 发送完成! | INFO delivery: emailed to user@domain.com | <1s | ERROR delivery: SMTP auth failed |
3.2.1 基于日志的故障定位实战
假设用户反馈“股票分析任务卡在🔍检索数据中...超过2分钟”,按以下步骤排查:
- 进入任务详情页,点击「查看完整日志」展开实时日志流;
- 搜索关键词
browser,定位最后一条成功日志:INFO browser: navigated to https://finance.yahoo.com/quote/TSLA/financials - 查看后续日志,发现重复出现:
WARN browser: element #main-content not found, retrying (attempt 3/3) - 判断原因:Yahoo Finance改版导致CSS选择器失效。此时应:
- 点击「重试当前步骤」按钮,触发备用路径(改用SEC.gov财报);
- 或在
todo.md中手动修改该子任务为:[x] Scraped financials from SEC.gov (fallback)[ ] Parse 10-Q PDF using PyPDF2
3.3 结果导出:多格式交付与二次加工接口
Manus支持四种导出方式,每种对应不同下游使用场景:
| 导出格式 | 文件示例 | 适用场景 | 二次加工建议 |
|---|---|---|---|
tesla-analysis-20250328.pdf | 投资汇报、客户交付 | 用Adobe Acrobat添加数字签名;用pdfcpu批量添加水印 | |
| HTML | tesla-dashboard.html | 内部协作、快速预览 | 用Puppeteer注入自定义CSS;用Cheerio批量替换图表数据源 |
| Excel | tesla-financials.xlsx | 财务建模、数据复用 | 用openpyxl添加条件格式;用pandas读取后接入BI工具 |
| Shareable Link | https://manus.im/share/brWKUSp51ItvVMBpcXNCZ1 | 跨团队评审、临时分享 | 设置7天有效期;开启“禁止下载”权限 |
提示:导出HTML时,Manus自动内联所有CSS/JS资源(包括Plotly库),生成的单HTML文件可直接双击打开,无需本地服务器。若需嵌入企业内网,只需将该HTML文件上传至WebDAV目录,员工访问
https://intranet.company.com/tesla-dashboard.html即可。
4. 进阶技巧:用自定义工具链扩展Manus能力边界
4.1 注册私有API工具:将内部数据库接入Agent工作流
Manus允许用户注册自定义HTTP工具,使其能调用企业内网API。以接入MySQL销售数据库为例:
- 在「设置→开发者工具」中点击「添加新工具」;
- 填写工具元数据:
- 名称:
sales-db-query - 描述:
Query internal sales database for revenue metrics - 认证方式:
API Key(输入内网API网关密钥)
- 名称:
- 定义请求Schema(OpenAPI 3.0格式):
post: summary: Execute SQL query on sales DB requestBody: required: true content: application/json: schema: type: object properties: query: type: string description: "Valid SQL SELECT statement (no INSERT/UPDATE)" example: "SELECT SUM(revenue) FROM orders WHERE date >= '2025-01-01'" format: type: string enum: [json, csv] default: json responses: '200': description: Query result content: application/json: schema: type: array items: type: object- 在
todo.md中调用该工具:## [ ] Analyze Q1 sales performance - [ ] Query sales DB for regional revenue breakdown - [ ] Generate bar chart comparing APAC vs EMEA
注意:Manus会自动校验
query字段是否为安全SELECT语句(正则过滤INSERT\|UPDATE\|DELETE\|DROP),且强制添加LIMIT 1000防止全表扫描。
4.2 用Python脚本定制结果后处理流程
当标准导出格式不满足需求时,可编写后处理脚本。例如将PDF报告自动拆分为“摘要页+图表页+附录页”三部分:
# split_report.py from pypdf import PdfReader, PdfWriter import sys def split_pdf(input_path, output_prefix): reader = PdfReader(input_path) # 第1页为摘要 writer_summary = PdfWriter() writer_summary.add_page(reader.pages[0]) with open(f"{output_prefix}_summary.pdf", "wb") as f: writer_summary.write(f) # 第2-5页为图表 writer_charts = PdfWriter() for i in range(1, 5): if i < len(reader.pages): writer_charts.add_page(reader.pages[i]) with open(f"{output_prefix}_charts.pdf", "wb") as f: writer_charts.write(f) if __name__ == "__main__": split_pdf(sys.argv[1], sys.argv[2]) # 在Manus中调用(需提前注册为工具) # tools/split-report --input tesla-analysis.pdf --output tesla-split4.2.1 工具注册后的调用链验证
注册后处理工具需通过三重验证:
- 语法验证:Manus解析脚本首行
#!/usr/bin/env python3确认运行环境; - 参数验证:检查
sys.argv数量与文档中--input/--output声明一致; - 沙箱验证:在隔离容器中执行
python split_report.py /tmp/test.pdf /tmp/out,确认生成两个PDF且无权限错误。
验证通过后,该工具将出现在「工具面板」中,用户可在任务步骤中直接选择“Split PDF Report”,输入源文件名与前缀,Manus自动完成调用与结果归档。
4.3 构建领域专用Agent:用提示词工程固化专业流程
针对高频场景(如保险政策对比),可创建领域专用Agent模板:
- 在「设置→Agent模板」中新建模板,命名为
insurance-comparison-v2; - 编写系统提示词(System Prompt):
You are an insurance analyst specializing in US health plans. When comparing policies: 1. Extract deductibles, out-of-pocket max, and covered services from PDFs 2. Normalize drug formulary tiers (Tier 1→Generic, Tier 2→Preferred Brand) 3. Flag policies with <30-day prior authorization for MRI scans 4. Output comparison table in Markdown with color-coded risk indicators预置示例对话(Few-shot Learning):
User: Compare Aetna HDHP vs UnitedHealthcare Choice Plus Assistant: [Generates 5-column table with ✅/⚠️/❌ icons]将该模板绑定至特定任务类型(如“Insurance Policy Analysis”),后续创建同类任务时自动加载此提示词。
提示:模板中
Normalize drug formulary tiers等指令,会引导Manus在todo.md中生成对应子任务:“[ ] Map formulary tiers using CMS Drug Tier Standardization Guide v2025”。
本文还有配套的精品资源,点击获取