AI 协作指南
📅 2026-8-30
为什么适合 AI 写脚本
sf 把「AI 写脚本最常见的失败模式」在语言层做了消解:
1. 运行时自省,不用猜 API
help() // 全部分类一览
help("http") // 网络类函数 + 简介
help("rsaEncryptRaw") // 签名/参数/返回/示例/常见错误
--list-builtins 可全量导出。函数名拼写容错:help("strsplite") 会给出最接近的 strSplit。
2. 报错自带修复线索
内置函数失败返回 error 值,信息包含:函数名、实参回显、期望类型、常见原因。例如:
downloadFile() 下载失败: HTTP GET 请求失败: io: Connection refused
(可能原因:DNS 解析失败、网络不通、TLS 证书验证失败、服务器拒绝连接)
AI 拿到即可判断是地址写错还是服务未启动,无需二次试探。
3. 参数顺序容错设计
历史上 AI 常在 regFind(参数顺序) 一类调用上反复出错。sf 的函数命名与参数约定稳定一致(目标在前、模式在后),配合 help 当场确认,出错即自纠。
4. 稳态错误处理
一般错误(IO 失败、参数不匹配)返回 error 值而非抛异常,脚本用 isErr 分支处理,控制流确定;只有除零等真正不可恢复的情况才抛异常。
嵌入与自动化
- 退出码契约:脚本
exit(1)即退出码 1,fatalf输出到 stderr 并以 1 退出,方便调用方判断 --remote <url>/--cloud <名>远程脚本执行;import "lib.sf"模块化复用- 作为 Rust crate(
sflang)嵌入宿主程序,注入自定义全局与函数