在
at (从 @)是一种专为人工智能代理设计的编程语言,具有显式、可读性和可恢复性。
设计理念
- 代理优先:代码应该在没有IDE支持的情况下可读写
- 显式效果:
needs/using使依赖关系可见且可模仿 - 可恢复:清晰导入,无桶文件,无隐含魔法
- 可预测的:结果优于异常,魔法最小
- 快:冷启动以毫秒为单位,二进制占用空间小
包装
npm(WASM)
npm install -g @aryaminus/at使用 at CLI使用的二进制文件;npm包提供WASM绑定。
家酿
brew tap aryaminus/at
brew install at验证安装
at --version
at --help快速开始
# Run a program
at run examples/sum.at
# Type-check (fails on errors; warns are non-fatal)
at check file.at
# Run tests (file or directory)
at test file.at
at test tests/
# Start REPL
at repl
# Format code
at fmt file.at
# Run benchmarks
at bench file.at --runs 10
# Show dependencies
at deps file.at
# Lint code
at lint file.at
# Manage cache
at cache list
at cache prune --max-files 100
# Start MCP server
at mcp-server tools.at
# Start LSP server
at lsp
# Get help
at --help
at run --help示例
fn greet(name: string) -> string {
return "Hello, " + name + "!";
}
fn safe_div(a: int, b: int) -> result {
return if b == 0 {
err("division by zero")
} else {
ok(a / b)
};
}
fn process(items: array) -> int {
let sum = 0;
for item in items {
set sum = sum + item;
}
return sum;
}
test "greeting works" {
let msg = greet("World");
assert_eq(msg, "Hello, World!");
}
test "division handles errors" {
let result = safe_div(10, 0);
assert(is_err(result));
}
fn main() {
print(greet("at"));
let numbers = [1, 2, 3, 4, 5];
let total = process(numbers);
print(total);
return 0;
}安装
规范安装文档 docs/install.md.
货物(吉)
cargo install --git https://github.com/aryaminus/at --bin at预构建二进制文件
从您平台的GitHub版本下载:
# macOS (Intel)
curl -L https://github.com/aryaminus/at/releases/latest/download/at-x86_64-apple-darwin.tar.gz | tar xz
sudo mv at-x86_64-apple-darwin /usr/local/bin/at
# macOS (Apple Silicon)
curl -L https://github.com/aryaminus/at/releases/latest/download/at-aarch64-apple-darwin.tar.gz | tar xz
sudo mv at-aarch64-apple-darwin /usr/local/bin/at
# Linux
curl -L https://github.com/aryaminus/at/releases/latest/download/at-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv at-x86_64-unknown-linux-gnu /usr/local/bin/at出版
合并后自动发布 main.一个版本碰撞提交和 vX.Y.Z 标签由CI创建。
安装烟雾矩阵
| 目标 | 安装路径 | 验证 |
|---|---|---|
| Linux/macOS | 发布tarball | at --version, at run examples/sum.at, at check examples/features.at |
| Windows | 释放zip | at --version, at run examples/sum.at, at check examples/features.at |
| 来源 | cargo install --path crates/at_cli | at --version, at run examples/sum.at |
| 来源(git) | cargo install --git https://github.com/aryaminus/at --bin at | at --version, at run examples/sum.at |
| WASM | npm install -g @aryaminus/at | 让包装烟进来 docs/wasm.md |
当前状态
所有核心功能均已实现:
- 类型:
int,float,bool,string,unit,array,option,result - 控制流程:
if(表达式,可选else),while,for,break,continue - 图案匹配:
match随着ok,err,some,none,_模式;多字段枚举变体 - 错误处理:
?(try)操作员,option,result - 旧版分阶段弃用警告
throw和try { ... } catch { ... }用法 - 影响:
needs/using能力管理 - 导入:带缓存的本地路径和URL
- 评论:
//线/* */阻止评论 - 字符串转义:
\n,\t,\r,\0,\\,\" - 数组:不可变数组
len,append,contains,slice - 混合算术:
int和float可以自由混合(int升级为float) - 操作员:
+,-,*,/,%,&&,||,==,!=, `,>=` - 试块:
test "name" { ... }随着assert和assert_eq;多文件测试发现(at test) - 工具功能:
tool fn用于MCP集成 - 正则表达式:
regex_match,regex_find,regex_replace具有捕获组支持 - 40+内置:数学(
abs,min,max,floor,ceil,round,pow,sqrt,sum),字符串(join,replace,starts_with,ends_with,repeat,parse_float),性格(char_code,from_char_code,is_digit,is_alpha,is_upper,is_lower),阵列(sort,reverse,index_of,count,range),以及更多
分阶段弃用状态(兼容模式):
legacy_exception_surface和unqualified_import_call是否处于警告级别0.1.x.- 计划执行时间表:
- 0.2.x:迁移测试的可选拒绝模式。 - 0.3.0 或更晚:默认情况下可能会成为硬错误。
工具
用于开发、测试和部署的全面工具:
- 格式化器:格式一致、稳定(
at fmt) - 语言服务器协议:诊断、悬停、转到定义、完成、镶嵌提示(
at lsp) - 类型检查:全类型推理和检查(
at check) - 过梁:检测重复名称、未使用的变量(
at lint) - MCP服务器:将工具暴露给AI代理(
at mcp-server) - 虚拟机:基于堆栈的解释器(
at run) - 交互式编程环境:互动式开发(
at repl) - 测试运行器:运行测试块(
at test) - 基准:绩效衡量(
at bench) - 依赖:显示模块依赖关系(
at deps) - 缓存:管理缓存的远程导入(
at cache) - WASM:浏览器兼容运行时
CI强制执行:
cargo fmt --checkcargo clippy正确性门- 不正确的剪贴警告预算(
.clippy-warning-baseline.toml) - 工作区测试+示例运行/检查扫描
- 发布二进制大小预算(
<= 8,500,000字节) - 基准稳定性阈值
examples/run_bench.sh+examples/bench_compare.py
文档
docs/lang.md--完整的语言参考docs/cli.md--CLI命令和选项docs/install.md--安装和平台注意事项examples/features.at--综合功能演示
设计目标
自 “代理人的语言”:
- 无LSP的上下文:无需IDE支持即可阅读
- 牙套,不是空白:无压痕灵敏度
- 显式流上下文:
needs/using效果 - 结果超过异常:键入错误处理
- 最小差异:鼓励使用尾随逗号
- 可恢复:无桶文件,显式导入
- 本地推理:没有宏,没有隐含的魔法
许可证
麻省理工学院
