1作者: m_barsukou3 个月前
大家好, 我一直以来都想在 Go 方面提升自己,但一直没有合适的展示机会。 我想 - 也许可以利用 Go 在 API 解决方案和工具方面的出色性能。 我特别想确认 Go 的 goroutine 能够很好地处理一些扇出操作,例如,接收请求、记录日志、发布事件,而不会导致明显的性能下降。 我在 AWS 方面有相当多的经验,尤其是在无服务器架构方面。基本上,除了 EventBridge 之外,没有其他调度选项,尽管它有一个不错的免费套餐。但如果你不在 AWS 基础设施内呢,因为基础设施本身可能很昂贵,尤其是在他们取消了“12 个月试用”之后。 所以,我认为类似 cron-as-a-service 的东西可能是一个好的起点。 我决定采用一个直接的堆栈:Go API 服务器、Postgres、Redis 作为作业队列和缓存,所有这些都运行在单个每月 5 欧元的 Hetzner VPS 上,位于 Caddy 之后。 我读到可以使用 Redis 作为队列。因此,也想尝试一下——通过 LPUSH/BRPOP 使用作业队列,并使用 5 分钟 TTL 的 API 密钥缓存,这可以减少每个经过身份验证的请求中对 Postgres 的调用次数。 为了验证性能表现,我从欧洲内部运行了一个基准测试——10,000 个请求,100 个并发,针对实时 API: 请求/秒:621 平均延迟:158 毫秒(网络主导——服务器位于 Hetzner 德国) p99:442 毫秒 最快:84 毫秒 大部分延迟是跨欧洲的往返时间。实际的服务器处理时间——Go 处理程序 + 本地 Postgres 查询——花费的时间要少得多。但即便如此,这还是针对一个非常基本的 Hetzner VPS 实例。 很乐意收到任何反馈——尤其是在调度程序设计方面,以及工作池方法是否可以处理实际负载。
3作者: gregpr073 个月前
Hey HN, 我们厌倦了浏览器框架对 LLM 的限制,所以我们移除了框架,让 LLM 拥有最大的自由度,可以做它训练过的任何事情。我们赋予了工具链自我修正和添加新工具的能力,如果 LLM 需要(并且预先训练过)的话。 我们的 Browser Use 库有数万行确定性启发式方法,用于封装 Chrome (CDP websocket)。包括元素提取器、点击助手、目标管理(超级痛苦)、看门狗(崩溃处理、文件下载、警报)、跨域 iframe(如果你想点击一个元素,你必须先切换目标,非常烦人)等等。 特别是看门狗非常痛苦,但又是必需的。例如,如果 Chrome 触发了原生文件弹出窗口,代理就会完全卡住。所以有两种解决方案: 1. 逐个编写这些启发式方法和边缘情况,并阻止它们 2. 给 LLM 一个处理边缘情况的工具 可以想象——有大量的类似启发式方法,所以如果你想采用方案 2,最终会得到很多工具。所以你必须做出妥协,并且只编写那些启发式方法。 但如果 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、agent-browser、chrome devtools MCP)相比:它们都用一组预定义的函数封装了 Chrome,供 LLM 使用。最糟糕的失败模式是静默的。LLM 的 click() 返回正常,所以 LLM 认为它点击了,但在这个特定的网站上什么也没发生。它带着一个被破坏的世界模型继续前进。Browser Harness 赋予 LLM 最大的自由度,并提供了关于工具实际工作方式的完美上下文。 以下是 Browser Harness 可以做的一些疯狂例子: * 玩 stockfish <a href="https://x.com/shawn_pana/status/2046457374467379347" rel="nofollow">https://x.com/shawn_pana/status/2046457374467379347</a> * 创造了俄罗斯方块的世界纪录 <a href="https://x.com/shawn_pana/status/2047120626994012442" rel="nofollow">https://x.com/shawn_pana/status/2047120626994012442</a> * 弄清楚如何用 js 画一个心 <a href="https://x.com/mamagnus00/status/2046486159992480198?s=20" rel="nofollow">https://x.com/mamagnus00/status/2046486159992480198?s=20</a> 你可以通过告诉 Claude 代码来轻松安装它: `为我设置 <a href="https://github.com/browser-use/browser-harness" rel="nofollow">https://github.com/browser-use/browser-harness</a>。` 代码库:<a href="https://github.com/browser-use/browser-harness" rel="nofollow">https://github.com/browser-use/browser-harness</a> 你会如何称呼这种新范式?一种方言?
2作者: thinkingtoilet3 个月前
我们公司开始探索 AI 编程。我是一名拥有 20 多年经验的开发人员,负责尝试帮助我们了解如何使用这个工具来帮助公司。我只使用过 Claude,所以我的经验仅限于此。 正如你可能猜到的,我发现 AI 在某些方面非常出色,但在其他方面却非常糟糕。我
2作者: dinarino3 个月前
您好!我们 Vincenzo 和 Riccardo 构建了 Doxa,一个用于约束场景(如地缘政治、经济等)下涌现式智能体仿真的通用引擎,并且它能很好地与 Qwen2.5:7B、Llama 等大型语言模型以及 Gemini 等云端模型协同工作。 Doxa 可以通过 YAML 场景在几分钟内进行配置,您可以在其中为智能体分配角色、投资组合和约束。 这是一个即用型 Colab 笔记本:[https://colab.research.google.com/github/VincenzoManto/Doxa/blob/main/notebooks/doxa.ipynb](https://colab.research.google.com/github/VincenzoManto/Doxa/blob/main/notebooks/doxa.ipynb) 欢迎提出您的想法!