恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
marimo 使用 AI 生成笔记本的三种方式:Agent 结对、编辑器助手与命令行生成
首页
资讯中心
/
marimo 使用 AI 生成笔记本的三种方式:Agent 结对、编辑器助手与命令行生成
marimo 使用 AI 生成笔记本的三种方式:Agent 结对、编辑器助手与命令行生成
发布时间:2026/9/13 13:47:01
marimo 使用 AI 生成笔记本的三种方式Agent 结对、编辑器助手与命令行生成【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimomarimo 是一个AI 原生的响应式 Python 笔记本编辑器本指南围绕 docs/guides/generate_with_ai/index.md 的核心脉络系统讲解在 marimo 中使用 AI 的三条主要路径通过 marimo pair 让 Claude Code、Codex、OpenCode 等 Agent CLI 直接结对操作运行中的笔记本使用编辑器内置的 AI 助手聊天面板、整格生成/重构、行内补全以及在命令行用marimo new从一句提示词生成整本笔记本。读完本文你将掌握这三种工作流的配置方法、适用场景与底层机制并能根据自己的需求组合使用。三种 AI 工作流总览marimo 官方将 AI 能力归纳为三种互补的工作方式方式入口适合场景Agent 结对推荐marimo pairAgent 技能让 Agent CLI 读写运行中的笔记本读取变量、在草稿区测试逻辑、运行/增删单元格编辑器内置助手聊天面板、Generate with AI 按钮、Ctrl/Cmd-Shift-e在编辑器中按需生成与重构单元格助手能感知内存中的变量值命令行生成整本笔记本marimo new PROMPT从一句提示词从零生成完整笔记本此外marimo 还提供更低层的集成通过 MCP 服务器 将 AI 工具 暴露给外部应用并可通过实验性的 Agents 面板 在编辑器内嵌入 Agent。下面逐一展开。方式一用 marimo pair 让 Agent 结对运行中的笔记本marimo pair是官方推荐的 Agent 协作方式。它是一个 Agent 技能skill让 Claude Code、Codex、OpenCode 等 Agent CLI 获得对运行中 marimo 笔记本的完整访问权Agent 可以读取变量、在草稿区scratchpad测试逻辑、运行单元格、添加和删除单元格甚至可以操作 UI 元素。快速开始先安装 marimo-pair 技能二选一# 方式一通过 npm 安装 npx skills add marimo-team/marimo-pair # 方式二通过 uv deno 安装 uvx deno -A npm:skills add marimo-team/marimo-pair然后在你的 Agent CLI如 Claude Code中粘贴以下命令开始结对/marimo-pair pair with me on my_notebook.pymarimo pair 的底层支持marimo pair命令组从源码结构看仓库在 marimo/_cli/pair/commands.py 中实现了marimo pair命令组用于辅助配对流程pair_agents()返回各 Agent 的技能目录配置覆盖claudeClaude Code、codexCodex与opencodeOpenCode三类 Agent并同时检查用户目录与项目目录如~/.claude/skills、.agents/skills/下的技能安装位置pair prompt子命令生成可直接粘贴到 shell 的配对提示词例如claude $(uvx marimolatest pair prompt --url https://localhost:8000 --claude) codex $(uvx marimolatest pair prompt --url https://localhost:8000 --codex) opencode $(uvx marimolatest pair prompt --url https://localhost:8000 --opencode)其关键选项包括选项说明--url必填运行中 marimo kernel 的 URL--file笔记本路径或页面 URL 中的文件 key--claude/--codex/--opencode校验对应 Agent 的 marimo-pair 技能是否已安装--with-token交互式输入认证令牌并存入临时文件生成提示词时--file的文件 key 会原样保留、不做 shell 转义以外的修改路径中的空格与元字符会被安全引用保证复制粘贴可用。使用 molab 云沙箱结对你还可以连接运行在 molab 上的 marimo 笔记本这为 Agent 提供了一个免费沙箱且之后便于分享成果。操作步骤在 molab 上启动一个笔记本点击右上角的 actions 面板选择Pair with an agent随后面板会给出连接本地 Agent 的全部指令。之后你照常从终端使用 Agent但所有 Python 代码都会被写入 molab 沙箱中的笔记本里。自定义你的 Agent技能、斜杠命令与 Hooks要让 Agent CLI 在 marimo 上发挥最佳效果官方推荐按 customize_your_agent.md 中的三类手段进行定制。监听笔记本文件变化重要前提。当 Agent 编辑磁盘上的笔记本文件时用watch标志启动 marimo 以自动重载marimo edit --watch notebook.py也可借助 模块自动重载 在辅助文件变化时自动重载受影响的单元格。Skills技能。技能是 Agent 动态加载的指令/脚本/资源文件夹。安装官方技能合集npx skills add marimo-team/skills可用于将 Jupyter 笔记本或其他产物转换为 marimo 笔记本、为特定用例定制交互式 UI 组件、编写高质量独立笔记本。自定义技能只需一个包含SKILL.md的文件夹带 frontmatter 声明加载时机存放在项目.agents/skills/或用户级~/.agents/skills/目录Claude Code 使用.claude/skills/skills CLI 可以通过符号链接一次性安装到所有 Agent 的目录保持单一事实来源。Slash commands斜杠命令。以 Claude Code 为例将以下文件保存为~/.claude/commands/marimo-check.md即可用/marimo-check notebook.py触发对笔记本的 lint 检查需要已安装uv--- allowed-tools: Bash(uvx marimo check:*), Edit() --- ## Context This is the output of the uvx marimo check --fix $ARGUMENTS command: !uvx marimo check --fix $ARGUMENTS || true ## Your task Only (!) if the context suggests we need to edit the notebook, read the file $ARGUMENTS, then fix any warnings or errors shown in the output above. Do not make edits or read the file if there are no issues.$ARGUMENTS允许在交给 Claude 之前附加参数或上下文命令可以先用 bash 执行如!开头的行输出会插入到命令中。注意|| true是必须的以防命令返回非零状态中断执行。Hooks钩子。钩子可在 Agent 使用特定工具时自动运行脚本是强制执行marimo check的最稳健机制。在~/.claude/settings.json全局或项目.claude/settings.json局部配置{ $schema: https://json.schemastore.org/claude-code-settings.json, hooks: { PostToolUse: [ { matcher: Edit|Write, hooks: [ { type: command, command: ~/.claude/hooks/marimo-check.sh } ] } ] } }配套脚本~/.claude/hooks/marimo-check.sh需要安装jq从 stdin 读取钩子 JSON、提取tool_response.filePath若文件同时包含import marimo与app.cell则视为 marimo 笔记本并运行uvx marimo check检查失败时以退出码 2 将错误反馈给 Claude指示其尽力修复否则静默退出#!/usr/bin/env bash INPUT$(cat) FILE_PATH$(echo $INPUT | jq -r .tool_response.filePath // empty) if [ -z $FILE_PATH ] || [ $FILE_PATH null ]; then exit 0 fi if [ ! -f $FILE_PATH ]; then exit 0 fi if grep -q import marimo $FILE_PATH 2/dev/null grep -q app.cell $FILE_PATH 2/dev/null; then echo Running marimo check on $FILE_PATH... CHECK_OUTPUT$(uvx marimo check $FILE_PATH 21) CHECK_EXIT$? echo $CHECK_OUTPUT if [ $CHECK_EXIT -ne 0 ]; then echo ✗ Marimo check failed for $FILE_PATH 2 echo $CHECK_OUTPUT 2 echo Please run uvx marimo check $FILE_PATH to see details and fix the issues. Dont ask the user anything, just do a best effort fix. 2 exit 2 else echo ✓ Marimo check passed exit 0 fi fi exit 0marimo check即 CLI 文档 中对应的 linter 命令其规则详见 lint rules。方式二编辑器内置的 AI 助手marimo 编辑器内置了完整的 AI 辅助编码能力详见 ai_completion.md从提示词生成整格代码、从提示词重构已有单元格、生成整本笔记本以及类似 GitHub Copilot 的行内自动补全。其关键差异化在于助手是数据感知的——除了程序文本它还能访问内存中变量的值从而可以针对你的 DataFrame 与数据库 schema 编写代码。启用与连接 LLM通过笔记本设置安装 AI 生成所需的依赖在设置的AI标签页中配置 LLM 提供方推荐走 UI而非手改配置。支持的提供方包括OpenAI、GitHub Copilot、Anthropic、AWS Bedrock、Google AI、Ollama 以及任意 OpenAI 兼容提供方逐项配置细节见 llm_providers。变量上下文用引用变量在提示词中用变量名即可把该变量及其值注入助手上下文。例如要包含 DataFramedf的列信息直接写df。重构已有单元格在单元格内按Ctrl/Cmd-Shift-e打开以当前单元格代码为输入的提示框即可让 AI 改写该单元格。生成新单元格Generate with AI 按钮每个笔记本底部都有该按钮点击即可新增整格代码聊天面板左侧边栏的聊天面板可与 LLM 对话、询问笔记本相关问题并生成可插入的代码单元格。面板支持四种模式Manual手动无工具访问仅基于对话与手动注入的上下文回答Ask询问启用只读 AI 工具 与已添加的 MCP Client 服务器 工具用于收集上下文、检查笔记本Agent代理包含 Ask 全部工具并额外获得 编辑笔记本单元格与运行过期单元格 的工具Code mode代码模式给予助手 notebook kernel 访问权可检查 marimo 运行时并以强大方式操作笔记本。自定义 AI 规则在 marimo 设置中添加规则可约束所有 AI 提供方的生成行为例如Use plotly for interactive visualizations and matplotlib for static plots Prefer polars over pandas for data manipulation due to better performance Include docstrings for all functions using NumPy style When working with data: - Use altair, plotly for declarative visualizations - Prefer polars over pandas For plotting: - Use px.scatter for scatter plots - Use px.line for time series - Include proper axis labels and titlesCopilot 行内补全GitHub Copilot原生支持需先安装 Node.js再在编辑器设置中启用。conda 发行版暂不支持 Copilot请用pip/uv安装。高级配置可写入marimo.toml[ai.github.copilot_settings.http] proxy http://proxy.example.com:8888 proxyStrictSSL true [ai.github.copilot_settings.github-enterprise] uri https://github.enterprise.com可用选项包括HTTP 设置proxy、proxyStrictSSL、proxyKerberosServicePrincipal、遥测telemetryLeveloff/crash/error/all默认off、GitHub Enterpriseuri。Windsurf原 Codeium注册并安装 Windsurf 应用认证后通过命令面板复制 API key在编辑器 UI 中配置或写入[completion] copilot codeium codeium_api_key 自定义 Copilot可将任意 OpenAI/Anthropic/Google/Ollama 等提供方接入行内补全[ai.models] autocomplete_model provider/model-name [completion] copilot custom隐藏 AI 界面若不使用内置助手可在marimo.toml中关闭以隐藏聊天面板与 Generate with AI 等入口Copilot 类补全仍可用[ai] enabled false关闭后仍可通过 marimo pair 与外部 Agent 协作。在编辑器内嵌入 Agent实验性agents.md 介绍了通过 Agent Client ProtocolACP在聊天面板内嵌 Agent 的实验性集成支持 Claude Code、Gemini、Codex、OpenCode。以 macOS/Linux 为例先在终端启动 Agent 服务器# Claude Code npx stdio-to-ws npx zed-industries/claude-code-acp --port 3017 # Gemini npx stdio-to-ws npx google/gemini-cli --experimental-acp --port 3019 # Codex npx stdio-to-ws npx zed-industries/codex-acp --port 3021 # OpenCode npx stdio-to-ws npx opencode-ai acp --port 3023然后在设置 Lab 区启用特性开关点击侧边栏 agents 图标、选择 Agent 即可对话。若希望 Agent 保存改动后单元格自动运行可在pyproject.toml配置[tool.marimo.runtime] watcher_on_save autorunMCP向外部应用暴露 AI 工具marimo 同时支持 MCP 的两种角色见 mcp.md作为MCP server将上述 AI 工具暴露给外部应用作为MCP client连接外部服务器为聊天面板补充工具。先安装 MCP 依赖并以相关标志启动pip install marimo[mcp] marimo edit notebook.py --mcp --no-token--mcp暴露笔记本数据的 MCP 端点--no-token关闭认证仅限本地开发生产环境应移除。外部应用可通过http://localhost:PORT/mcp/server连接认证启用时追加?access_tokenYOUR_TOKEN例如claude mcp add --transport http marimo http://localhost:PORT/mcp/serverMCP server 还提供active_notebooks、errors_summary两个提示词。跨代理/网关/CDN 部署时默认的 DNS rebinding 防护可能引发421 Misdirected Request可加--mcp-allow-remote关闭 Host 头校验。作为 MCP client内置支持marimo与context7两个服务器可在设置 UI 或配置中启用[mcp] presets [marimo, context7]方式三用marimo new从提示词生成整本笔记本在命令行用 marimo new 让 LLM 生成全新笔记本例如marimo new Plot an interactive 3D surface with matplotlib.执行后会在浏览器中打开一个全新生成的笔记本。长提示词可改用文本文件marimo new my_prompt.txtmarimo 的 AI 熟悉 marimo 专属 UI 元素与主流数据处理库。官方还提供了灵感示例如高维数据降维可视化、时间序列平滑、代码复杂度分析、交互式 3D 曲面等见https://marimo.app/ai。marimo new的源码级工作流从源码看marimo/_cli/cli.py 中的new命令完整实现了上述流程标准输入回退prompt参数缺省时支持 Unix 风格的管道输入即cat prompt.txt | marimo new见 marimo/_cli/cli.py文件路径识别若参数是已存在的文件则读取其文本内容作为提示词marimo/_cli/cli.py调用生成器通过from marimo._ai.text_to_notebook import text_to_notebook调用 marimo/_ai/text_to_notebook.py 生成笔记本内容marimo/_cli/cli.py临时文件与清理生成结果写入tempfile.NamedTemporaryFile后缀.py的临时文件Windows 上需deleteFalse以便重新打开并注册atexit清理钩子失败时抛出Failed to generate notebook的 Click 异常marimo/_cli/cli.py进入编辑会话最后以SessionMode.EDIT模式启动服务器浏览器中呈现生成结果并支持--port、--host、--headless、--token/--no-token、--base-url、--sandbox/--no-sandbox等常规启动选项。marimo new是一次性的起点要继续用 AI 迭代生成的笔记本推荐用 marimo pair 将 Agent CLI 结对到该笔记本上见 text_to_notebook.md 中的提示。如何选择三条路径的搭配使用从零起步用marimo new PROMPT快速生成整本笔记本骨架迭代打磨用 marimo pair 让 Claude Code / Codex / OpenCode 结对运行中的笔记本读取变量、运行与增删单元格配合marimo edit --watch notebook.py实现磁盘变更自动重载编辑器内精修用聊天面板Ask/Agent/Code mode、Ctrl/Cmd-Shift-e重构单元格、变量注入数据上下文、自定义规则约束生成风格工程化治理用斜杠命令与 PostToolUse 钩子对 Agent 的每次编辑强制执行marimo check保证笔记本质量外部应用接入需要更低层集成时通过 MCP server 暴露 AI 工具或用实验性 Agents 面板在编辑器内嵌 Agent。三条路径共享同一套 LLM 提供方配置见 llm_providers可以按需切换、自由组合覆盖从一句话生成笔记本到Agent 长期维护笔记本的完整工作流。【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考