我创建Lightbox是因为我不断遇到同样的问题:一个代理在生产环境中失败,而我无法知道实际发生了什么。<p>日志分散,LLM的“我调用了工具”并不可靠,而重新运行也不是确定性的。<p>本周,大量Clawdbot事件进一步强调了这一点。具有完全系统访问权限的代理可能会暴露API密钥和聊天记录。提示注入现在成为一个主要的安全隐患。<p>当代理能够访问你的文件系统、执行代码和浏览网络时……你可能需要一个防篡改的记录,准确记录它采取的每一个行动,特别是当恶意提示或被攻陷的网页可能在会话中劫持代理时。<p>Lightbox是一个小型Python库,可以将代理进行的每一次工具调用(输入、输出、时间)记录到一个仅可追加的日志中,并附带加密哈希。你可以使用模拟响应重放运行,比较不同版本之间的执行,并在事后验证日志的完整性。<p>可以把它想象成飞机黑匣子,但用于你的黑客工具箱。<p>*它的功能:*<p>- 本地记录工具调用(无云端,使用你的基础设施)<p>- 防篡改日志(哈希链,可验证)<p>- 精确重放失败的记录响应<p>- 命令行界面用于检查、重放、比较和验证会话<p>- 与框架无关(适用于LangChain、Claude、OpenAI等)<p>*它不具备的功能:*<p>- 不重放LLM本身(仅记录工具调用)<p>- 不是仪表板或分析平台 <p>- 不试图取代LangSmith/Langfuse(解决的是不同的问题)<p>*我关心的使用案例:*<p>- 安全取证:代理表现异常,是不是提示注入?检查记录。<p>- 合规性:“证明你的代理上周二做了什么”<p>- 调试:在不重新运行昂贵的API调用的情况下重现失败<p>- 回归测试:比较不同代理版本之间的工具调用模式<p>随着代理变得越来越强大和自主(Clawdbot/Molt、Claude计算机使用、Manus、Devin),我认为我们将需要像航空业一样的黑匣子。<p>这是我对此原始需求的尝试。<p>目前还是早期版本(v0.1),故意保持简约,采用MIT许可证。<p>网站:<<a href="https://uselightbox.app" rel="nofollow">https://uselightbox.app</a>> <p>安装:`pip install lightbox-rec`<p>GitHub:<<a href="https://github.com/mainnebula/Lightbox-Project" rel="nofollow">https://github.com/mainnebula/Lightbox-Project</a>> <p>希望能得到反馈,特别是来自那些关注代理安全或在生产环境中运行自主代理的人的意见。
返回首页
最新
我总是记不住 `ln -s x y` 的操作数顺序,现在我明白了原因:这个命令支持两种同时的解析方式。
`(ln -s) (x y)` — 这是我想要的理解。`-s` 表示“符号链接”,参数顺序与 `cp x y` 相同。没问题,但我对这种类比不太信任——尤其是在经历了 `find`、`dd` 或 `tar` 之后。
另外,出生时我们将符号链接称为 `x y`,但后来如果我们执行 `ls -l y`,就会看到 `y -> x`。为什么会反转?使用 `ln -s` 使得 `-s` 无法强制施加一种约定:只有链接本身被称为符号链接,至于这对操作数意味着什么,就得由我们自己去理解。
`ln (-s x) y` — 这是我的理解。`-s` 表示“源”。你是在声明 x 是新名称 y 的内容来源。
“但等一下,在符号链接术语中,x 被称为‘目标’!”这让我感到困惑。我一直把“源”和“目标”当作反义词,所以这个记忆法总是出错。但 x 实际上是两者:链接的目标,内容的源头。¹
所有指向某个资源的符号链接形成一棵以原始资源为根的树:
```
v1/ ← 原始资源
├── v2 (ln -s v1 v2)
│ └── v3 (ln -s v2 v3)
└── v4 (ln -s v1 v4)
```
每个带有 `-s` 的 `ln` 都扩展了一条分支。部分顺序 `x < y`(当且仅当 `ln -s x y`)甚至可以通过 `st_birthtime` 观察到——文件系统记录了哈斯图的构建历史。
简而言之:`ln -s old new` 将 `new` 推入以 `old` 为根的栈中。`-s` 是为了“源”,而不仅仅是“符号”。
---
¹ 就像拓扑学学生最终意识到一个集合可以既是闭合的又是开放的一样——这些词并不是反义词,只是独立的属性。我想知道什么样的正式拓扑框架可以使“源”和“目标”对应于“开放”和“闭合”。
大家好!我开发了Lumina——一个开源的AI/LLM应用可观察性平台。只需5分钟即可通过Docker Compose自托管,所有功能均已包含。
问题:
在过去一年中,我一直在构建LLM应用,遇到了以下问题:
- LLM的响应在调整提示后会随机变化,导致系统崩溃。
- 成本会意外飙升(结果发现是一个错误导致GPT-4而不是3.5受到影响)。
- 在测试提示变化时,没有简单的方法来比较“之前与之后”的效果。
- 现有工具要么太贵,要么在免费版本中缺少功能。
我构建的产品:
Lumina是基于OpenTelemetry的,这意味着:
- 可以与您现有的OTEL堆栈(如Datadog、Grafana等)兼容。
- 无供应商锁定,采用标准追踪格式。
- 只需三行代码即可集成。
主要功能:
- 成本与质量监控——当成本飙升或响应质量下降时自动发出警报。
- 重放测试——捕获生产追踪,在更改后重放,查看差异。
- 语义比较——不仅仅是字符串匹配——使用Claude来判断响应是“更好”还是“更差”。
- 自托管版本——每天50,000条追踪,保留7天,包含所有功能(警报、重放、语义评分)。
工作原理:
```bash
# 启动Lumina
git clone https://github.com/use-lumina/Lumina
cd Lumina/infra/docker
docker-compose up -d
```
```typescript
// 添加到您的应用中(自托管无需API密钥!)
import { Lumina } from '@uselumina/sdk';
const lumina = new Lumina({
endpoint: 'http://localhost:8080/v1/traces',
});
// 包裹您的LLM调用
const response = await lumina.traceLLM(
async () => await openai.chat.completions.create({...}),
{ provider: 'openai', model: 'gpt-4', prompt: '...' }
);
```
就这样。每个LLM调用现在都记录了成本、延迟、令牌和质量评分。
与众不同之处:
1. 免费自托管,且限制合理——每天50,000条追踪和7天保留(每天午夜UTC重置)。所有功能均已包含:警报、重放测试和语义评分。非常适合大多数开发和小型生产工作负载。需要更多?可以升级到托管云服务。
2. 基于OpenTelemetry——不是另一种专有格式。使用标准OTEL导出器,兼容现有基础设施。可以同时将追踪发送到Lumina和Datadog。
3. 重放测试——杀手级功能。捕获100条生产追踪,更改提示,重放所有追踪,并获取语义差异报告。就像LLM的快照测试。
4. 快速——使用Bun、Postgres、Redis、NATS构建。从追踪到警报的延迟低于500毫秒。单台机器可处理超过10,000条追踪/分钟。
我在寻找:
- 对该方法的反馈(OTEL是否是合适的基础?)
- 错误报告(在Mac/Linux/WSL2上测试过,但我相信还有问题)
- 关于哪些功能最重要的想法(警报?重放?成本跟踪?)
- 对语义评分器的帮助(目前使用Claude,想要使其可插拔)
为什么开源:
我希望这成为LLM可观察性的标准。只有在以下情况下才能实现:
- 免费使用和修改(Apache 2.0)
- 易于自托管(Docker Compose,无云依赖)
- 欢迎贡献(标记有良好入门问题)
商业模式是为不想运行基础设施的团队提供托管服务。但核心产品是且将始终是免费的。
试试吧:
- GitHub: https://github.com/use-lumina/Lumina
- 文档: https://docs.uselumina.io
- 快速入门:从`git clone`到仪表板只需5分钟
我很想听听您的想法!特别感兴趣的是:
- 您在LLM中遇到的可观察性问题
- 使其对您有用的缺失功能
- 您正在使用的任何类似工具(以及它们做得更好的地方)
感谢您的阅读!
嗨,HN,
我是来自Plastic Labs的Vineeth。我们正在构建Honcho,一个用于有状态AI代理的开源内存库。
大多数内存系统只是向量搜索——存储事实、检索事实、将其放入上下文中。我们采取了不同的方法:将内存视为推理。(我们在博客中对此进行了大量讨论)
我们构建了Neuromancer,这是一个专门为AI原生内存训练的模型。与简单的事实提取不同,Neuromancer在对话中进行形式逻辑推理,以构建随时间演变的表示。它既便宜(每百万个token的摄取费用为2美元,检索无限制),又高效,并且达到了最新的技术水平:LongMem(90.4%)、LoCoMo(89.9%)和BEAM。在BEAM 10M上——超出了所有模型的上下文窗口——我们达到了0.409,而之前的最佳水平为0.266,每个查询使用了0.5%的上下文。
Github: [https://github.com/plastic-labs/honcho](https://github.com/plastic-labs/honcho)
评估: [https://evals.honcho.dev](https://evals.honcho.dev)
Neuromancer模型卡: [https://plasticlabs.ai/neuromancer](https://plasticlabs.ai/neuromancer)
将内存视为推理的方法: [https://blog.plasticlabs.ai/blog/Memory-as-Reasoning](https://blog.plasticlabs.ai/blog/Memory-as-Reasoning)
了解我们最近更新的更多信息: [https://blog.plasticlabs.ai/blog/Honcho-3](https://blog.plasticlabs.ai/blog/Honcho-3)
欢迎提出有关架构、基准测试或代理内存模式的一般问题。