返回首页
最新
嗨,HN!我们开发了PyVRP,一个开源的车辆路径问题求解器。
它可以解决许多实际的路径规划问题,包括具有时间窗口约束、多仓库和重新装载的情况。这些问题都是NP难题,因此PyVRP实现了一种基于迭代局部搜索的先进元启发式求解器。局部搜索优化引擎是用C++编写的。在求解器之上,PyVRP提供了一个高级的Python建模接口。这使得从Python中以接近原生速度轻松解决大规模路径规划问题成为可能。
文档链接: [https://pyvrp.org/](https://pyvrp.org/)
AI代理通常需要特定领域的知识来完成任务。与其编写自定义提示或从头构建MCP工具,利用现有的API文档是一种实用的方法,而OpenAPI则是经过多年维护的、经过实战检验的标准规范。
然而,将原始的OpenAPI规范直接提供给代理存在一些局限性。复杂的规范可能超出大型语言模型(LLM)的上下文限制,即使在符合范围的情况下,每次请求都加载整个文档也会浪费宝贵的上下文。
Agent Skills通过为按需阅读结构化文档来解决这个问题。代理仅加载所需的信息——首先是概述,然后深入特定的操作或模式。由于文件读取是所有代理框架的通用能力,这种方法在任何地方都能有效工作,无需特殊的集成。
简要概述:
AI代理通过grep/find/glob等工具强行解析代码库以理解其内容。而这个命令行工具则查询本地SQLite数据库中的代码库依赖图,为代理提供准确的上下文,从而使其在第一次尝试时就能制定出更好的计划。
在过去的六个月里,我一直在使用Claude Code进行工作,效果非常好。我的工作流程非常典型:启动Claude Code > 在计划模式下开始规划我的功能 > 实施。然后查看工作进展,并在偶尔偏离方向时进行适当调整(这种情况并不多见)。
但是,由于Claude Code存在记忆缺失的问题,而且你在CLAUDE.md文件中能放入的信息有限,它总是需要在代码库中强行探索以理解其内容。通常是先找到一个入口点,然后逐步向上解析。
因此,我最终构建了这个简单的命令行工具,旨在供你的AI代理使用,可以在任何项目中使用(只要你的编程语言有SCIP索引器)。
它使用SCIP对你的代码库进行索引,然后将其转换为SQLite数据库。所有命令只是对查询的封装,你也可以直接查询数据库。SCIP对于文档和一般文本文件的支持并不好,我在命令行工具中为此添加了一个索引器(这个功能有点不稳定,我最近才添加的)。
设置步骤:
1. 在你的系统中安装命令行工具。
2. 为你的语言安装SCIP索引器。
在项目中开始使用:
1. 在你的代理记忆文件中添加代码片段,告诉它在进行代码探索时优先使用dora而不是其他工具。
2. 添加技能文件以获取更详细的使用说明。
3. 添加钩子,以便在会话开始和每个回合结束时在后台运行索引器。
我一直在与我的主要工作结合使用,并根据需要进行调整。我的目标是保持工具的简洁性。我能够在第一次尝试时就获得良好的计划。
查看一下:
网站 - [https://dora-cli.dev/](https://dora-cli.dev/)
GitHub - [https://github.com/butttons/dora](https://github.com/butttons/dora)
大家好!我是FlutterJS的创始人。
问题:Flutter Web非常适合构建应用程序,但对于网站来说却很糟糕。它将所有内容渲染到Canvas/WASM,这意味着:
- 2-5 MB的包(在移动设备上加载缓慢)
- 零SEO——谷歌无法索引Canvas像素
- 较差的可访问性(没有语义化的HTML供屏幕阅读器使用)
- 初始加载时间为3-8秒
如果你曾尝试使用Flutter Web构建营销网站或博客,你一定遇到过这个问题。
解决方案:FlutterJS将你的Flutter/Dart代码编译为语义化的HTML + CSS + JavaScript,而不是Canvas。使用的语法与Flutter相同,但输出为:
- ~50-100 KB的包(小50倍)
- 完全支持SEO(真实的HTML元素)
- 首次渲染时间少于1秒
- 默认可访问
工作原理:
1. 你编写普通的Flutter/Dart代码
2. 我们的Dart CLI分析你的AST并生成中间表示(IR)
3. IR被转译为JavaScript,并使用轻量级运行时
4. 输出为搜索引擎可以索引的语义化HTML
当前状态:测试版(v0.9.x)。我们支持最常见的Material组件(Scaffold、AppBar、Text、Button、Row、Column、StatefulWidget等)。动画支持和完整的Material 3在开发计划中。
已知限制:
- 目前并非所有Flutter组件都已实现(请参见README中的兼容性矩阵)
- 方法的拆分目前需要用lambda包裹
- 复杂的动画尚不支持
- 这更适合内容丰富的网站,而不是图形密集型应用
我为什么要构建这个:我遇到了许多客户,他们喜欢Flutter的开发体验,但需要他们的网站在谷歌上排名。Flutter Web无法做到这一点。我希望能够兼得两者的优点。
我非常希望听到你的反馈,特别是:
- 你是否在使用Flutter Web时遇到了这个SEO问题?
- 你在使用场景中需要哪些组件?
- 对这种方法有任何顾虑吗?
欢迎提出关于架构、性能声明或开发计划的问题!