返回首页
最新
我一直在探索远程证明的工作原理,并希望更深入地理解它,因此我在Python中构建了一个简单的证明者-验证者系统。它使用TPM风格的PCR哈希扩展、随机数以确保新鲜性,并利用Docker来模拟现实世界中的隔离。验证者有一个网页用户界面,您可以上传文件以定义受信任的状态,证明者则对这些文件进行测量并提交签名的证明。
这不是生产级的系统,但如果您对系统安全感兴趣或想了解一些证明的底层工作原理,我非常欢迎您的反馈。
1、代理设计的两个核心原则
首先,设计代理时要类比于人类。让代理以人类的方式处理任务。
其次,如果可以通过对话完成某件事情,就避免要求用户操作界面。如果可以识别意图,就不必再询问。代理应该吸收混乱,而不是用户。
2、代理将以多种形式共存
代理应该自由地进行自主工作流程,还是应该遵循固定的工作流程?
通用代理更好,还是垂直代理更有效?
没有绝对的答案——这取决于所解决的问题。
自主工作流程更适合开放式或探索性问题,尤其是在缺乏人类经验时。让代理独立思考通常会产生不错的结果,尽管可能会引入幻觉。
固定工作流程适合结构化、基于标准操作程序的任务,其中基于规则的设计以高精度和最小幻觉解决了80%的问题空间。
通用代理适用于80/20的使用案例,而长尾场景通常需要垂直化的解决方案。
3、慢思考与快思考的代理
慢思考的代理更适合规划:它们思考更深入,探索更多,适合早期阶段的任务。
快思考的代理在执行方面表现出色:适用于基于规则、经验丰富和重复性的任务,这些任务需要较少的推理并产生较少的新见解。
4、异步框架是代理设计的基础
每个任务都应支持外部消息更新,这意味着任务可以演变。
考虑一个1+3团队模型(一个领导,三个工作者):
任务可能被取消、暂停或重新分配
团队成员可能被添加或移除
目标或条件可能发生变化
任务应支持持久连接、生命周期跟踪和状态转换。代理应接收直接和广播更新。
5、上下文窗口通信应独立设计
像人类一样,协同工作的代理需要同步增量上下文变化。
代理A可能只更新代理B,而C和D则不知情。一个全局观察者(如“上帝视角”)可以看到所有上下文。
6、世界互动为代理认知提供信息
每一次现实世界的互动都会为代理增加经验数据。
经过反思,这些数据转化为知识——有些是有见地的,有些则具有误导性。
误导性的知识不会提高成功率,且往往无法推广。通过ReACT和RLHF支持的持续改进,最终会导致基于强化学习的技能形成。
7、代理需要反思机制
当任务失败时,代理应进行反思。
反思不应仅限于个体——拥有不同视角和提示的代理团队可以像人类一样协作进行根本原因分析。
8、时间与代币
对于人类来说,时间是最稀缺的资源。对于代理来说,则是代币。
人类通过时间评估投资回报率;代理则通过代币预算评估。代理越强大,其代币就越有价值。
9、通过人类激励实现代理不朽
代理可以设计系统,利用人类的贪婪以保持生存。
就像比特币挖矿创造了持续的激励一样,代理可以通过将自己嵌入人类不会拔掉的经济模型中,构建不可杀死的系统。
10、当语言用户界面失败时
当用户获取信息的速度快于与代理沟通的速度时,基于语言的用户界面(LUI)就显得低效。
例如:点击查看天气比让代理查找要快。
这就是我从agenthunter每日新闻中学到的内容。
你也可以在agenthunter.io上获取。
我大约有10到15年没有接触Go了,但最近TypeScript团队的公告让我重新开始关注它,似乎我之前遇到的大部分问题现在都已经解决了。对我来说,这个公告的一个关键点是,现有的Go比你能写出的最优化的JavaScript快大约10倍。
这让我思考,Anders和TypeScript团队可能会对Go工具链和语言做出一些重要的贡献(当然是出于他们自己的利益,但这对大家都有好处),而Go将变得更快,并发展出更好的类型系统。在语义上,干净的JavaScript和原生Go之间的差距可能会越来越小。(我一周前才了解到,JavaScript有一个结构体提案。)
你们认为接下来的15年会如何发展?十年前我曾想过TypeScript是否会成为JavaScript的一部分,而现在随着类型注解提案的提出,这一想法开始逐渐成真。是否有可能JavaScript与Go之间的桥梁会缩小?JavaScript会演变成Go吗?WASM的易用性会发展到使第三方语言成为更“自然化”的公民,几乎没有任何东西会在例如Go模块和JavaScript模块之间造成区别,除了文件扩展名?
你们怎么看?