# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17
# 来源：[ARCHITECTURE.md、SKILL.md、core/、bach_api.py]

BACH 架构（个人代理操作系统）
======================================

定义
BACH 是一个用于编排 AI 模型的分层系统。
它充当基础设施（计算）和应用程序之间的“神经系统”。

层模型
----------------

0。核心层（core/，bach_api.py）
   基于注册表的自动发现：从 hub/ 自动加载所有处理程序
   应用程序容器：具有延迟初始化数据库+注册表的轻量级 DI
   库 API：无需 CLI 的编程访问 (bach_api.py)
   基本类型：Result、ParsedArgs、OpDef - 统一合约

1。编排层（bach.py、合作伙伴系统、无头 API）
   协调多个法学硕士合作（Claude、Gemini、Ollama）。
   通过消息系统管理任务、角色和委派。
   REST API：用于编程访问的端口 8001 (headless.py)

2。认知记忆层（memory_*，整合引擎）
   5 种记忆类型（工作记忆、情景记忆、语义记忆、程序记忆、联想记忆）。
   主动巩固（衰减、增强、夜间压缩）。

3。逻辑和技能层（中心/、技能/、层次结构 JSON）
   60 多个自动发现的处理程序 (hub/) 和动态技能层次结构。
   技能委员会 (GUI) 控制专家向代理的分配。
   队列处理器：hub/_services/connector/ 用于异步处理

4.执行层（工具/）
   290 多个用于文件系统、控制、分析等的专用 Python 脚本。
   用于 AI 兼容性的标准化接口（c_ 前缀）。

5.数据和持久性（bach.db、数据/日志/）
   SQLite 基础，具有 210 多个表（集中数据存储）。
   跟踪令牌、会话、成功和目录真相。
   日志合并到 data/logs/ （system/logs/ 已弃用）

项目结构
---------------

system/
├── bach.py ........................ CLI 中心（协调器）
├── bach_api.py ........ 库API（编程访问）
├── bach_legacy.py........................备份（注册表重构之前）
├── 核心/........................基础层
│ ├── base.py ................结果、ParsedArgs、OpDef
│ ├──registry.py ............自动发现+命令路由
│ ├── app.py ........................ 应用容器（DI）
│ ├── db.py ........................ 数据库包装器
│ ├──adapter.py ...... 旧版桥接器
│ └── aliases.py .............. 命令别名（mem -> 内存）
├── 数据/
│ ├── bach.db ................ SQLite (210+表) - “内存”
│ └── 日志/ ...................... 综合日志（仅此）
├── 分贝/
│ └── schema.sql ...... 单一事实来源 (DDL)
├── hub/ ........................处理模块（自动发现）
│ ├── bach_paths.py.........路径管理（治理）
│ └── _services/ ........ 后台服务
│ ├── 连接器/ ......... 队列处理器（异步）
│ └── 文档/.................报告工作流程
├── 工具/ ...................... Python 脚本（290+ 工具）
├── docs/help/ ........................ 帮助系统 (.txt)
├── 特工/............特工简介（角色）
├── 合作伙伴/.........LLM配置（综合）
├── docs/ ................................文档和概念
├── gui/ ......................网络仪表板（FastAPI）
│ └── api/ ................... REST API
│ ├── headless.py ........ 端口8001（纯JSON API）
│ └── messages_api.py .... 消息路由器
└── user/ ............用户数据和导出

架构图（Registry v2.0）
------------------------------------

┌──────────────────────────────────────────────────────────────────┐
│ 接入层 │
├────────────────────┬──────────────────────┬────────────────────────┤
│ CLI (bach.py) │ 库 (bach_api) │ REST (headless.py) │
│ sys.argv 路由 │ Direct 函数 │ 端口 8001 JSON API │
└────────────────────┴──────────────────────┴────────────────────────┘
                              ↓
┌──────────────────────────────────────────────────────────────────┐
│ 核心层（核心/） │
├────────────────────┬──────────────────────┬────────────────────────┤
│ 应用程序容器 │ HandlerRegistry │ 数据库 (db.py) │
│ DI + 延迟初始化 │ 自动发现 │ 架构 + 迁移 │
└────────────────────┴──────────────────────┴────────────────────────┘
                              ↓
┌──────────────────────────────────────────────────────────────────┐
│ 处理层（集线器/） │
│ 60+ BaseHandler 子类 - 自动注册 │
├────────────────────┬──────────────────────┬────────────────────────┤
│ 任务.py │ 内存.py │ 伙伴.py │
│ 税务.py │ 备份.py │ 课程.py │
│ ... │ ... │ ... │
└────────────────────┴──────────────────────┴────────────────────────┘
                              ↓
┌──────────────────────────────────────────────────────────────────┐
│ 服务层 (hub/_services/) │
├────────────────────┬──────────────────────┬────────────────────────┤
│ 连接器/ │ 文档/ │ 守护程序/ │
│ 队列处理器 │ 报告工作流程 │ 后台任务 │
└────────────────────┴──────────────────────┴────────────────────────┘
                              ↓
┌──────────────────────────────────────────────────────────────────┐
│ 执行层（工具/） │
│ 290+ 个具有标准化 c_ 接口的 Python 脚本 │
└──────────────────────────────────────────────────────────────────┘
                              ↓
┌──────────────────────────────────────────────────────────────────┐
│ 持久层 │
├────────────────────┬──────────────────────┬────────────────────────┤
│ bach.db │ 数据/日志/ │ 用户/ │
│ 210+ 个表格 │ 综合日志 │ 导出和报告 │
└────────────────────┴────────────── ──────┴──────────────────────┘

核心概念
-------------

* 基于注册表：自动发现而不是硬编码处理程序映射。
  新处理程序只需要 hub/ 中的一个文件（无需注册）。

* 双重访问：CLI（python bach.py​​ 任务列表）和库 API（bach_api.task.list()）。
  两者都使用相同的处理程序 + DB - 零开销。

* 多合作伙伴：不是一个代理，而是一个具有专门角色的网络。

* 认知记忆：信息不仅被存储，而且还被存储。
  积极加权和“消化”（整合）。

* 便携式和本地：整个系统封装在一个文件夹中，
  无需云即可工作（例如使用 Ollama）。

* 自我修复：自动更正路径和注册表项。

* HEADLESS API：端口 8001 上的 REST 接口用于外部集成
  （与 GUI 服务器端口 8000 分开）。

另请参见
----------
docs/help/bach_info.txt 什么是 BACH？
docs/help/memory.txt 内存系统
docs/help/partner.txt AI 合作
wiki/was_ist_bach.txt 详细概要
