模型到底看到了什么?
本文介绍 AgentScript,一门用于构建显式、有作用域、可审计LLM 上下文的小型领域专用语言。
我们这一代很多程序员,最初接触编程时都遵循一套简单模型:输入、处理、输出。
程序接收数据、处理数据、产出结果。这套模型虽然古老,但十分好用,它让程序的边界清晰可见,逻辑易于理解。
而 LLM 智能体(Agent)彻底打破了这套传统范式。
智能体的输入不再只是文件、接口请求、结构化记录,而是复杂的提示词上下文:用户意图、工具返回结果、检索文档、记忆记录、中间状态、重试日志、其他智能体的输出……
输出也不再是简单的返回值,而是一段生成文本或 JSON,必须满足约定格式,才能被后续流程信任与复用。
绝大多数 Agent 项目失败,不是因为调用大模型太难,而是没人能确切知道:模型生成结果前,到底看到了哪些信息。
经过多轮迭代后,Agent 会积累大量局部变量、工具返回、记忆数据、中间观测结果、重试消息、其他智能体输出。一部分数据需要传入下一次模型调用,另一部分则应当隔离。 在绝大多数 Python、TypeScript 实现的 Agent 中,上下文边界全靠开发者的编码习惯维护。
这套方式在小型 Demo 中尚可,但放到真实业务流程里,会变得极度脆弱。

模型到底看到了什么? 哪条工具结果被加入提示词,哪些只是本地临时数据? 记忆是否被截断? 其他智能体的输出,是作为参考证据,还是混入了历史对话? 模型必须输出什么格式,才能进入下一步流转?
AgentScript 的诞生,就是为了让这些问题直接能从代码里找到答案。
AgentScript 是什么
AgentScript 是一门面向 LLM 智能体的小型编程语言,核心目标是让提示词上下文具备显式定义、作用域隔离、类型约束、可追踪、可审计的能力。
它主要面向开发者构建多步骤智能体场景,严格管控工具输出、记忆、中间状态与生成内容。
它不是提示词模板,不是 YAML 配置,也不是通用 Agent 框架。
它的核心理念一句话概括:
智能体上下文,应当由代码显式定义。
语言最核心的两个关键字:use 和 generate。
use content max 8k as "文件内容"
generate({
input: "为忙碌的同事总结这份文件",
max_output: 1000
}) -> {
title
summary
key_points: list[string]
action_items: list[string]
}
use 声明哪些数据可以被模型看到;
generate 定义调用大模型的唯一入口,同时约束输出结构。
在传统输入-处理-输出视角下,AgentScript 直接聚焦 LLM 程序最不稳定的两个边界:提示词输入、生成结果输出。
这门语言真正的价值,不是封装了大模型调用,而是把提示词边界直接暴露在代码层面,一目了然。 语言其余能力:变量、函数、智能体、导入、循环、工具、记忆、执行追踪,全部都是为了支撑这套上下文管控逻辑。