项目结构

项目结构

Sirchmunk 源代码组织和架构层次概览。

仓库布局

sirchmunk/
├── src/
│   ├── sirchmunk/              # 核心 Python 包
│   │   ├── agentic/            # ReAct 智能体、工具、提示词
│   │   ├── api/                # FastAPI REST 端点
│   │   │   └── components/     # 历史、监控、设置存储
│   │   ├── cli/                # CLI 入口和 Web 启动器
│   │   ├── insight/            # 文本洞察提取
│   │   ├── learnings/          # 证据处理、知识库
│   │   ├── llm/                # LLM 接口(OpenAI 兼容)
│   │   ├── retrieve/           # 无索引检索引擎
│   │   ├── scan/               # 目录和文件扫描器
│   │   ├── schema/             # 数据模型(知识、上下文等)
│   │   ├── storage/            # DuckDB + Parquet 持久化
│   │   ├── utils/              # 工具(嵌入、分词器等)
│   │   ├── search.py           # 主搜索编排器
│   │   └── base.py             # 基类和抽象
│   └── sirchmunk_mcp/          # MCP 服务器包
│       ├── server.py           # MCP 服务器实现
│       ├── service.py          # 搜索服务层
│       └── tools.py            # MCP 工具定义
├── web/                        # Next.js 14 前端
│   ├── app/                    # 页面(首页、历史、知识、监控、设置)
│   ├── components/             # React 组件
│   ├── hooks/                  # 自定义 React hooks
│   └── lib/                    # 工具库(API、i18n、主题)
├── config/                     # 配置模板
├── scripts/                    # 辅助脚本
└── requirements/               # 按功能分类的依赖文件

架构层次

Sirchmunk 遵循严格的关注点分离模式,分为四个独立层次:

集成层

暴露 Sirchmunk 智能的外部接口:

  • MCP 服务器 (sirchmunk_mcp/) — AI 到 AI 通信
  • REST API (api/) — 编程式 HTTP 访问
  • WebSocket — 实时流式聊天
  • CLI (cli/) — 命令行界面
  • Web UI (web/) — 基于浏览器的界面

编排层

搜索管线协调器:

  • AgenticSearch (search.py) — 多阶段搜索编排器
  • SearchContext (schema/search_context.py) — 预算、状态和审计管理

智能层

证据提取和知识合成:

  • EvidenceProcessor (learnings/evidence_processor.py) — 蒙特卡洛采样
  • KnowledgeBase (learnings/knowledge_base.py) — 知识簇管理
  • ReActAgent (agentic/react_agent.py) — 自主探索
  • OpenAIChat (llm/openai_chat.py) — 统一 LLM 接口

存储层

持久化和缓存:

  • DuckDB (storage/duckdb.py) — 内存分析数据库
  • KnowledgeStorage (storage/knowledge_storage.py) — 基于 Parquet 的知识簇持久化

核心组件

组件模块描述
AgenticSearchsearch.py支持 LLM 增强检索的搜索编排器
KnowledgeBaselearnings/knowledge_base.py将结果转化为结构化知识簇
EvidenceProcessorlearnings/evidence_processor.py蒙特卡洛重要性采样证据提取
GrepRetrieverretrieve/text_retriever.py高性能无索引文件搜索
DirScannerscan/dir_scanner.py目录结构分析
ReActAgentagentic/react_agent.py预算约束下的自主探索
OpenAIChatllm/openai_chat.py统一 LLM 接口(支持流式和使用量跟踪)
MonitorTrackerapi/components/monitor_tracker.py实时系统指标
docs