4作者: goldenCeasar23 天前原帖
嗨,HN, 我是Kumi项目的作者,这是我一直在努力开发的项目,我非常希望能得到你们的反馈。 最初的问题: Kumi的初始构思源于我在之前工作中遇到的一个复杂的身份与访问管理(IAM)问题。为一个员工配置权限意味着需要为每个目标系统应用数十条相互依赖的规则(基于角色、地点等)。问题更深层次:甚至数据抽象也是基于规则的。例如,一个系统的“角色”可能只是对Active Directory组的特定解释。 这种逻辑也非常不稳定;将规则写下来变成了一种发现过程,管理员需要实时更改这些规则。在此之上,还面临着在系统之间同步数据的基本挑战。那时我提出的解决方案是通过一个名为“蓝图”(Blueprints)的组件来处理部分逻辑,该组件解释声明性规则并将这些逻辑暴露给其他工作流。 演变过程: 这个“蓝图”组件一直在我脑海中挥之不去。大约一年后,我决定用Kumi更根本地解决这个问题。我的第一次尝试非常脆弱——最初是运行时的lambda,然后是一系列解释器。我知道什么是抽象语法树(AST),但不得不发现编译器、中间表示(IR)和正式类型/形状表示等概念。每次迭代都揭示了更深层次的问题。 核心问题在于我的AST表示不够表达力,迫使我陷入无法验证的“运行时魔法”。我意识到解决方案是迭代地构建一个更具表达力的中间表示(IR)。这不是一步到位的过程:我花了两个月的时间构建并丢弃了大约五种不同的IR,数万行代码。这个痛苦的过程迫使我学习编译的真正含义,表示复杂形状,规范化数据流,并验证逻辑。这段旅程使得静态类型检查成为一个必要的结果,而不仅仅是一个初始目标。 这与核心挑战相辅相成:业务逻辑通常涉及复杂的、嵌套的、不规则的数据(数组、订单项等)。如果领域特定语言(DSL)无法原生处理这些数据的循环,那就毫无意义。这需要一个足够表达的IR,以便进行内联和循环融合等优化,而这些在处理向量化数据时 notoriously 难以推理。 你可以在这里尝试一个基于网页的演示: [https://kumi-play-web.fly.dev](https://kumi-play-web.fly.dev) 代码库在这里: [https://github.com/amuta/kumi](https://github.com/amuta/kumi)
3作者: mzidan10123 天前原帖
嗨,HN, 我们在使用像Claude Code这样的编码代理时,经常会遇到这样的问题:调试变成了复制粘贴日志、撰写长篇解释和分享截图。 FlowLens 是一个MCP服务器加上一个Chrome扩展,它能够捕捉浏览器上下文(视频、控制台、网络、用户操作、存储),并将其提供给像Claude Code这样的MCP兼容代理。 您可以在这里试用: [https://magentic.ai/flowlens](https://magentic.ai/flowlens) 欢迎任何反馈——无论是好的、坏的,还是直接的。