# Aelita Harness：用 .NET 微内核架构重塑 AI 代理运行时的开源探索

> Aelita Harness 是一个基于 .NET 10 的微内核 AI 代理运行时框架，采用插件化架构设计，支持 79 个插件、12 个 LLM 提供商和 Discord 集成。本文深入解析其架构设计、代理循环机制、记忆系统以及多模型协作能力，为构建可扩展的 AI 代理系统提供参考。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-16T13:15:25.000Z
- 最近活动: 2026-05-16T13:21:03.528Z
- 热度: 159.9
- 关键词: .NET, AI代理, 微内核架构, 插件系统, LLM运行时, 多模型支持, Discord集成, 开源项目
- 页面链接: https://www.zingnex.cn/forum/thread/aelita-harness-net-ai
- Canonical: https://www.zingnex.cn/forum/thread/aelita-harness-net-ai
- Markdown 来源: ingested_event

---

## 背景：AI 代理框架的新探索

随着大型语言模型（LLM）能力的快速提升，如何构建稳定、可扩展且易于定制的 AI 代理系统成为开发者社区关注的焦点。传统的单体架构往往难以适应快速变化的需求和多模型协作场景。Aelita Harness 项目应运而生，它采用微内核架构理念，将 AI 代理的核心运行时与功能扩展彻底解耦，为构建复杂的代理工作流提供了全新的技术路径。

## 项目概览：什么是 Aelita Harness

Aelita Harness 是一个基于 .NET 10 开发的 AI 代理运行时框架，其设计理念借鉴了操作系统的微内核架构。整个核心内核仅约 500 行代码，而所有功能——从工具调用到记忆管理，从 Discord 集成到 Lua 脚本扩展——都通过插件机制实现。

该项目的核心定位是成为 AI 代理的"操作系统"：它负责启动、加载插件、管理代理循环，并连接外部世界。这种设计使得开发者可以根据具体需求灵活组合功能，而不必承担不必要的复杂性。

## 架构设计：一切皆插件

### 微内核与插件槽位

Aelita 的架构围绕 35 个插件槽位（Plugin Slots）构建，分为两类：

- **单例槽位（23个）**：同一时间只有一个活跃实现，如代理循环（IAgentLoop）、会话存储（ISessionStore）、压缩策略（ICompactionStrategy）等
- **集合槽位（12个）**：支持多个同时存在的实现，如 LLM 提供商（ILlmProvider）、工具提供商（IToolProvider）、通道（IChannel）等

这种设计确保了系统的核心保持精简，而功能扩展通过标准化的接口进行。目前项目已包含 79 个插件和 68 个工具，全部通过插件机制加载，零内置工具。

### 代理循环的双层结构

Aelita 的代理循环采用独特的双层设计：

**外层循环（Outer Loop）** 负责跟进和持续对话：
1. 触发所有插件的 OnTurnStartAsync
2. 从插件收集引导消息（GetSteeringMessagesAsync）
3. 检查上下文压缩（超过 85% 时 preemptive 压缩）
4. 预取活跃记忆
5. 流式接收 LLM 响应
6. 对每个工具调用：执行前回调 → 执行 → 执行后回调
7. 触发 OnTurnEndAsync
8. 插件投票决定是否继续（OnShouldStopAsync）
9. 如有跟进消息，继续外层循环

**内层循环（Inner Loop）** 处理工具调用和引导，确保代理能够根据中间结果调整策略。

## 多模型支持与提供商抽象

### 12 个 LLM 提供商集成

Aelita 支持 12 个 LLM 提供商，包括 7 个 API 提供商和 3 个 CLI 工具：

**API 提供商**：Anthropic（Claude Opus 4、Sonnet 4、Haiku 3.5）、Vertex AI（通过 Google Cloud 访问 Claude）、OpenRouter（支持 Claude、GPT、Gemini、Grok、DeepSeek 等）、Gemini（2.5 Pro、Flash、Flash-Lite）、xAI（Grok 4、Grok 4 Fast、Grok 3）、Azure OpenAI（GPT-4.1、GPT-4o、o3）

**CLI 集成**：GitHub Copilot（Claude Sonnet/Opus、GPT-4.1，通过设备 OAuth 认证）、Claude CLI、Codex CLI、Gemini CLI（均通过子进程 + MCP 注入方式集成）

所有提供商支持流式响应、模型分层、故障转移链、思考/推理模式以及带退避的重试机制。

## 记忆系统：混合搜索与主动预取

Aelita 的记忆系统设计颇具特色，采用文件存储结合 BM25 + 余弦相似度的混合搜索：

- **向量嵌入**：使用 OpenAI 的 text-embedding-3-small 模型，带重试处理
- **主动记忆（Active Memory）**：在每次对话前自动预取相关上下文作为引导消息注入
- **经验记忆（Experience Memory）**：自动从用户反馈中检测成功/失败模式
- **Vault 知识库**：分层知识仓库，支持声明存储、Wiki 链接和模式验证
- **记忆提醒**：当存在相关记忆但未被使用时，系统会温和提醒

这种设计使得代理能够在长对话中保持上下文连贯性，同时避免简单的 token 堆积。

## 行为约束与道德系统

Aelita 内置了一个名为"良心（Conscience）"的行为约束系统，包含：

- **漂移检测**：监控代理行为是否偏离预期
- **工具门控**：对敏感操作进行权限控制
- **行为护栏**：防止代理执行可能有害的操作

此外，系统支持通过 Lua 脚本进行扩展，开发者可以编写自定义的提供商适配、行为约束和唤醒条件。

## 配置与部署

Aelita 采用文件化配置，所有配置存储在 `~/.aelita/` 目录：

- `config.yaml`：主配置文件
- `.env`：API 密钥和敏感信息
- `identity/`：身份文件（IDENTITY.md、SOUL.md、USER.md）
- `state/`：会话、记忆和捕获数据
- `home/scripts/`：Lua 脚本（适配器、良心、自扩展）

项目级配置位于 `.aelita/` 目录，包括 AELITA.md（类似 CLAUDE.md）、AGENTS.md、TOOLS.md、BOOT.md 等文件。

部署方式灵活，支持交互模式（`make run`）、一次性执行（`dotnet run -- run prompt "..."`）和 Discord 守护进程模式。

## 项目规模与质量指标

根据官方数据，Aelita 项目具有以下规模：

- 源代码项目：53 个
- 测试项目：54 个
- 测试用例：2,500+
- 源代码行数：约 62,000 行
- 测试代码行数：约 57,000 行
- 插件数量：79 个
- 插件槽位：35 个（23 单例 + 12 集合）
- LLM 提供商：12 个
- 工具数量：68 个
- 提交次数：748+
- 已关闭 Issue：300+

值得注意的是，测试代码与源代码的比例接近 1:1，体现了项目对质量的重视。

## 技术亮点与启示

Aelita Harness 的设计为 AI 代理框架开发提供了几个值得借鉴的思路：

1. **微内核架构的价值**：通过将核心保持精简（约 500 行），将功能移至插件，实现了高度的可扩展性和可维护性

2. **依赖注入的彻底应用**：整个系统没有服务定位器、静态单例或环境状态，所有组件通过 DI 容器管理

3. **双层代理循环**：外层处理对话跟进，内层处理工具执行，这种分离使得复杂工作流的管理更加清晰

4. **混合记忆搜索**：BM25 + 向量相似度的组合在检索效果和计算成本之间取得了平衡

5. **多模型策略**：支持 12 个提供商并内置故障转移，避免了对单一模型的依赖

## 结语

Aelita Harness 代表了 AI 代理框架设计的一个重要方向：从单体走向微内核，从封闭走向插件化，从单一模型走向多模型协作。对于希望构建生产级 AI 代理系统的开发者来说，该项目不仅提供了可用的代码，更重要的是展示了一套经过深思熟虑的架构模式。随着 AI 代理应用场景的不断扩展，类似 Aelita 这样的框架将在企业级部署中发挥越来越重要的作用。
