内容
# 以太边缘
[](https://github.com/EvanL1/AetherEdge/actions/workflows/rust-check.yml)
[](#license)
[](https://www.rust-lang.org/)
[](CHANGELOG.md)
[](CHANGELOG.md)
**文档网站:** [docs.aetheriot.workers.dev/cn](https://docs.aetheriot.workers.dev/cn/)
[AI 原生平台](docs/overview/ai-native-platform.md) · [快速开始](docs/guides/getting-started.md) · [文档](https://docs.aetheriot.workers.dev/cn/) · [代理技能](skills/aether-iot/SKILL.md) · [MCP](docs/guides/ai-assistants.md) · [中文](README-CN.md)
**让 AI 代理控制您的物理空间 — 安全、本地、确定性。**
以太边缘是一个开源、行业中立的物联网边缘内核、运行时和 Rust SDK,用于 Linux 网关。它连接现场设备,在共享内存中保持权威的实时状态,运行确定性的本地规则和警报,并存储嵌入式历史记录 — 无需 Redis、无需 PostgreSQL、无需云服务、无需浏览器、无需 LLM。
它的不同之处在于:AI 是位于类型化、受控边界后面的首要**客户端**。代理通过 MCP 和 OpenAPI 发现真实能力,提出更改建议,并调试行为 — 同时设备控制始终默认为拒绝,显式确认,并经过审计,边缘即使在没有 AI 连接的情况下也能确定性地执行。
以太边缘是 [AetherIoT 平台](docs/overview/platform.md) 中的边缘产品,与 [AetherCloud](https://github.com/EvanL1/AetherCloud) 和 [AetherContracts](https://github.com/EvanL1/AetherContracts) 并列。官方能源管理发行版是 [AetherEMS](https://github.com/EvanL1/AetherEMS)。
## 五分钟试用
**已有运行的边缘系统?** 将其暴露给 AI 助手作为只读 MCP 工具:
```bash
claude mcp add aether -- aether mcp
```
然后询问您的助手:
```text
检查我的边缘运行时并为其公开的功能生成只读操作应用。
```
MCP 服务器与身份验证的 API 网关 (`aether-api:6005`) 通信,因此为会话设置 `AETHER_ACCESS_TOKEN`。笔记本上的 Claude,服务器上的边缘?一行代码仍然有效:`claude mcp add aether -- ssh user@gateway aether mcp`,或将 `AETHER_API_URL` 指向 HTTPS 入口 — 参见 [连接 AI 助手](docs/guides/ai-assistants.md)。
**没有硬件?** SDK 组合可以在任何地方运行,不需要外部服务,也不会调试任何内容:
```bash
cargo run -p aether-example-minimal-gateway # 空的行业中立网关
cargo run -p aether-example-energy-gateway # 默认情况下禁用的 Energy Pack 证明
```
您还可以模拟线路上的设备 — Modbus TCP/RTU、CAN、J1939 — 并像实际现场一样从中获取数据:
```bash
cargo run -p simulator -- --scenario tools/simulator/scenarios/pv_daily.yaml --port 5020
```
参见 [快速开始](docs/guides/getting-started.md) 以获取完整的安全空运行时设置,[连接设备](docs/guides/connect-devices.md) 以进行通道连接,[代理快速入门](https://docs.aetheriot.workers.dev/cn/agent-quickstart/) 以获取完整的助手驱动设置。
## 安装以太边缘
对于基于 Docker 的 Linux 边缘主机,下载匹配的 `AetherEdge-<arch>-<version>.run` 文件及其 `.sha256` 文件,从 [GitHub Releases](https://github.com/EvanL1/AetherEdge/releases) 获取。验证并在目标主机上运行新鲜安装包:
```bash
sha256sum -c AetherEdge-<arch>-<version>.run.sha256
chmod +x AetherEdge-<arch>-<version>.run
sudo ./AetherEdge-<arch>-<version>.run
```
`.run` 包安装六服务的边缘运行时和 `aether` CLI。发行版还包含独立的 CLI 存档;这些存档不安装运行时。对于源代码检查或 SDK 开发,请遵循 [快速开始](docs/guides/getting-started.md)。运行 `cargo install --path tools/aether --locked` 只安装 CLI。参见 [部署](docs/guides/deployment.md) 以获取 Docker 和裸金属包合约。以太边缘不是 npm 或 Bun 包;`npx` 和 `bunx` 不安装它。
## 以太边缘提供的内容
- **确定性边缘运行时** — 六个隔离的 Rust 服务在没有 AI 客户端连接时继续采集、规则、警报、历史记录和上行链路。
- **本地优先的数据平面** — 共享内存是实时点状态的权威来源;SQLite 提供嵌入式期望状态、历史记录、审计和持久存储。
- **机器可读的合约** — 运行时清单、OpenAPI、能力元数据、Pack 清单、实验性 CloudLink 模式、MCP 工具和 Markdown 文档为代理提供事实而不是提示民间传说。
- **单一应用边界** — HTTP、CLI、MCP 和生成的客户端共享受控查询和命令,而不是直接编写 SHM 或存储。
- **领域 Pack** — 行业知识、模型、映射、规则和处理声明在内核上层构建,而不成为核心依赖项。
## AI 原生产品方向
AetherIoT 的产品方向是让人们用对话描述结果,而不是通过固定的配置屏幕编程设备标识符、触发器、条件和操作。代理发现类型化能力,生成受控建议,并调试行为;以太边缘在没有模型的情况下本地执行已接受的行为。
完整的终端用户对话式代理当前版本中未提供。以太边缘提供了它所需的基石:运行时和 Pack 发现、代理可读文档、OpenAPI、MCP 工具和资源、受控命令、修订配置、审计证据和确定性本地执行。
计划的平台生命周期是:
```text
人类意图 -> 代理建议 -> 类型化合约 -> 策略和确认
-> 调试行为 -> 确定性边缘执行
-> 观察、解释和受控修订
```
未来意图、建议、模拟、到期和持续适应能力必须作为显式应用和 AetherContracts 表面添加。代理不能构造设备功能,写入 SHM 或 SQLite,绕过确认,或成为隐藏的第二个配置权限。参见 [AI 原生平台](docs/overview/ai-native-platform.md) 和 [平台状态](docs/roadmap/status.md) 以获取交付边界。
> **测试版:** 以太边缘是行业中立的内核、运行时和 SDK。现有的 crate、binary、CLI 和一些兼容性工件保留其 `aether-*` / `aether` 名称。此存储库以前名为 `EvanL1/AetherIot`;软件标识在 [迁移](docs/migration/aetheriot-to-aetheredge.md) 期间保持稳定。
## 代理访问如何受到控制
存储库的代理技能是可选的开发指南,而不是以太边缘软件包。参见 [使用 AI 构建应用](docs/guides/build-applications-with-ai.md),如果您想将其添加到兼容的助手。
可选的技能提供开发方法和从在线文档中提取当前 Markdown。MCP 提供实时、结构化的能力。除非操作员启动显式启用写入的会话,否则写入工具不会注册,并且每次写入仍会跨服务器强制执行权限、确认、验证和审计边界。
参见 [使用 AI 构建应用](docs/guides/build-applications-with-ai.md) 以获取客户端合约和 [代理快速入门](https://docs.aetheriot.workers.dev/cn/agent-quickstart/) 以获取完整的安全空运行时设置。
## 对话优先,设计为无头
以太边缘不附带通用 Web 控制台。固定的仪表板无法表达每个行业 Pack,而浏览器永远不应成为第二个配置权限。相反,以太边缘附带合约、代理技能和开发指南,以生成或维护适合特定用途的应用。
长期配置体验优先采用对话式:用户描述他们想要的结果,而代理生成可检查的、版本化的更改。可能导致后果的更改仍会产生按需摘要、风险解释、模拟或确认界面。这些生成的视图解释更改;它们不拥有它。
用户界面是下游客户端和参考实现。它们使用已发布的应用程序 API,保留可替换性,并且不直接访问 SHM、SQLite 或内部服务访问。可选的 AetherEMS 控制台是此模型的一个能源领域实现。
## Rust SDK
`aether-edge-sdk`,导入为 `aether_sdk`,是唯一受支持的 Rust 应用程序外观。工作区实现 crate 是源代码独有的,不能独立发布。下游构建在签名源代码发布后面固定确切的提交,并通过 SDK 的 `local-runtime` 功能选择本地适配器。上面的示例组合是 SDK 烟雾测试,而不是受监管的生产运行时。
## 边缘运行时
| 进程 | 责任 |
|---|---|
| `aether-io` | 协议采集和唯一的遥测/状态写入 |
| `aether-automation` | 实例、规则和审计控制调度 |
| `aether-alarm` | 警报评估和生命周期 |
| `aether-history` | 嵌入式历史记录和可选的历史适配器 |
| `aether-api` | 身份验证的远程应用程序 API 和 WebSocket |
| `aether-uplink` | 通过持久本地出站箱的旧云/MQTT 交付;实验性 CloudLink 基础 |
```text
设备 -> aether-io -> 权威 SHM
|-> 自动化和警报
|-> API 和嵌入式历史记录
`-> 持久出站箱 -> 可选云
领域 <- 端口 <- 应用程序 <- 运行时/接口
^
`---- 扩展
```
只有 `aether-api` 是远程应用程序边界。其他进程 API 停留在环回。生成的客户端必须使用已发布的应用程序功能,并且不得公开或代理这些内部端口。
## 贡献
开发设置和验证位于 [CONTRIBUTING.md](CONTRIBUTING.md)。代理和贡献者的存储库规则位于 [AGENTS.md](AGENTS.md)。
## 许可证
MIT 或 Apache-2.0,随您选择。参见 [MIT 许可证](LICENSE-MIT) 和 [Apache 许可证 2.0](LICENSE-APACHE)。