Growth AIOS Components 项目架构
本书的核心案例来源。从一个本地自动化工具演化出的 Harness 架构。
项目路径
D:\DEV\CODE\Automator\Components
模块全景
核心 Agent 层
| 模块 | 路径 | 职责 | 核心文件数 |
|---|---|---|---|
| AiAgent | AiAgent/ | Agent 核心引擎:LeadAgent、SubAgent、会话管理、上下文提供 | 71 |
| AiAgent.Embedded | AiAgent.Embedded/ | 内置专业 Agent:浏览器、代码执行、FFmpeg、AutoHotKey | 44 |
| AiAgent.Integration | AiAgent.Integration/ | 工作流规划 Agent:6 步规划流水线 | 65 |
| Agent.Memory | Agent.Memory/ | 记忆存储与压缩引擎 | 11 |
基础设施层
| 模块 | 路径 | 职责 | 核心文件数 |
|---|---|---|---|
| LLM | LLM/ | 多模型适配:OpenAI/Anthropic/Google/通义/Ollama | 70 |
| Workflow | Workflow/ | 工作流引擎:节点执行、分支、循环、嵌套 | 139 |
| MCP | MCP/ | MCP 协议集成:工具注册、远程调用 | 20 |
| Plugin | Plugin/ | 插件系统:OpenAPI 解析、认证、执行 | 47 |
执行层
| 模块 | 路径 | 职责 | 核心文件数 |
|---|---|---|---|
| CLI | CLI/ | 命令行引擎:PowerShell 执行、OCR、文档转换 | 57 |
| CodeRunner | CodeRunner/ | 代码执行:Python/AHK/EXE 多语言沙箱 | 49 |
| Trigger | Trigger/ | 触发器:定时/文件监控/热键/WebHook | 37 |
| VarVault | VarVault/ | 变量保险箱:凭证管理、加密存储 | 21 |
架构演化路径
阶段1:自动化节点引擎
└── Workflow(工作流编排)
└── CLI(命令行执行)
└── CodeRunner(代码节点执行)
阶段2:接入 LLM
└── LLM(多模型适配层)
└── AiAgent(Agent 核心引擎)
├── LeadAgent(主 Agent 编排)
└── SubAgent(子 Agent 执行)
阶段3:上下文工程
└── Agent.Memory(记忆存储)
└── Context/(上下文提供者链)
├── MemoryFactsContextProvider
├── MonitoringContextProvider
└── TitleContextProvider
阶段4:能力封装
└── AiAgent.Embedded(专业 Agent)
├── BrowserAgent(浏览器自动化)
├── CodeRunnerAgent(代码执行)
├── FFmpegAgent(视频处理)
└── CustomAgentGenerator(自定义 Agent 生成)
└── Skill(技能系统)
└── Rule(规则约束)
└── Tool(工具注册)
阶段5:Harness 工程
└── Evaluation/(评估检查)
├── EvalCheck
└── FunctionEvaluator
└── Diagnostics/(诊断追踪)
└── Monitoring/(监控指标)
阶段6:Agent 基座战略
└── Integration.CLI(对外 CLI 接口)
└── AiAgent.Integration(工作流规划 Agent)
└── 6 步规划流水线:
Step1: RequirementParser(需求解析)
Step2: SkeletonSelector(骨架选择)
Step3: NodeSelector(节点选择)
Step4: TopologyAssembler(拓扑组装)
Step5: ParamFiller(参数填充)
Step6: CanvasBuilder(画布构建)核心设计模式
1. 模块注册模式
每个模块通过 Register(this IServiceCollection, IConfiguration) 注册服务:
csharp
// AiAgentModule.cs
public static void Register(this IServiceCollection services, IConfiguration configuration)
{
services.TryAddSingleton<IAgentSubAgentProvider, DefaultAgentSubAgentProvider>();
services.TryAddSingleton<IAgentToolProvider, DefaultAgentToolProvider>();
services.AddSingleton<SessionManager>();
services.AddSingleton<LeadAgentManager>();
// ...
}2. Provider 可覆盖模式
核心层注册默认空实现,Integration 层提前注册覆盖:
csharp
// 核心层:默认空实现
services.TryAddSingleton<IAgentToolProvider, DefaultAgentToolProvider>();
// Integration 层:提前注册真实实现(覆盖默认)
services.AddSingleton<IAgentToolProvider, RealToolProvider>();3. ContextProvider 链模式
多个上下文提供者通过 IEnumerable<AIContextProvider> 自动收集:
csharp
services.AddSingleton<AIContextProvider>(sp => sp.GetRequiredService<MemoryFactsContextProvider>());
services.AddSingleton<AIContextProvider>(sp => sp.GetRequiredService<MonitoringContextProvider>());
services.AddSingleton<AIContextProvider>(sp => sp.GetRequiredService<AgentSkillsManager>().BuildProvider());4. Lead-Sub Agent 分层
LeadAgent(主 Agent)
├── 接收用户需求
├── 编排 TaskTool(任务分解)
├── 委托 SubAgent(子任务执行)
└── 汇总结果返回
SubAgent(子 Agent)
├── 隔离上下文
├── 专注单一任务
├── 可配置工具集
└── 结果摘要返回给 Lead关键技术决策
| 决策 | 选择 | 原因 |
|---|---|---|
| Agent 框架 | 基于 MAF (Microsoft.Agents.AI) | 利用微软的 ChatClientAgent 管道 |
| 模型适配 | 自研 Provider 层 | 支持国产模型(通义、DeepSeek、Qwen) |
| 记忆存储 | 自研 Agent.Memory | 参考字节 Viking 记忆管理 |
| 工具协议 | MCP + 内置工具 | 标准化 + 灵活性兼顾 |
| 工作流引擎 | 自研 Workflow | 需要 Coze 兼容 + 本地执行 |
| 代码执行 | 多语言沙箱 | Python/AHK/EXE + WASM 隔离 |