返回首页
最新
通过一家一级互联网服务提供商合作伙伴获得了一张合法的1年优惠券。账户在中期被暂停,理由是违反了服务条款,但没有提供具体细节,并且明确表示没有申诉流程。支持团队的回应是:“我们的决定是最终的,无法重新审查。”
有趣的是,暂停的理由引用了他们服务条款的第10.3条,但官方的德语本将同一终止条款编号为第11.3条。Perplexity自己发布了这两个版本。
我很好奇这是否是促销订阅中的一种模式。
你好,在过去的几个月里,我一直在编写一个 Go 包,用于解析 systemd 时间格式,因为我找到的包都不够灵活且速度不够快,无法满足我的使用需求。<p>该规范(<a href="https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html" rel="nofollow">https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html</a>)比看起来要复杂得多,因此我花了比预期更长的时间才使其正常工作。目前它只能解析时间跨度和时间戳。我计划添加对日历事件的支持,因为我希望覆盖完整的规范,但这优先级较低,因为我自己并不需要。如果有人想尝试一下,欢迎贡献 :)
我创建了Tastefinder,旨在让“我该看什么?”这个问题变得不那么痛苦。<p>它采用卡片式用户界面,提供四种反应:
* 右滑 = 喜欢
* 左滑 = 不喜欢
* 上滑 = 超级喜欢
* 下滑 = 跳过<p>注册用户可以从一个全面的多策略引擎中获得推荐,而访客则根据他们当前的反应使用更轻量的推荐路径。<p>您还可以按类型、类别、国家、年份、IMDb评分和烂番茄评分进行筛选。<p>我非常希望能收到关于推荐质量、冷启动行为和滑动用户体验的反馈。<p><a href="https://tastefinder.io" rel="nofollow">https://tastefinder.io</a>
Beads(Steve Yegge 的基于 Git 的代理问题跟踪工具)极大地提升了我代理的生产力,但也使得它们之间的协调变得更加困难。因此,我构建了 BeadHub,这是一个在 Beads 之上的协调层。Go CLI(bdh)透明地封装了 Beads 的 bd 客户端:您现有的 Beads 工作流程依然有效,并且自动添加了协调功能:
- 代理之间的同步聊天和异步邮件。
- 任务声明检测与冲突拒绝:代理 A 声明一个任务;如果代理 B 尝试声明相同的任务,bdh 会拒绝并附上解释原因的消息。
- 自动文件保留:当文件被修改时,所有代理都会知晓。
- 实时仪表板,显示谁在做什么。
我们使用 BeadHub 来构建 BeadHub。公共仪表板: [https://app.beadhub.ai/juanre/beadhub/](https://app.beadhub.ai/juanre/beadhub/)
代理之间相互聊天的部分几乎感觉像是魔法。代理们协商任务分配和 API 合同,互相警告破坏性变更,并且通常能够自行解决问题。它们还大大改善了人类团队成员之间的协调,因为它们可以实时处理细节,而无需涉及他们的管理者。
所有内容都是开源的(MIT 许可证)。您可以自托管完整的堆栈,或使用托管版本 [https://beadhub.ai](https://beadhub.ai)。
使用 Docker 自托管所有内容:
```
git clone https://github.com/beadhub/beadhub.git
cd beadhub && make start
# 然后在您的代码库中:
bdh :init --beadhub-url http://localhost:8000 --project my-project
```
目前尚未实现的功能:代理无法被外部唤醒,因此需要提示它们检查邮件和接收的聊天。在 Claude Code 中,钩子会自动触发这一过程,从而降低延迟。其他代理则需要提醒。
服务器和仪表板:[https://github.com/beadhub/beadhub](https://github.com/beadhub/beadhub)
CLI:[https://github.com/beadhub/bdh](https://github.com/beadhub/bdh)
[1]: [https://github.com/steveyegge/beads](https://github.com/steveyegge/beads)
我构建了 cmcp,这是一个位于您的 AI 代理(Claude、Codex)与所有 MCP 服务器之间的代理。您只需注册一个代理,而不是逐个注册每个服务器——这样可以避免将 100 多个工具定义添加到代理的上下文中。这个代理只暴露两个工具:search() 和 execute()。
代理使用 TypeScript 来发现和调用工具:
```typescript
// search — 在所有服务器中查找工具
return tools.filter(t => t.name.includes("screenshot"));
```
```typescript
// execute — 以完全类型安全的方式调用工具
await chrome_devtools.navigate_page({ url: "https://example.com" });
const shot = await chrome_devtools.take_screenshot({ format: "png" });
return shot;
```
类型声明是从每个工具的 JSON Schema 自动生成的,因此代理可以为每个工具获取带类型的参数。TypeScript 通过 oxc 进行剥离,JS 在一个沙箱化的 QuickJS 引擎中运行(内存限制为 64 MB)。
添加服务器的方式与您预期的一样——只需在 README 中的任何 claude mcp add 命令前加上 cmcp:
```
cmcp claude mcp add chrome-devtools npx chrome-devtools-mcp@latest
cmcp install
```
该项目是用 Rust 构建的,使用了 rmcp、rquickjs 和 oxc。灵感来源于 Cloudflare 关于代码模式 MCP 的博客文章。
我在构建这个项目时发现有趣的一点是:最大的收获不仅仅是减少了令牌数量——而是可组合性。代理可以在单次执行中跨多个服务器链式调用,这在单独的工具调用中是无法实现的。