3作者: gregpr073 个月前原帖
嘿,HN, 我们厌倦了浏览器框架对大型语言模型(LLM)的限制,因此我们去掉了框架,让LLM可以自由发挥,尽情使用它所训练的内容。我们赋予了这个工具自我纠正的能力,并允许LLM在需要时添加新工具(如果它已经预训练过的话)。 我们的浏览器使用库包含数万行确定性的启发式代码,封装了Chrome(CDP websocket)。包括元素提取器、点击助手、目标管理(超级痛苦)、监控程序(崩溃处理、文件下载、警报)、跨域iframe(如果你想点击一个元素,必须先切换目标,这非常麻烦)等。 监控程序特别痛苦,但却是必需的。例如,如果Chrome触发了一个本地文件弹出窗口,代理就会完全卡住。因此,有两种解决方案: 1. 一一编码这些启发式和边缘情况并加以防范 2. 给LLM一个工具来处理这些边缘情况 可以想象,这样的启发式代码数量庞大,因此如果你选择第二种方案,最终会得到很多工具。所以你必须做出妥协,干脆编码这些启发式代码。 但是,如果LLM“知道”CDP足够好,能够在遇到跨域iframe时切换目标,在警报出现时将其关闭,编写自己的点击助手或上传功能,那么你就不必担心这些边缘情况了。 事实证明,现如今LLM对CDP的理解相当不错。因此,我们对这个工具进行了“苦涩的调整”。应该保留下来的概念有: - 一个保持CDP websocket活跃的东西(守护进程) - 极其基础的工具(helpers.py) - 解释如何使用的skill.md 新的范式是什么?SKILL.md + 几个需要能够动态更改的Python助手。 一个很酷的例子: 我们忘记实现upload_file函数。然后在任务进行中,代理想要上传一个文件,于是它搜索helpers.py,什么也没找到,结果自己用原生的DOM.setFileInputFiles编写了这个函数(我们后来在git diff中才注意到这一点)。这是一个非常神奇的时刻,展示了LLM的强大。 与其他方法(Playwright MCP、浏览器使用CLI、代理-浏览器、Chrome开发者工具MCP)相比:它们都将Chrome封装在一组预定义的函数中供LLM使用。最糟糕的失败模式是沉默。LLM的click()返回正常,因此LLM认为它已经点击了,但在这个特定网站上实际上什么也没发生。它继续前进,带着一个错误的世界模型。浏览器工具为LLM提供了最大的自由和完美的上下文,帮助它理解工具的实际工作方式。 以下是浏览器工具可以做的一些疯狂示例: - 玩国际象棋引擎Stockfish [链接](https://x.com/shawn_pana/status/2046457374467379347) - 在俄罗斯方块中创下世界纪录 [链接](https://x.com/shawn_pana/status/2047120626994012442) - 找到用JavaScript画心形的方法 [链接](https://x.com/mamagnus00/status/2046486159992480198?s=20) 你可以通过告诉Claude代码轻松安装它: `为我设置 <a href="https://github.com/browser-use/browser-harness">https://github.com/browser-use/browser-harness</a>。` 仓库:[链接](https://github.com/browser-use/browser-harness) 你会如何称呼这个新范式?一种方言吗?
2作者: thinkingtoilet3 个月前原帖
我的公司开始探索人工智能编程。我是一名拥有20多年经验的开发人员,负责帮助公司了解如何利用这一工具。我只使用过Claude,因此我的经验仅限于此。 正如你可能猜到的,我发现人工智能在某些方面非常出色,而在其他方面则表现得相当糟糕。我所阅读的许多内容和观看的演示都与合理的代码库有关。然而,我们的代码库并不合理。它已有超过20年的历史,由多位不同的开发人员编写,风格、设计模式各异……这正是一个小公司经过数十年缓慢发展所能预期的情况。我还在医疗领域工作,因此缓慢演变的旧代码库是常态。 人工智能不断失败的原因之一是它无法理解整个代码库的上下文。它无法在每个会话中保持这种上下文。因此,除非有一位熟悉系统的技术开发人员进行指导,否则它会主动向系统添加冗余内容。我在尽可能的情况下使用记忆功能,但它必须定期读取大量代码,这会消耗很多令牌。我在专业账户上经常达到使用限制。 你对此有什么经验吗?有没有提高输出和降低成本的技巧或建议?任何帮助都非常感谢。谢谢!
2作者: dinarino3 个月前原帖
你好!我们是Vincenzo和Riccardo,我们开发了Doxa,这是一款用于约束场景(如地缘政治、经济等)中代理人模拟的通用引擎,能够与像Qwen2.5:7B、Llama等大型语言模型以及云模型如Gemini良好协作。<p>Doxa可以在几分钟内通过YAML场景进行配置,您可以为代理人分配角色、投资组合和约束条件。<p>这里有一个现成的Colab示例:<a href="https://colab.research.google.com/github/VincenzoManto/Doxa/blob/main/notebooks/doxa.ipynb" rel="nofollow">https://colab.research.google.com/github/VincenzoManto/Doxa/...</a><p>欢迎告诉我们您的想法!
1作者: niothiel3 个月前原帖
我正在开发一个网页应用程序 <a href="https://cardcast.gg" rel="nofollow">https://cardcast.gg</a>,用于远程玩纸质《万智牌》。你只需将摄像头对准你的游戏区域,它就能识别你放下的牌。这是我为我的朋友们每周游戏而构建的一个替代于 Spelltable 的工具。 主要的技术区别在于检测。Spelltable 使用感知哈希,而 cardcast 则使用现代的 ViT 架构,因此速度更快,准确性更高。如果你从 Moxfield、Archidekt 或 MTGGoldfish 导入牌组列表,搜索将缩小到该牌组的卡池,从而大大减少误判。 目前我已经实现的功能包括: - 与 Spelltable 功能相当。 - 无需注册。创建游戏,分享链接,开始游戏(少于 30 秒即可开始)。 - 生命值、君主追踪、先攻、回合计时器、悬停时显示卡片信息。 - 在浏览器中运行,使用 WebRTC 进行视频/音频,检测在服务器端按请求进行。 我希望未来能实现的目标包括: - 将推理移到客户端(WebGPU / Web Workers)。 - (前提是上述功能运行良好)在 AR 类似的叠加层中持续检测卡片。 - 在产品中构建更多的卡片智能,以避免在游戏中途需要谷歌搜索(这是我们小组游戏速度慢的主要原因)。 我发布这个的原因是:核心功能已经可以使用,我的小组每周都在使用它,但我希望能找到更多热情的用户来贡献或帮助规划未来的路线图——无论是代码(Python/FastAPI + React/TS)、计算机视觉工作,还是定期玩游戏并告诉我哪里有问题。 试试吧:<a href="https://cardcast.gg" rel="nofollow">https://cardcast.gg</a> Discord: <a href="https://discord.gg/axRtvbsfAU" rel="nofollow">https://discord.gg/axRtvbsfAU</a> 欢迎在评论中深入讨论检测流程、托管经济(Oracle 免费套餐对此非常有帮助!)或其他任何问题。构建这个项目的过程既有趣又富有教育意义,现在我希望能与你们分享。 :)