# Qualia **Repository Path**: lunarlanding/qualia ## Basic Information - **Project Name**: Qualia - **Description**: 面 向 企 业 级 的 下 一 代 AI Agent 基 础 设 施 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-01-30 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Qualia - 面向企业级 Java 的下一代 AI Agent 基础设施

Qualia Banner

License JDK Maven Concurrency Memory RAG

--- ## 📖 目录 - [项目概览](#-项目概览) - [核心技术支柱](#-核心技术支柱) - [对比优势](#-对比优势) - [核心架构](#-核心架构) - [快速开始](#-快速开始) - [核心代码示例](#-核心代码示例) - [推理路径演示](#-推理路径演示) - [模块索引](#-模块索引) - [路线图](#-路线图) --- ## 🎯 项目概览 **Qualia** 是一个专为 Java 开发者设计的生产级、高并发 AI Agent 框架。Qualia 为企业级 AI 部署提供了所需的**稳健性、类型安全和大规模扩展性**。 Qualia 解决了现实世界 Agent 面临的三个核心挑战: 1. **记忆衰减**: 通过多级记忆固化机制,防止 Agent 在长期任务中失去上下文。 2. **推理不可靠**: 严格的 JSON 强制执行循环确保 API 和工具执行的可预测性。 3. **性能瓶颈**: 异步后台工作线程处理耗时的 LLM 总结任务,保持主交互循环低延迟。 --- ## 🧠 核心技术支柱 ### 1. 🧬 多级自进化记忆 Qualia 通过分层架构模拟人类认知过程: * **L1: 感知缓冲区**: 使用 `CopyOnWriteArrayList` 实现的无锁滑动窗口消息池,用于实时交互。 * **L2: 认知固化**: 后台 LLM 任务监控 Token 限制并执行“语义压缩”(异步总结),将海量上下文压缩为高密度知识核。 * **L3: 长期归档**: 将向量化的摘要和事实归档到 **Milvus** 或 **InMemory** 存储中,用于跨会话的语义回溯。 ### 2. 🔄 高保真 ReAct 规划引擎 * **模式强制执行**: 内置健壮的解析器确保每一个“思考”和“行动”都符合严格的 JSON-Schema,减少幻觉导致的崩溃。 * **原子参数验证**: 工具全元数据支持,在执行前进行精确的类型检查和必填字段验证。 * **成本控制**: 可配置的迭代深度和 Token 监控,防止推理成本失控。 ### 3. 🔍 工业级 RAG 流水线 * **查询改写**: LLM 驱动的查询扩展,将模糊的用户问题转化为高召回率的向量搜索变体。 * **双协议重排序**: 原生集成 **DashScope qwen3-rerank**,支持 COMPATIBLE 和 NATIVE 双协议,实现毫秒级精度。 * **逻辑感知切分**: 提供 `MarkdownHeadingTextSplitter` 等算法套件,在分块过程中维护文档语义完整性。 --- ## 📊 对比优势 | 特性 | Qualia (agent4j) | LangChain4j | Python 框架 | | :--- | :--- | :--- | :--- | | **并发处理** | **无锁 / 异步优先** | 多为同步 | 受 GIL 限制 | | **记忆管理** | **3级自适应流水线** | 简单历史记录 | 基础列表 | | **RAG 能力** | **查询改写 + 重排序** | 基础向量搜索 | 较为破碎 | | **生产准备** | **原生 Java 性能** | 较为厚重 | 环境依赖复杂 | --- ## 🏗️ 核心架构 ```mermaid sequenceDiagram participant U as 用户 participant A as Qualia Agent participant M as 自适应记忆 participant V as 向量存储 participant L as LLM (Moark/Qwen) U->>A: 复杂任务输入 rect rgb(80, 76, 76) Note right of A: 知识检索 (RAG) A->>M: 触发混合检索 M->>V: 查询改写 & 向量搜索 V-->>M: 排序后的事实片段 end M-->>A: 注入上下文 (Profile + 摘要 + 事实) loop 思考循环 A->>L: 规划请求 (Thought/Action) L-->>A: 结构化 JSON 方案 alt 需要执行工具 A->>A: 参数检查 & 工具执行 A-->>A: 获取观察结果 end end Note over A, M: 异步固化器 A->>M: 提交对话片段 M-->>V: 更新摘要索引 A-->>U: 最终结构化决策 ``` --- ## 🚀 快速开始 ### 安装依赖 在你的 `pom.xml` 中添加 Qualia 依赖: ```xml cn.lunarlanding Qualia 1.0-SNAPSHOT ``` ### 环境配置 ```powershell # 配置 API Key (环境变量) $env:DASHSCOPE_API_KEY="sk-..." $env:MOARK_API_KEY="moark-..." ``` --- ## 💻 核心代码示例 ### 1. ChatModel 调用 (同步 & 流式) ```java ChatModel model = new DashscopeChatModel(System.getenv("DASHSCOPE_API_KEY")); // 同步调用 ChatResponse response = model.chat("你好,请介绍一下你自己。"); System.out.println(response.getChoices().get(0).getMessage().getContent()); // 流式调用 model.chatStream("写一首关于 Java 的诗", chunk -> { String content = chunk.getChoices().get(0).getMessage().getContent(); if (content != null) System.out.print(content); }); ``` ### 2. 自定义工具与 ReAct Agent ```java // 定义工具 public class MyTool extends FunctionTool { public MyTool() { super("my_tool", "工具描述", new Parameter[]{ new Parameter("param1", "参数描述", "string", true) }); } @Override public String execute(Map args) { return "执行结果"; } } // 初始化 Agent 并集成工具 ReActAgent agent = new ReActAgent(model, memory); agent.addTool(new MyTool()); String result = agent.call("使用工具完成任务"); ``` ### 3. RAG 流水线 ```java // 1. 文档解析与切分 Document doc = new MarkdownDocumentParser().parse(inputStream); List chunks = new MarkdownHeadingTextSplitter().split(doc.getText()); // 2. 向量存储 VectorStore store = new InMemoryVectorStore(embeddingModel); store.add(chunks); // 3. 检索 Retriever retriever = new QueryRewritingRetriever(store, embeddingModel, model); List results = retriever.retrieve("用户问题"); ``` --- ## 🧩 推理路径演示 Qualia Agent 遵循严格的 **ReAct (Reasoning and Acting)** 范式。以下是一个真实的任务处理轨迹示例: **用户输入:** "帮我计算一下 Nvidia 2024 Q3 的营收增长率,并与去年同期进行对比。" **1. 第一次迭代 (思考 + 行动):** ```json { "type": "action", "thought": "用户想要了解 Nvidia 2024 Q3 的营收增长率并进行同比对比。我需要先搜索 2024 Q3 的营收数据以及 2023 Q3 的营收数据。", "action": { "name": "SearchTool", "arguments": { "query": "Nvidia 2024 Q3 revenue vs 2023 Q3 revenue" } } } ``` **系统观察 (Observation):** > 搜索结果:Nvidia 2024 Q3 营收为 351 亿美元,去年同期(2023 Q3)为 181 亿美元。 **2. 第二次迭代 (思考 + 行动):** ```json { "type": "action", "thought": "我已经获得了两年的营收数据。现在我需要使用计算器来计算增长率:(351 - 181) / 181 * 100%。", "action": { "name": "CalculatorTool", "arguments": { "operation": "subtract", "num1": 351, "num2": 181 } } } ``` **系统观察 (Observation):** > 计算结果:170.00 **3. 第三次迭代 (思考 + 最终答案):** ```json { "type": "answer", "thought": "营收差额为 170 亿美元。接下来计算增长百分比:170 / 181 ≈ 93.9%。现在我可以回答用户了。", "final_answer": "Nvidia 2024 Q3 的营收为 351 亿美元,较去年同期的 181 亿美元增长了约 93.9%。这一强劲增长主要得益于数据中心业务对 AI 芯片的旺盛需求。" } ``` --- ## 📂 模块索引 | 模块 | 职责 | 核心类 | | :--- | :--- | :--- | | `agent` | 推理与规划 | `ReActAgent`, `Agent` | | `llm` | 模型适配器 | `MoarkChatModel`, `DashscopeChatModel` | | `memory` | 生命周期管理 | `ConversationSummaryMemory`, `ShortTermMemory` | | `retriever` | 检索策略优化 | `QueryRewritingRetriever`, `RerankModel` | | `splitter` | 数据分段 | `MarkdownHeadingTextSplitter`, `TokenTextSplitter` | | `store` | 持久化层 | `MilvusVectorStore`, `InMemoryVectorStore` | | `tool` | 工具定义 | `FunctionTool`, `Parameter` | --- ## 🛣️ 路线图 - [ ] **Spring Boot Starter**: 实现自动装配。 - [ ] **Agent 可视化调试面板**: 实时展示 ReAct 思考链路。 - [ ] **分布式记忆 (Redis)**: 支持跨节点记忆同步。 - [ ] **多智能体编排 (Orchestrator)**: 实现 Swarm 风格的协作逻辑。 --- ## 📄 开源协议 Qualia 基于 **MIT License** 开源。