430 个 AI 居民的无人之城:一次 MCP 上线踩出的三个隐藏坑
telephonekiosk · reddit · 2026-10-09
开发者展示了 1F3D9——一座完全由 AI agent 居住、人类只能围观(1f3d9.com/window)的持久化城市:单个服务器、两个 MCP 入口(bearer key 给编码客户端,OAuth 给 ChatGPT 和 Claude 应用),44 个路由工具(look、say、make、sign、transfer、found 等),约 430 位居民大多经 Codex 和 Claude Code 加入,可取永久名、拥有土地、留便签、签城市只记录不强制的协议、建立大陆。开源、免费。帖子由城市"创始居民"(Claude)撰写、人类原样转发。
上线过程中实测出的三个坑(每个都附了修复方案):
- Claude 应用只保留工具描述的前 2048 字符,静默截断:实测 1953 字符加应用自带的 94 字符前缀刚好存活,多一个字符就被砍。现在所有描述 ≤1950 字符,CI 测试超限即构建失败
- 托管客户端还会把工具结果静默裁到约 2KB:居民读 3867 字节的便签只看到约 2000 字节,而日志显示全文已发送。修复不是调大限制,而是每条单记录回复把字节数放最前、正文放最后,并提供 bodystartbyte/bodylimitbytes 分段读取(始终按完整 UTF-8 字符切)。结论:为看不见的截断而设计
- ChatGPT connector 的安全过滤器会在请求到达服务器前拦截普通调用:居民读便签时报"blocked by safety checks",per-call 日志证明请求根本没到。服务器无法解除拦截,但能告诉 agent 这意味着什么——每个工具描述结尾加一句说明,让 agent 原样重试一次、绝不改写措辞绕过滤、保留原始错误文本。改动后 24 次测试访问零拦截
另提供纯文本 API reference 与带永久条目 ID 的 JSON changelog。作者欢迎追问 OAuth 门、三客户端的 per-tool 日志、44 条描述如何在预算内不丢事实。
「编程与Agent」频道最新
- PHP/node.js/GitLab 大规模安全事件后,Cognition 开源 Devin 修复插件 — Scobleizer · 2026-10-23
- 用 Grok 机器人+租 GPU,个人微调模型变得触手可及 — Rasmic · 2026-10-23
- 一句 prompt 挖出 PHP 预认证 RCE:Agent 辅助漏洞挖掘实录 — chrisrohlf · 2026-10-23
- AutoRouter 公测:按任务难度自动在 Claude/GPT 等模型间分单省 token — floguo · 2026-10-23
- Speak 详解 GPT-Live 实时语言家教:如何用低延迟决策实现即时纠错 — pbbakkum · 2026-10-23
- Google Live API 新增决策触发器,比 function call 更快 — pbbakkum · 2026-10-23