旨在被代理读取,而不仅仅是被代理容忍
16 May 2026
大多数框架是为人类设计的,仅仅被一个通过它们工作的 AI 代理所容忍:猜测的约定、以训练数据截止作为真实文档的替代品、没有可靠的方法来检查更改是否确实达到了预期效果。Phlo 采取了相反的出发点:如果平台是一个闭环,只有一个真实来源,代理就可以真正理解它,而不仅仅是进行模式匹配。
一份技能文档而不是猜测
SKILL.md 是一个完整的语言和构建参考,专门编写以便代理可以在没有事先培训的情况下在 Phlo 代码库上工作。它不是营销文案,而是新工程师在第一天所需的那种参考:语法规则、解析器的继续逻辑、视图规则,所有这些都集中在一个代理可以直接加载的地方,而不是从零散的示例中推断。
两个平面,故意而为
reflect::context → JSON snapshot: routes, views, errors
build::lint → fast, side-effect-free syntax check
phlo_eval(...) → runs inside the live app, against real data
reflect:: 和 build:: 在运行的应用程序外部运行:快速且无副作用,可以在迭代时安全地不断调用。phlo_eval 完全是在另一个层面上执行,它在实时应用程序内部执行,因此代理可以检查更改在真实数据上的行为是否正确,而不仅仅是检查它是否编译。将这两者分开是重要的:只能对代码进行 lint 的代理实际上并不能验证行为,而只能在实时数据上运行的代理则没有便宜、安全的方式先进行迭代。
精确的错误也是代理的一个特性
基于行的解析器(没有 AST,几百行,之前的帖子中有介绍)意味着 .phlo 源行直接映射到生成的 PHP 中的已知行。错误页面会命名确切的源文件和行,并在 data/errors.json 中记录一个 8 字符的引用 ID。这个精确性是为人类调试自己的应用程序而构建的,但对代理来说同样有效:“这里是失败的确切行”是模型可以直接采取行动的内容,而无需从它从未编写的编译输出中扭曲的堆栈跟踪中重建意图。
机器可读,而不仅仅是人类可读
llms.txt、guide.md、manual.md 和 /manual/schema 以纯文本和结构化 JSON 的形式暴露人类阅读的相同文档,因此获取网站自身文档的代理获得的是实际参考,而不是渲染的 HTML 的抓取。使 Phlo 对人类可读的相同特性,一个封闭的循环、源映射错误、一个技能文档,使其对代理可处理,并将其视为一项首要目标是小团队能够与代理作为真正的合作者而不是小心的实习生一起工作的方式。