Agent-Native 架构:为 Agent 设计系统,不是为人
当系统的操作员从人类变成 LLM Agent 时,设计原则需要根本性改变。人类需要 GUI 和文档,Agent 需要语义清晰的工具和会报错的约束。我在 QuantGPT 中实践的 Agent-Native 设计原则:为调用者的认知模式设计,不是为设计者的审美设计。
当系统的操作员从人类变成 LLM Agent 时,设计原则需要根本性改变。人类需要 GUI 和文档,Agent 需要语义清晰的工具和会报错的约束。我在 QuantGPT 中实践的 Agent-Native 设计原则:为调用者的认知模式设计,不是为设计者的审美设计。
AI 生成的代码必须被执行,否则它就只是文本。但执行意味着风险。我没有选择容器隔离,也没有用 RestrictedPython,而是设计了一个三层防御:先在编译期用 AST 拒绝危险结构,再在运行时替换整个 builtins,最后用操作系统级资源限制兜底。三层各解决不同类别的风险,重叠但不冗余。
LangChain、LangGraph、CrewAI、PydanticAI——AI 编排框架从不缺选择。我全部评估后决定自研。不是 NIH 心态,而是当你需要按失败模式选变异策略、按阶段路由不同模型和温度、在轨迹分析的基础上自适应进化时,通用框架给你的抽象层反而变成了需要绕过的障碍。
ML 研究中最常见的谎言是’上次跑的结果很好’。上次用的什么代码?什么数据版本?什么参数?没人说得清。我用文件系统事务(临时目录 → 原子重命名)实现了每次迭代的不可变快照,让’上次的结果’变成一个可查询的事实而不是一段记忆。
让 AI 驱动研究流程,不等于让 AI 决定系统怎么运行。我在设计 AI 编排系统时做了一个关键分离:AI 只是操作员,执行引擎才是法律。这个决策源于一次失败的经验。
多数系统先设计功能,再补审计。我反过来做——先确定系统在出事后需要回答哪些问题,再倒推每一层应该记录什么。这个思维倒置改变了整个架构。