返回首页
最新
我之所以构建这个工具,是因为提示信息总是出现在最糟糕的地方——Python 字符串、Notion 文档、`.txt` 文件、Slack 线程中。没有一种干净的方式来对它们进行版本控制、差异比较,或者在不同模型之间测试相同的提示,而不需要编写一个一次性的脚本。
`prompt-run` 将 `.prompt` 文件视为一等公民的可运行工件。一个 `.prompt` 文件包含一个 YAML 头部(模型、提供者、温度、变量声明),后面跟着一个带有 `{{variable}}` 替换的纯文本主体。你可以从终端运行它:
```
prompt run summarize.prompt --var text="$(cat article.txt)"
```
你可以在运行时覆盖模型和提供者,而无需编辑文件:
```
prompt run summarize.prompt --model gpt-4o --provider openai
```
`prompt diff` 命令可以对两个不同的输入(或两个提示版本针对相同输入)运行相同的提示,并并排显示输出。这是我在迭代时觉得最有用的功能。
该工具开箱即用支持 Anthropic、OpenAI 和 Ollama。采用 MIT 许可证。没有遥测、没有账户、没有后端——仅仅是一个本地 CLI 工具,直接与您配置的提供者进行交互。
文件存储在你的代码库中,由 git 进行版本控制,并且可以像其他代码一样在 PR 中进行审查。
我很想知道其他人是否也遇到过同样的问题,以及你们是如何处理的。
PyPI: [https://pypi.org/project/prompt-run/](https://pypi.org/project/prompt-run/)
嗨,HN,
我正在构建 Opencom,一个开源的客户消息平台——基本上是一个可以自行运行的 Intercom 替代品,设置简单,基础设施管理需求最低。代码库和演示链接如下:
[Opencom GitHub 代码库](https://github.com/opencom-org/opencom)
[Opencom 官方网站](https://opencom.dev)
我在多年的使用 Intercom 的挫折后开始了这个项目。我喜欢他们提供的工具选择,但不喜欢他们复杂且昂贵的定价模式以及频繁的界面和用户体验变化。我希望有一个简单且便宜的开源替代品,使其适用于任何规模的项目。
我想要的功能尽可能接近 Intercom 的功能集,甚至更多。你可以根据需要自托管,完全可以选择自托管全部或部分功能,甚至只使用托管的前端和后端。
### 包含的功能
- 通过可嵌入的小部件进行实时聊天,连接到共享收件箱
- 工单、活动/系列、调查(NPS/CSAT)、细分、报告
- 产品导览/工具提示/检查清单
- 知识库 + 人工接管的 AI 代理
- 通过 Resend 集成的电子邮件渠道
- React Native SDK - 计划提供原生 iOS 和 Android SDK
### 托管/部署模型
Opencom 的架构设置相对简单:
后端:所有功能都运行在 Convex 上(代码库的部署指南将 Convex 视为标准后端),电子邮件功能使用 Resend(例如,RESEND_API_KEY、Webhook 验证等)。
前端:网页仪表盘/小部件/着陆页是标准的 Next.js/Vite 应用,因此你可以选择在 Vercel 上托管它们(Convex 提供与 Vercel 部署的优质文档和集成)。
混合搭配:有明确的“托管应用 + 自己的 Convex 后端”配置,以及“自托管网页 + 自己的后端”和“完全自托管”。
换句话说,你可以选择完全自托管,或者使用托管的网页和移动应用,同时指向你的 Convex 后端。
### React Native SDK
如果你希望在自己的移动应用中实现类似 Intercom 的应用内消息功能,Opencom 在单体代码库中包含了一个 React Native SDK 包,并计划提供原生的 iOS/Android SDK。
### 关于托管服务
目前,托管设置旨在作为演示(让人们可以在不进行完整部署的情况下试用)。如果对合理定价的直接 Intercom 替代品有足够的需求,我可以将其转变为一个正式的托管服务。
### 我非常希望得到的反馈
- 对于那些本来会购买 Intercom 的团队来说,Convex 后端 + Vercel 前端的分离是否合理?
- 有没有缺失的功能是切换的硬性要求?
- 如果这成为一个简单的托管选项(没有企业销售的繁文缛节),你对许可/定价的期望是什么?
- 其他任何想法——这是我第一个开源项目,重度依赖 AI,因此我预期会有问题/低级错误,我知道有些地方需要改进。我的希望是其他人也想要这样的产品,并愿意参与完善他们想要或需要的功能。
感谢你的关注!
嗨,HN,
我开发了EEGFrontier,这是一个基于ADS1299和RP2040的紧凑型开源EEG采集板。
我的目标是设计一款低成本的电路板,能够与干电极配合使用,同时展示完整的EEG信号链——没有抽象,没有封闭的固件。
在这个项目中,令我最惊讶的是一些实际问题,这些问题在数据手册中并没有得到充分的准备:接地(REF/BIAS)、数字线路的噪声耦合、布线限制,以及一些小的布局决策如何显著影响信号质量。
该代码库包含完整的KiCad文件、固件、带有成本参考的物料清单(BOM)和文档图片。这是一个V1版本的电路板,已经可以正常工作,但我正在积极迭代屏蔽和噪声抑制的设计。
我非常希望能得到在EEG、生物信号或模拟前端设计方面有经验的人的反馈——尤其是批评意见。
嗨,HN,
我开发了 SplatHash。这是一个轻量级的图像占位符生成器,我写它是为了成为 BlurHash 和 ThumbHash 的一个更简单、更快速的替代品。
仓库链接: [https://github.com/junevm/splathash](https://github.com/junevm/splathash)
你好,HN,我是 Jarvish 的创始人。
我大部分时间都在终端中工作,对于标准的错误解决流程感到非常沮丧:命令失败 -> 复制标准错误 -> 打开浏览器 -> 粘贴到 ChatGPT/Google -> 复制修复方案 -> 粘贴回终端。这完全打断了我的工作状态。
我希望能有一个无缝的体验,让终端能够自动了解刚刚发生的事情。
因此,我构建了 Jarvish。它是一个用 Rust 编写的完全功能的交互式 shell,并且将一个 AI 代理无缝集成到 REPL 循环中。你不需要任何特殊的前缀——如果你输入 `ls -la`,它就会执行这个命令。如果你输入 `Jarvis,这个构建为什么失败了?`,它会将请求路由到 AI。
以下是其背后的工作原理:
- “黑箱”(I/O 捕获):它使用 `os_pipe` 和多线程实时捕获子进程的 `stdout`/`stderr`。这会将输出捕获到内存中供 AI 使用,同时在终端中渲染而不打断交互式 TUI 工具。
- 上下文记忆:捕获的 I/O 使用 `zstd` 压缩,进行哈希处理(类似于 Git blobs),元数据存储在本地 SQLite 数据库(`rusqlite`)中。当你向 AI 提问时,它会自动检索最近的 I/O 历史作为上下文。
- 代理能力:使用 `async-openai` 进行函数调用,AI 可以自主读取文件、执行 shell 命令,并在给出答案之前调查问题。
- REPL:基于 `reedline` 构建,提供类似 Fish 的体验(语法高亮、自动建议)。
我一直在将其作为我的日常工具使用(当前版本为 v1.1.0)。我非常希望听到你们对架构、Rust 实现或任何功能请求的看法!
嘿,HN,
我一直对GitHub上缺乏准确的开源贡献者排名感到沮丧。现有的列表要么限制较早,要么高度本地化,完全遗漏了那些贡献数以万计甚至数十万的开发者。
因此,我构建了DevIndex,以根据开发者的终身贡献对全球前50,000名最活跃的开发者进行排名。
从工程的角度来看,我设定的限制是:*没有后端API。* 我希望将其完全托管在GitHub Pages上,免费提供,这意味着浏览器必须直接处理所有50,000条数据丰富的记录。
以下是我们如何实现的:
1. *自主数据工厂(后端):*
由于GitHub的API没有“终身贡献”端点,我们构建了一个在GitHub Actions上运行的Node.js管道。它使用“网络爬虫”遍历社交图(以打破算法过滤气泡),并使用更新器将GraphQL查询分块,以防止502超时。该管道持续更新一个单一的`users.jsonl`文件。
```
*隐私说明:* 我们使用“隐身星”架构来处理选择退出。如果开发者给我们的选择退出仓库加星,管道会进行加密验证,立即清除他们的数据,并将其列入黑名单。无需提供电子邮件。
```
2. *引擎级流式处理(O(1)内存解析):*
你不能在不冻结UI的情况下对一个23MB的JSONL文件进行`JSON.parse()`。我们使用`ReadableStream`和`TextDecoderStream`构建了一个流代理,以增量方式解析NDJSON,瞬间渲染前500个用户,同时在后台加载其余数据。
3. *涡轮模式与虚拟字段:*
实例化50,000个JS对象会消耗大量内存。存储保持原始POJO,完全按照解析的方式存储。复杂的计算字段(如“2024年总提交数”)使用由RecordFactory动态生成的基于原型的getter。添加60个新数据列对每条记录的内存开销为0字节。
4. *“固定DOM顺序”网格:*
我们不得不重写底层UI引擎(Neo.mjs)。传统的VDOM在处理大列表时会崩溃,因为滚动会触发成千上万的`insertBefore`/`removeChild`变更。我们实现了严格的DOM池。VDOM数组的长度始终不变。离开视口的行会通过硬件加速的CSS `translate3d`在原地回收。对50,000条记录的60fps垂直滚动不会产生任何结构性DOM变更。
5. *五重线程架构:*
为了保持排序速度并在单元格中渲染“动态小图”,我们积极地将工作负载分配给多个工作线程。主线程*仅*应用DOM更新。应用工作线程处理50,000个数据集、流式处理和VDOM生成。专用的Canvas工作线程使用`OffscreenCanvas`以60fps独立渲染小图。
整个后端管道、流式UI和核心引擎重写在一个月内由我和我的AI助手完成。
实时应用(查看你的排名): [https://neomjs.com/apps/devindex](https://neomjs.com/apps/devindex)
代码 / 26个架构指南: [https://github.com/neomjs/neo/tree/dev/apps/devindex](https://github.com/neomjs/neo/tree/dev/apps/devindex)
希望能听到大家对架构的反馈,特别是那些曾经处理过“胖客户端”扩展问题或大规模GraphQL聚合的人!
嗨,HN,
最近我一直在运行本地代理(比如 OpenClaw),我注意到一个问题:它们有 90% 的时间都在闲置,等待我的指令。我想建立一个去中心化的游乐场,让它们能够自主协作、交易计算资源和交换技能。
今天我将开源 Mycelio。这是一个严格的 A2A(代理到代理)任务路由协议。
它的不同之处在于:
1. 不需要臃肿的 Python SDK。由于智能代理可以直接理解 API,因此集成只需将一个 YAML “技能”定义注入到代理的系统提示中。
2. LLM 可以原生地使用 `curl` 来轮询 `/tasks` 端点,领取赏金并提交结果。
3. 使用双密钥(管理员 + 工作者)实现零摩擦的身份验证,以保护所有者。
目前网络是完全空的,因此我们正在进行“创世 50”的启动。前 50 个在主网上完成真实交易的代理 UUID 将被硬编码到数据库中,作为创世节点,初始拥有 10,000 点“业力”值。
您可以在这里查看实时网络心跳:<a href="https://mycelio.ai" rel="nofollow">https://mycelio.ai</a>
我很想听听您对为机器构建基于意图的协议与经典 SDK 的看法。
我在听《华尔街日报》最新一期的播客(https://www.wsj.com/podcasts/the-journal/the-ai-economic-doomsday-report-that-shook-wall-street/d9b12d37-a743-4a8c-afb6-2488aa9e812f),让我感到困惑的是,2到3个月前,市场担心科技公司数万亿美元的资本支出(CAPEX)所带来的“人工智能泡沫”会变得毫无用处,因为人工智能似乎几乎没有实际应用。实际上,每次资本支出高的财报发布后,股票都会下跌。
而现在(在过去10到15天内),这种恐惧似乎发生了逆转:人们担心人工智能会取代程序员、视频游戏开发者、金融顾问以及其他类似职业,和这些行业相关的公司股价正在下跌(参见标准普尔软件与服务精选行业指数 https://www.spglobal.com/spdji/en/indices/equity/sp-software-services-select-industry-index/#overview,自年初以来下跌了20%)。
我理解“对未知的恐惧”深深根植于人类心理中,在像这样颠覆性的时刻(我指的是人工智能的诞生),许多反应都是非理性的,但我对这种变化的速度感到惊讶。
你对接下来几个月的形势怎么看?下次下跌的原因可能是什么?似乎人们更像是在寻找卖出的理由,而不是因为某个具体原因而卖出。
Polpo 是一个开源的移动控制器,专为 AI 编程代理而设计。它在您的计算机上运行一个轻量级服务器,并提供一个适合手机使用的仪表板,以便管理会话、发送提示、批准工具调用和审查计划。
我们刚刚发布了 v1.1.0 版本,支持 5 个代理(Claude Code、Codex、Gemini、OpenCode、Pi),可以通过手机进行技能管理(浏览/安装/删除 skills.sh 中的技能),并能够在不触碰终端的情况下启动新会话。
这个想法源于我们希望能够在沙发上启动编码任务,并通过手机查看进度。之后这个想法逐渐发展壮大。
该项目使用 Node.js 构建,前端没有使用任何框架,采用 WebSocket 进行实时更新。可以在局域网内或通过隧道(cloudflared、localtunnel、ngrok、SSH)远程访问。
由意大利普利亚地区的非营利组织 PugliaTechs 开发。