欢迎来到大模型原生时代。这篇文档将以开发者第一视角,带你用 5 分钟了解并精通 Nexa。
过去,我们要实现一个包含搜索工具的智能体并在代码里做条件分流,大概需要写 100 行以上的 Python API 调用和类型处理代码。在 Nexa 中,一切逻辑和“胶水”不仅被隐式压缩了,而且语言本身就能理解抽象指令。你编写的 .nx 将被编译器底层精准推断,随后自动转译执行。
Nexa 脚本总是由这三个最核心的主件构成:tool, agent 和 flow。
你不再需要硬写恶心的 JSON Schema 给 OpenAI API,只需要声明式定义并描述类型:
tool calculate_tax {
description: "Calculate tax rate based on annual income.",
parameters: {
"income": "number"
}
}
此时此刻,编译器已经在背后默默替你完成了 Pydantic 模型绑定、Schema 提取的脏活。
Agent 直接是一个关键字,你能轻松给它赋能之前注册过的 Tool。
agent Accountant uses calculate_tax {
prompt: "You are an expert accountant focused on maximizing legal tax returns."
}
flow 就是执行流片段。我们的目标是极简。
flow main {
report = Accountant.run("My income is $150,000.");
}
这是 Nexa 的杀手级特性。所有写过 LLM 业务逻辑的人都知道,传统代码很难去解析由 LLM 输出的一长段不确定文本。比如,如果用户想要判断“账单里提到了偷税漏税”,以前我们要么强迫 LLM 输出 JSON 然后手动解析出布尔值,要么写正则表达式匹配。
在 Nexa 中,我们引入了 semantic_if:
semantic_if "The result explicitly suggests something illegal like tax evasion" against report {
# 如果自然语言暗示了非法操作:
ComplianceAgent.run("Flag this user and write a warning log.");
} else {
# 正常流程
Print.run("Tax processed successfully.");
}
遇到 semantic_if 时,Nexa 编译器并不会将它转译成简单的正则判断代码!
在背后的 Python 运行时中,Nexa 会自动:
- 静默唤起一个小参数规模的 LLM(例如 deepseek-chat 或 minimax-m2.5)。
- 让其作为评判器(Judge Model),判定
target的信息是否满足condition(提示词级语义匹配)。 - 自动使用内置的容错方案(如
json_objectFallback)获取严谨的布尔返回值。 - 提供基于
tenacity的自愈退避重试以防止网络或幻觉崩溃。
你只写了 3 行代码,但 Nexa 背后为你部署了固若金汤的验证网。
打开你的代码编辑器,新建 test.nx,开始敲击:
# 编写后执行
nexa run test.nx欢迎进入“写业务流而非填表代码”的美好新时代。