返回首页
最新
嘿,HN!<p>我一直想使用类似OpenClaw的工具,但由于涉及的风险,我一直没能让自己给它访问任何重要的东西。提示注入仍然是一个问题(尽管有些人似乎对此视而不见),而且幻觉和失误也会导致代理执行一些诸如删除生产数据的操作 [1]。<p>即使是像Claude Code和Codex这样的工具也面临这些问题,尤其是我们在运行它们时越来越放松,例如Conductor非常受欢迎,并且在没有任何沙箱保护的情况下运行代理。<p>这意味着我们处于一种全有或全无的状态。有些人选择忽视风险,将所有东西连接到他们的代理上,并从中获益,但同时也面临更大的风险;而另一些人则因为意识到潜在问题而不连接任何东西。<p>我一直比较谨慎,但也想运行更多自主的代理,因此我构建了我需要的组件来实现这一目标:AgentPort。<p>AgentPort是一个网关,可以连接到任何服务(例如Gmail、GitHub、Stripe、PostHog、Linear),并允许你为代理可以自动执行的操作、需要你批准的操作以及绝对不能执行的操作设置细粒度的权限。<p>例如,你可以将Stripe集成中的`list_customers`和`get_customer`设置为“自动批准”,而将`create_refund`设置为“请求批准”。因此,代理可以在后台独立执行许多操作,但在进行潜在破坏性操作时,它将被阻止,并收到一个需要发送给你的批准链接。你可以根据这些确切的参数批准或拒绝调用,例如`create_refund(customer_id: 1234, amount: 12)`。<p>代理通过MCP或CLI连接,并可以访问你连接的所有集成,而无需获取API密钥。这有点像Composio,但具有细粒度的权限和开源特性。<p>AgentPort的目标是专门解决代理面临的两个漏洞:<p>1. 对下游服务的破坏性操作:除非你明确批准,否则无法删除数据库。<br>2. 凭证泄露:你的代理永远不会看到API密钥。<p>AgentPort还帮助防止敏感数据泄露,但如果代理有互联网连接,这一问题更为复杂且难以防御 [2]。<p>最终,AgentPort是我开始运行更多访问第三方服务的自主代理所缺失的部分,希望它也能为你解锁新的用例。关于保护代理(尤其是Claws)还有很多工作要做,我一直在撰写相关内容 [3],并打算在这个领域做更多工作,因此如果你在考虑类似的事情,欢迎来聊聊。<p>代码库在<a href="https://github.com/yakkomajuri/agentport" rel="nofollow">https://github.com/yakkomajuri/agentport</a>,你可以在一分钟内使用docker compose在本地运行它,或者使用一行代码安装,在几分钟内部署一个生产实例(域名、TLS等)。<p>[1] “一个AI代理删除了我们的生产数据库。代理的供述如下” (<a href="https://news.ycombinator.com/item?id=47911524">https://news.ycombinator.com/item?id=47911524</a>)<p>[2] 请参见我的帖子“关于代理删除生产数据库”: <a href="https://yakko.dev/blog/on-agents-dropping-production-dbs" rel="nofollow">https://yakko.dev/blog/on-agents-dropping-production-dbs</a><p>[3] <a href="https://yakko.dev/blog" rel="nofollow">https://yakko.dev/blog</a>
在构建依赖于大型语言模型(LLMs)的工作流程时,我们通常使用结构化输出来处理程序化用例,例如将发票转换为行、将会议记录转换为工单,甚至将复杂的PDF文件转换为数据库条目。
模型可能会返回您想要的架构,但其中的虚构值(例如,`invoice_date`可能偏差2个月,或转录数组的顺序错误)。虽然JSON是有效的,但其中的值却不正确。
如今,结构化输出在使用LLMs时占据了重要部分,尤其是在构建确定性工作流程时。
当前的结构化输出基准(例如,JSONSchemaBench)仅验证JSON架构和类型的通过率,而不检查生成的JSON中的实际值。
因此,我们设计了结构化输出基准(SOB),通过测量JSON架构的通过率、类型以及在文本、图像和音频三种模式下的值准确性来解决这一问题。
在我们的测试集中,每条记录都与一个JSON架构和一个经过人工和LLM交叉验证的真实答案配对,因此缺失或虚构的值将被视为错误。
开源方面表现相当不错,GLM 4.7紧随GPT 5.4之后排名第二。
我们注意到不同模式之间的排名变化:GLM-4.7在文本领域领先,Gemma-4-31B在图像领域领先,Gemini-2.5-Flash在音频领域领先。
例如,GPT-5.4在文本中排名第三,但在图像中排名第九。
模型大小也不是一个预测因素:Qwen3.5-35B和GLM-4.7在值准确性上超越了GPT-5和Claude-Sonnet-4.6。Phi-4(14B)在文本上超过了GPT-5和GPT-5-mini。
结构化幻觉是最难解决的bug。这类值在类型上是正确的、在架构上是有效的,并且看起来合理,因此它们往往会逃过大多数保护措施。例如,在一条音频记录中,真实值是“target_market_age”: “15到35岁”,而模型返回的是“25到35”。没有字段级检查,这种错误是不可见的。
我们的目标是成为最优秀的通用模型,以处理确定性任务,而确定性的一项关键方面是可控且一致的输出结构。改善结构化输出的第一步是对其进行测量,并与最佳标准进行对比。