返回首页
最新
大家好,我们是 Jon 和 Kristiane,我们正在构建 Orloj(<a href="https://orloj.dev" rel="nofollow">https://orloj.dev</a>),这是一个开源(Apache 2.0)多智能体 AI 系统的编排运行时。您可以在声明性 YAML 清单中定义智能体、工具、策略和工作流,而 Orloj 负责调度、执行、治理和可靠性。
我们之所以构建这个,是因为目前在生产环境中运行 AI 智能体的方式,和在 Kubernetes 出现之前运行容器的方式非常相似:临时脚本、缺乏治理、没有可观察性,也没有标准的方法来管理智能体队列的生命周期。我们与之交谈的每个人都在编写相同的混乱代码来将智能体连接在一起,而没有人能给出“哪个智能体调用了哪个工具,这样做是正确的吗?”的好答案。
Orloj 处理智能体的方式,就像基础设施即代码处理云资源一样。您编写一个清单,声明智能体的模型、工具、权限和执行限制。您可以将智能体组合成有向图——管道、层级或群体循环。
我们最兴奋的部分是治理。AgentPolicy、AgentRole 和 ToolPermission 在执行过程中实时评估,在每个智能体的回合和工具调用之前。与可能被模型忽略的提示指令不同,这些政策是运行时的门控。未经授权的操作会以结构化错误和完整的审计跟踪失败。您可以为每次运行设置令牌预算,白名单模型,阻止特定工具,并将政策范围限制到单个智能体系统。
为了确保可靠性,我们构建了基于租约的任务所有权(因此崩溃的工作者不会留下孤立任务)、带抖动的指数重试上限、幂等重放和死信处理。调度器支持 cron 触发器和基于 webhook 的任务创建。
架构采用服务器/工作者分离。orlojd 托管 API、资源存储(开发时为内存,生产时为 Postgres)和任务调度器。orlojworker 实例负责声明和执行任务,通过网关(OpenAI、Anthropic、Ollama 等)路由模型请求,并在可配置的隔离环境中运行工具——直接、沙盒、容器或 WASM。对于本地开发,您可以通过 orlojd --embedded-worker --storage-backend=memory 在单个进程中运行所有内容。
工具隔离对我们来说非常重要。一个网络搜索工具可能不需要沙盒,但代码执行工具应该在没有网络、只读文件系统和内存限制的容器中运行。您可以根据风险级别为每个工具配置这些设置,运行时会强制执行。
我们还添加了原生 MCP 支持。您注册一个 MCP 服务器(stdio 或 HTTP),Orloj 会自动发现其工具,并使其成为应用治理的一流资源。因此,您可以连接像 GitHub MCP 服务器这样的东西,同时对智能体可以执行的操作进行政策执行。
我们提供了三个入门蓝图(管道、层级、群体循环)。
文档:<a href="https://docs.orloj.dev" rel="nofollow">https://docs.orloj.dev</a>
我们还在构建适用于治理至关重要的操作工作流的入门模板。路线图上的首要任务:1. 事件响应分流,2. 合规证据收集器,3. CVE 调查管道,4. 秘密轮换审计员。我们心中有 20 个模板,欢迎社区贡献。
我们是一个小团队,目前是 v0.1.0,因此还有很多内容在路线图上——托管云、合规打包等。但完整的运行时今天已经开源,我们非常希望听到您对我们迄今为止构建的内容的反馈。您会用这个做什么?还有什么缺失的?
我刚刚发布了Agent Ruler v0.1.9的新更新。
<p>有什么变化?
- 完全重新设计的用户界面:现在前端用户界面看起来更现代,更有条理且更直观。之前的界面只是一个原始的用户界面,以便专注于后端。
<p>快速介绍:
Agent Ruler是一个具有限制功能的AI代理工作流参考监视器。该解决方案提出了一个框架/工作流,具有一个位于代理内部保护层之外的安全/安全层。其目标是使AI代理的使用对用户更加安全和可靠,无论使用何种模型。
目前,它支持Openclaw、Claude Code和OpenCode,以及TailScale网络和Telegram频道(对于OpenClaw,它使用内置的Telegram频道)。
<p>欢迎下载并进行实验,GitHub链接如下。
<p>我很想听听大家的反馈,特别是关于安全方面的意见。
<p>注意:在GitHub的展示部分有演示视频和图片。
我一直喜欢观看法律剧和法庭视频。随着我成年后,尤其是在我作为开发者的职业生涯中,我开始对法庭、法律和法律斗争产生了好奇。因此我想:“为什么不把它做成一款游戏呢?”<p>当然,这款游戏的构建只有在人工智能出现后才变得可能,所以它终于来了!希望这款游戏能满足我们偶尔会有的当律师的渴望!
在面对无尽的选择时,如何决定自己的职业道路或人生目标,而其中许多选择可能并不会成功呢?
我们已经构建了数据管道,能够抓取网站并提取结构化数据有一段时间了。如果你也做过这项工作,你就知道流程是怎样的:你编写CSS选择器,网站更改布局,凌晨2点一切崩溃,早上你花时间重写解析器。
大型语言模型(LLMs)似乎是显而易见的解决方案——只需将HTML扔给GPT,请求JSON。然而,实际上,这比想象中要复杂得多:
- 原始HTML中充满了导航栏、页脚和跟踪垃圾,这些都消耗了你的令牌预算。一个典型的产品页面中有80%是噪音。
- LLM返回的JSON格式错误的情况比你预期的要多,尤其是在处理嵌套数组和复杂模式时。一个错误的括号就可能导致你的管道崩溃。
- 相对URL、Markdown转义链接、跟踪参数——当你处理数千个页面时,“小”URL问题迅速累积。
- 你最终会写出相同的模板代码:HTML清理 → Markdown转换 → LLM调用 → JSON解析 → 错误恢复 → 模式验证。一次又一次。
我们厌倦了为每个项目重建这个堆栈,因此我们将其提取到一个库中。
Lightfeed Extractor是一个TypeScript库,处理从原始HTML到经过验证的结构化数据的完整管道:
- 将HTML转换为适合LLM的Markdown,提取主要内容(去除导航、标题、页脚),可选的图像包含和URL清理。
- 兼容任何LangChain的LLM(OpenAI、Gemini、Claude、Ollama等)。
- 使用Zod模式进行类型安全的提取和真实验证。
- 从格式错误的LLM输出中恢复部分数据,而不是完全失败——如果20个产品中有19个解析正确,你将获得这19个。
- 通过Playwright实现内置浏览器自动化(本地、无服务器或远程),并附带反机器人补丁。
- 与我们的浏览器代理(@lightfeed/browser-agent)配对,在提取之前进行AI驱动的页面导航。
我们在Lightfeed的生产环境中自己使用这个工具,它的稳定性足够好,因此我们决定将其开源。
GitHub: [https://github.com/lightfeed/extractor](https://github.com/lightfeed/extractor) npm: npm install @lightfeed/extractor Apache 2.0许可证。
欢迎提问或反馈。