返回首页
最新
嗨,HN!我们很高兴地分享 marimo pair [1] [2],这是一个工具包,可以将 AI 代理嵌入到正在运行的 marimo notebook [3] 会话中。这使得代理可以将 marimo 作为工作记忆和反应式 Python 运行时,同时也方便人类与代理在计算研究和数据工作中进行协作。
<p>GitHub 仓库:<a href="https://github.com/marimo-team/marimo-pair" rel="nofollow">https://github.com/marimo-team/marimo-pair</a></p>
<p>演示:<a href="https://www.youtube.com/watch?v=6uaqtchDnoc" rel="nofollow">https://www.youtube.com/watch?v=6uaqtchDnoc</a></p>
marimo pair 被实现为一种代理技能。通过以下命令将您选择的代理连接到正在运行的 notebook:
<p>/marimo-pair pair with me on my_notebook.py</p>
代理可以执行人类在 marimo 中可以做的任何操作,甚至更多。例如,它可以通过在临时草稿板中运行代码来获取反馈(检查变量、针对程序状态运行代码、读取输出)。如果它想要持久化状态,代理可以添加单元格、删除单元格,并安装包(marimo 会在相关的 notebook 中记录这些操作,而 notebook 只是一个 Python 文件)。代理甚至可以操控 marimo 的用户界面——为了好玩,试着让您的代理在配对会话中向您问好。
代理通过在 marimo 内核中运行 Python 代码来执行所有操作。在幕后,marimo pair 技能解释了如何发现和创建 marimo 会话,以及如何使用我们称之为代码模式的半私有接口来控制它们。
代码模式允许模型将 marimo 视为一个扩展其上下文窗口的 REPL,类似于递归语言模型(RLMs)。但与传统的 REPL 不同,marimo 的“REPL”逐步构建一个可重复的 Python 程序,因为 marimo notebook 是具有明确执行语义的数据流图。当使用代码模式时,代理在 marimo 的保护措施下保持在正确的轨道上,这些保护措施包括消除隐藏状态:运行一个单元格时,依赖的单元格会自动运行,删除一个单元格时,其变量会从内存中清除。
通过让模型完全控制一个有状态的反应式编程环境,而不是一组临时脚本,marimo pair 使代理成为研究和数据工作的积极参与者。在我们的早期实验中 [4],我们发现 marimo pair 加速了数据探索,使得在测试研究假设时轻松引导代理,并且可以作为 RLM 的后端,生成一个 notebook,作为模型如何回答查询的可执行轨迹。我们甚至使用 marimo pair 来查找和修复自身及 marimo 的错误 [5]。在这些例子中,notebook 不仅是一个计算基础,还成为人类与代理之间协作的画布,以及一个由散文、代码和视觉元素组成的可执行、具有文学性的工件。
<p>marimo pair 仍处于早期实验阶段。我们非常希望听到您的想法。</p>
<p>[1] <a href="https://github.com/marimo-team/marimo-pair" rel="nofollow">https://github.com/marimo-team/marimo-pair</a></p>
<p>[2] <a href="https://marimo.io/blog/marimo-pair" rel="nofollow">https://marimo.io/blog/marimo-pair</a></p>
<p>[3] <a href="https://github.com/marimo-team/marimo" rel="nofollow">https://github.com/marimo-team/marimo</a></p>
<p>[4] <a href="https://www.youtube.com/watch?v=VKvjPJeNRPk" rel="nofollow">https://www.youtube.com/watch?v=VKvjPJeNRPk</a></p>
<p>[5] <a href="https://github.com/manzt/dotfiles/blob/main/.claude/skills/marimo-dev/SKILL.md" rel="nofollow">https://github.com/manzt/dotfiles/blob/main/.claude/skills/marimo-dev/SKILL.md</a></p>
这个演示结合了Gemini ER的灵活任务编程和推理(场景是什么,我应该做什么?)以及经典的相机标定、运动学和运动控制器。每一层都是独立可替换的,AI模型不需要了解机器人的具体实现。这重现了感知-规划-行动架构的模块化,同时保留了基础AI模型的语义推理能力。有关权衡的详细说明可以在页面上找到,链接为:<a href="https://www.avikde.me/building-a-reasoning-hierarchical" rel="nofollow">https://www.avikde.me/building-a-reasoning-hierarchical</a>。
我一直认为代码就是诗,但从未找到展示它的方式。我也喜欢音频(在空闲时间做DJ)。<p>在制作个人网站时,我决定进行一些实验,最终找到了展示我所看到的诗意的方法。<p>代码行星:将GitHub的贡献转化为行星和声音。<p>你还可以输入你的GitHub用户名,生成你自己的行星和音乐。<p>这个项目是用three.js和tone.js制作的,并且在Cursor上运行。能够创造这样的体验,并将其作为创意工具,真是太好了。<p>你可以创建自己的行星,并与预设的音频滤镜和参数分享。
我创建了RefearnApp,这是一个开源的、自托管的联盟跟踪工具,您可以在自己的基础设施上运行。<p>它允许您跟踪推荐和佣金,管理支付,并完全拥有您的财务和联盟数据。您可以在自己的虚拟专用服务器(VPS)上运行所有内容,完全避免在应用中使用第三方脚本。<p>我们的目标是让您对自己的联盟系统拥有完全的控制权,而不是依赖外部平台。<p>我非常希望能听到您对目前在产品中设置联盟跟踪的反馈,以及您在现有工具中遇到的问题。<p>GitHub: <a href="https://github.com/ZAK123DSFDF/refearnapp" rel="nofollow">https://github.com/ZAK123DSFDF/refearnapp</a>
我妻子在我生日时送了我一台Commodore 64 Ultimate(<a href="https://www.commodore.net" rel="nofollow">https://www.commodore.net</a>),但为了玩弄它而必须连接一整台显示器,实在是太麻烦了。当我发现Ultimate FPGA板支持通过网络流式传输视频和音频数据,并且提供REST API以便进行文件和配置管理时,我开始着手开发一个应用程序,以便远程控制我的新设备。
<p>- 通过网络查看和听到你的Commodore 64 Ultimate或Ultimate 64设备,配备完全可配置的CRT着色器,让你可以调节到理想的复古感觉。
<p>- 查看和管理设备上的文件,支持拖放文件夹/文件上传,并能够运行和挂载磁盘,创建新的磁盘映像等。
<p>- BASIC Scratchpad是应用程序中的一个迷你IDE,你可以在其中编写BASIC应用程序,并直接发送到任何连接的设备上运行。
<p>- 键盘转发功能允许你使用电脑键盘与设备进行交互,包括一个专为Commodore特定键设计的键盘覆盖,弥补你键盘上缺失的按键。
<p>- 视觉内存查看器和编辑器,以及类似终端的内存查看器和编辑器,便于调试和修改。
<p>- 内置支持干净地录制视频和截取屏幕截图。
<p>- 完全原生的macOS AppKit应用程序。
<p>这是我录制并发送给App Review的2.0版本的粗略演示视频,昨天已获批准:<a href="https://www.youtube.com/watch?v=_2wJO2wOGm8" rel="nofollow">https://www.youtube.com/watch?v=_2wJO2wOGm8</a>
<p>请再次注意,此应用程序仅适用于Commodore 64 Ultimate或Gideon的Ultimate 64设备。Ultimate II不具备支持显示的数据流功能。