Cursor 中的 Manus 研究方式指南

简介

本文档介绍如何在 Cursor 编辑器中设置规则(rules)并使用 mcp 工具,实现基于 Manus 的研究工作流。Manus 研究方式是一种结构化的任务处理方法,通过明确的步骤、工具和文件组织方式来高效完成数据分析和研究任务。

什么是 Cursor Rules

Cursor Rules 是提供给 AI 助手的额外上下文和指导,让 AI 更好地理解用户的需求和代码库。通过设置 Rules,我们可以自定义 AI 助手的行为模式,使其按照我们期望的方式工作。

设置 Manus 研究方式的 Cursor Rule

步骤 1:创建 Rule 文件

在项目根目录下创建一个 .cursor 目录(如果不存在的话),然后在该目录下创建一个规则文件。常见的规则文件格式有:

  • .mdc(Markdown 文件)
  • .py(Python 文件)
  • .json(JSON 文件)

对于 Manus 研究方式,我们创建名为 formanus.mdc 的文件:

mkdir -p .cursor touch .cursor/formanus.mdc

步骤 2:编写 Rule 内容

编辑 formanus.mdc 文件,添加以下内容:

# 使用manus的方式研究 - You can @ files here - You can use markdown but dont have to - You are a assistant, when you get a task, you will do it step by step. you will generate a todo.md, and you will update it when you finish a step. - If you get data analysis task, you will use Python-based data science - Use Python 3.12 as the primary programming language - Use NumPy for numerical computing and array operations - Use Pandas for data manipulation and analysis - Use conda for environment and package management - Use Dash for web based report - Use a seperated file to Generate a web based report, pretty, modern and interactive - Run a web server And give me the url - Use Website Preview and firecrawl to get web content - Use a seperated file to store project summary - Use a seperated file to store todo list - Use a seperated directory to store all files from one task - Store all process data in files under the task directory

这个规则定义了以下主要内容:

  1. 任务处理方式:逐步执行,维护 todo.md 记录进度
  2. 技术栈选择:Python 3.12, NumPy, Pandas, conda
  3. 报告生成:使用 Dash 创建交互式网页报告
  4. 文件组织:为每个任务创建独立目录,分离存储项目摘要、任务列表和处理数据

步骤 3:验证规则是否生效

创建规则后,可以通过以下方式验证规则是否生效:

  1. 在 Cursor 中打开一个新的聊天窗口
  2. 询问 AI 关于当前规则的内容
  3. AI 应该能够识别并引用 formanus 规则

使用 MCP 工具进行 Web 内容获取

Manus 研究方式中的一个重要组成部分是使用 mcp 工具(尤其是 firecrawl 相关功能)获取网页内容。以下是使用这些工具的方法:

使用 firecrawl_scrape 抓取单个网页

使用mcp__firecrawl_scrape工具抓取单个网页内容: - url参数指定要抓取的网页URL - formats参数可以指定返回格式,如markdown、html等 - onlyMainContent设为true可以过滤掉导航栏、页脚等内容

使用 firecrawl_search 进行网络搜索

使用mcp__firecrawl_search工具搜索网络内容: - query参数指定搜索查询 - limit参数限制返回结果数量 - 可以通过scrapeOptions参数指定是否需要抓取搜索结果的详细内容

使用 firecrawl_deep_research 进行深度研究

使用mcp__firecrawl_deep_research工具进行深入研究: - query参数指定研究主题 - maxDepth参数控制研究深度 - maxUrls参数限制分析的URL数量

Manus 研究工作流程示例

以下是一个典型的 Manus 研究工作流程:

  1. 接收任务:得到一个研究或数据分析任务

  2. 创建任务目录和初始文件

    mkdir task_name cd task_name touch todo.md project_summary.md
  3. 生成初始 todo 列表:在 todo.md 中列出任务步骤

  4. 数据获取:使用 firecrawl 相关工具获取 Web 内容或其他数据源

  5. 数据处理:使用 Python、Pandas 等工具进行数据清洗和分析

  6. 报告生成:使用 Dash 创建交互式 Web 报告

  7. 运行 Web 服务器:展示分析结果

  8. 更新任务进度:不断更新 todo.md 反映完成情况

实际应用案例

假设我们有一个分析某公司股票价格趋势的任务:

  1. 创建目标文件和初始 todo.md
  2. 使用 firecrawl 获取股票历史数据
  3. 使用 Pandas 处理数据
  4. 使用 Dash 创建交互式可视化
  5. 生成分析报告和结论

实际操作示例:使用 MCP 工具分析某公司市场表现

下面我们通过一个完整的示例,展示如何使用 Manus 研究方式结合 MCP 工具进行数据分析:

1. 任务定义与初始化

假设我们要分析某科技公司(如 Apple)的市场表现和新闻情况:

首先创建任务目录和初始文件:

mkdir apple_market_analysis cd apple_market_analysis touch todo.md project_summary.md

初始化 todo.md 文件内容:

# Apple市场分析任务清单 - [ ] 获取Apple公司基本信息 - [ ] 搜集最近一个月的Apple相关新闻 - [ ] 获取Apple股票价格数据 - [ ] 分析股价与新闻事件的相关性 - [ ] 使用Dash创建交互式数据可视化 - [ ] 生成分析报告

2. 使用 MCP 工具获取数据

获取基本公司信息

# 在Cursor聊天窗口中使用以下方式调用工具: # 获取Apple公司的基本信息 使用mcp__firecrawl_scrape工具: - url: "https://en.wikipedia.org/wiki/Apple_Inc." - formats: ["markdown"] - onlyMainContent: true

Cursor 会调用 firecrawl_scrape 工具并返回 Apple 公司的维基百科页面内容。将返回的内容保存到文件:

# 将结果保存到文件 with open('apple_info.md', 'w') as f: f.write(scrape_result)

获取相关新闻

# 搜索Apple公司相关的最新新闻 使用mcp__firecrawl_search工具: - query: "Apple Inc. news last month financial performance" - limit: 10 - scrapeOptions: - formats: ["markdown"] - onlyMainContent: true

将搜索结果保存:

# 将新闻搜索结果保存到文件 with open('apple_news.md', 'w') as f: f.write(news_results)

获取股票数据

我们可以使用 firecrawl_scrape 获取 Yahoo Finance 上的股票数据:

# 获取Apple股票数据 使用mcp__firecrawl_scrape工具: - url: "https://finance.yahoo.com/quote/AAPL/history/" - formats: ["html"] - onlyMainContent: true

3. 数据处理与分析

创建一个数据处理脚本:

# 创建名为process_data.py的文件 import pandas as pd import numpy as np import re from datetime import datetime # 处理股票数据 def extract_stock_data(html_content): # 使用pandas从HTML中提取表格数据 tables = pd.read_html(html_content) stock_data = tables[0] # 假设股票历史数据在第一个表格 # 清洗和处理数据 stock_data['Date'] = pd.to_datetime(stock_data['Date']) stock_data.sort_values('Date', inplace=True) # 保存处理后的数据 stock_data.to_csv('apple_stock_data.csv', index=False) return stock_data # 处理新闻数据 def process_news(news_content): # 简单的正则表达式提取日期和标题 pattern = r'(\d{1,2}\s+[A-Za-z]+\s+\d{4}).*?([A-Z].*?)(?=\n)' matches = re.findall(pattern, news_content) if matches: news_data = [] for date_str, title in matches: try: date = datetime.strptime(date_str, '%d %B %Y') news_data.append({'Date': date, 'Title': title}) except ValueError: continue news_df = pd.DataFrame(news_data) news_df.to_csv('apple_news_processed.csv', index=False) return news_df return pd.DataFrame() # 分析股价与新闻的相关性 def analyze_correlation(stock_df, news_df): # 合并数据集 merged_data = pd.merge_asof( stock_df.sort_values('Date'), news_df.sort_values('Date'), on='Date', direction='nearest' ) # 简单分析:计算有新闻和无新闻天的股价变化差异 with_news = merged_data.dropna(subset=['Title']) without_news = merged_data[~merged_data.index.isin(with_news.index)] avg_change_with_news = with_news['Close'].pct_change().mean() avg_change_without_news = without_news['Close'].pct_change().mean() results = { 'avg_change_with_news': avg_change_with_news, 'avg_change_without_news': avg_change_without_news, 'difference': avg_change_with_news - avg_change_without_news } with open('correlation_analysis.txt', 'w') as f: for k, v in results.items(): f.write(f"{k}: {v}\n") return results # 主函数 def main(): with open('apple_stock_data.html', 'r') as f: html_content = f.read() with open('apple_news.md', 'r') as f: news_content = f.read() stock_df = extract_stock_data(html_content) news_df = process_news(news_content) if not news_df.empty: results = analyze_correlation(stock_df, news_df) print("分析完成,结果已保存到correlation_analysis.txt") if __name__ == "__main__": main()

4. 创建交互式可视化

创建一个 Dash 应用来展示分析结果:

# 创建名为visualization.py的文件 import dash from dash import dcc, html import plotly.graph_objs as go import pandas as pd import numpy as np from datetime import datetime, timedelta # 加载数据 stock_data = pd.read_csv('apple_stock_data.csv') stock_data['Date'] = pd.to_datetime(stock_data['Date']) news_data = pd.read_csv('apple_news_processed.csv') news_data['Date'] = pd.to_datetime(news_data['Date']) # 初始化Dash应用 app = dash.Dash(__name__) # 创建布局 app.layout = html.Div([ html.H1("Apple公司市场表现分析"), html.Div([ html.H2("股票价格走势"), dcc.Graph( id='stock-price-chart', figure={ 'data': [ go.Scatter( x=stock_data['Date'], y=stock_data['Close'], mode='lines', name='收盘价' ) ], 'layout': go.Layout( xaxis={'title': '日期'}, yaxis={'title': '价格'}, hovermode='closest' ) } ) ]), html.Div([ html.H2("新闻事件与股价关系"), dcc.Graph( id='news-stock-chart', figure={ 'data': [ go.Scatter( x=stock_data['Date'], y=stock_data['Close'], mode='lines', name='收盘价' ), go.Scatter( x=news_data['Date'], y=[stock_data.loc[stock_data['Date'] == date, 'Close'].values[0] if any(stock_data['Date'] == date) else np.nan for date in news_data['Date']], mode='markers', marker={'size': 10, 'color': 'red'}, name='新闻事件' ) ], 'layout': go.Layout( xaxis={'title': '日期'}, yaxis={'title': '价格'}, hovermode='closest' ) } ) ]), html.Div([ html.H2("新闻列表"), html.Ul([ html.Li([ html.Span(f"{row['Date'].strftime('%Y-%m-%d')}: "), html.Span(row['Title']) ]) for _, row in news_data.iterrows() ]) ]) ]) # 运行服务器 if __name__ == '__main__': app.run_server(debug=True)

5. 更新任务进度和项目摘要

完成上述步骤后,更新 todo.md 文件:

# Apple市场分析任务清单 - [x] 获取Apple公司基本信息 - [x] 搜集最近一个月的Apple相关新闻 - [x] 获取Apple股票价格数据 - [x] 分析股价与新闻事件的相关性 - [x] 使用Dash创建交互式数据可视化 - [x] 生成分析报告

创建项目摘要文件:

# Apple市场分析项目摘要 ## 项目目标 分析Apple公司股票价格与新闻事件的关系,探索市场新闻对股价的影响。 ## 数据来源 - Apple公司基本信息:维基百科 - 股票数据:Yahoo Finance - 新闻数据:搜索引擎结果 ## 主要发现 1. 新闻发布日的股价波动比非新闻日平均高出X% 2. 积极新闻与股价上涨有明显相关性 3. 产品发布相关新闻对股价影响最大 ## 工具与方法 - 数据获取:MCP Firecrawl工具 - 数据处理:Pandas - 数据可视化:Dash和Plotly ## 结论 通过分析发现,Apple公司的重大新闻事件确实会对股价产生短期影响,特别是产品发布和财报相关的新闻。投资者可以利用这一发现进行投资决策。 ## 下一步研究方向 1. 扩大时间范围,分析长期趋势 2. 加入情感分析,区分积极/消极新闻的影响 3. 比较Apple与其他科技公司的情况

6. 运行 Web 服务器

python visualization.py

服务器运行后,可以通过浏览器访问 http://localhost:8050 查看交互式数据可视化。

常见问题解答(FAQ)

1. 规则设置相关问题

Q: 如何确认我的 Cursor 规则已经生效?

A: 在 Cursor 聊天窗口中,询问 AI 关于当前规则的内容。例如:"请告诉我当前的 formanus 规则内容是什么?"如果 AI 能够正确回答,说明规则已生效。

Q: 我可以同时设置多个规则吗?

A: 是的,你可以在 .cursor 目录下创建多个规则文件,Cursor 会根据上下文和需求应用相应的规则。

Q: 规则文件支持哪些格式?

A: Cursor 规则主要支持以下格式:

  • .mdc (Markdown)
  • .py (Python)
  • .json (JSON)
  • 其他文本格式

2. MCP 工具使用问题

Q: firecrawl 工具是否会记住之前的会话上下文?

A: 不会,每次调用 firecrawl 工具都是独立的,不会保留之前会话的上下文。因此,在连续使用时需要手动保存和传递必要的信息。

Q: 使用 firecrawl_search 时如何获得更精确的结果?

A: 使用更具体的搜索词,并利用以下参数优化搜索:

  • 添加地理位置参数(country)
  • 设置语言参数(lang)
  • 使用时间筛选(tbs)
  • 限制结果数量(limit)

Q: 网站内容抓取被阻止怎么办?

A: 有些网站可能会阻止自动抓取。在这种情况下,你可以:

  • 使用 skipTlsVerification: true 参数(如果问题是 SSL 证书相关)
  • 尝试设置 mobile: true 来模拟移动设备
  • 添加等待时间 waitFor: 5000(以毫秒为单位)让动态内容加载
  • 对于需要交互的网站,使用 actions 参数模拟点击、滚动等操作

3. 数据处理和分析问题

Q: 推荐的 conda 环境设置是什么?

A: 以下是一个示例的 environment.yml 文件,适用于 Manus 研究方式:

name: manus_research channels: - conda-forge - defaults dependencies: - python=3.12 - pandas - numpy - dash - plotly - jupyterlab - scikit-learn - matplotlib - seaborn - requests - beautifulsoup4 - nltk - pip - pip: - dash-bootstrap-components

Q: 如何处理大量数据导致的性能问题?

A: 处理大数据集时的建议:

  • 使用数据采样进行初步分析
  • 考虑使用 daskvaex 等库处理超大规模数据
  • 实现增量处理逻辑,分批处理数据
  • 优化数据类型(如使用 categoricals、减少精度等)
  • 实现缓存机制,避免重复计算

Q: Dash 应用如何部署到生产环境?

A: Dash 应用的部署选项:

  1. 使用 Heroku:heroku create && git push heroku main
  2. 使用 AWS Elastic Beanstalk
  3. 使用 Docker 容器化:创建 Dockerfile 并部署到任何支持 Docker 的服务
  4. 本地部署:使用 Gunicorn 作为 WSGI 服务器 gunicorn app:server

4. 工作流程优化问题

Q: 如何有效地组织多个相关研究任务?

A: 建议采用以下方式组织多个相关任务:

  • 创建一个主项目目录
  • 在其下创建子目录,每个子目录对应一个具体任务
  • 创建一个主摘要文件,链接到各个子任务
  • 使用版本控制(如 Git)跟踪所有变更
  • 维护一个统一的数据字典,记录所有数据字段的含义和来源

Q: 如何在团队中共享 Manus 研究方式?

A: 团队协作的最佳实践:

  • .cursor 目录加入版本控制
  • 创建项目级的 README,说明工作流程和规则
  • 标准化文件命名和目录结构
  • 使用共享的 conda 环境定义
  • 创建模板脚本作为起点
  • 定期同步和讨论 todo.md 的更新情况

Q: 如何自动化重复性任务?

A: 自动化 Manus 工作流的方法:

  • 创建可重用的 Python 模块封装常见功能
  • 使用 Airflow 或 luigi 等工具构建数据处理管道
  • 设置 GitHub Actions 自动运行分析和生成报告
  • 创建自定义的命令行工具简化操作
  • 实现自动化测试确保分析质量

总结

通过在 Cursor 中设置 formanus 规则并结合 mcp 工具,我们可以实现结构化、高效的研究工作流程。这种方式的优点包括:

  1. 任务透明度高:通过 todo.md 可以清晰跟踪进度
  2. 工具链统一:使用一致的技术栈进行分析
  3. 结果可视化强:通过 Dash 生成交互式报告
  4. 文件组织清晰:每个任务独立存储,结构明确
  5. 网络内容获取便捷:集成 firecrawl 等工具

通过这种方式,可以极大提高研究和数据分析任务的效率和质量。

1 操作
xiaowangzhixiao 在 2025-04-23 00:01:05 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...