简要软件需求(SRS)¶
本文档列出了 AgentHeaven 项目的高层次需求。
1. 功能性需求¶
ID |
需求 |
描述 |
|---|---|---|
FR-01 |
环境管理 |
系统应允许用户创建、激活、停用和删除隔离的项目环境。 |
FR-02 |
知识管理 |
系统应允许用户以统一的逻辑格式存储、检索、查找、编辑、删除和合并知识工件,该格式独立于物理存储或检索方法。 |
FR-03 |
统一LLM接口 |
系统应提供与不同LLM提供者交互的统一接口。 |
FR-04 |
统一键值存储接口 |
系统应提供与不同键值存储交互的统一接口。 |
FR-05 |
统一数据库接口 |
系统应提供与不同数据库交互的统一接口。 |
FR-06 |
工具管理 |
系统应提供统一的接口来序列化和与不同工具或原生Python函数交互。 |
FR-07 |
缓存/记忆 |
系统应提供一种方式,让用户监控任何正在运行的系统的输入、输出和中间产物,并存储它们以供后续分析或重放。 |
FR-08 |
检索引擎 |
系统应提供一系列内置的检索方法,包括字符串匹配、分面搜索、向量搜索、图遍历,并允许用户定义自己的检索方法。 |
FR-09 |
多语言提示引擎 |
系统应提供一种方式,让用户定义和管理提示词,这些提示词可用于生成LLM输入或知识序列化,支持多种语言。 |
FR-10 |
MCP兼容性 |
系统应与多组件协议(MCP)兼容,以便它可以在更大的系统中作为组件使用,例如智能体框架。 |
FR-11 |
数据库原生支持 |
系统应提供一系列专门设计用于与数据库交互的内置工具:包括数据库上下文工程和NL2SQL工作流。 |
FR-12 |
图形用户界面 |
系统应提供图形用户界面(GUI),使用户能够与知识管理系统交互。它应该易于非开发人员使用。它应包含一个用户系统,用于区分不同用户生成的知识。 |
FR-13 |
命令行界面 |
系统应提供命令行界面(CLI),使用户能够与知识管理、LLM使用、配置等进行交互。 |
FR-14 |
(可选)知识蒸馏 |
系统应提供一种方式,让用户在缓存/记忆数据上微调LLM。它应具有跨平台兼容性(LLama-Facotry/Unsloth/MLX),并可扩展到NPU。 |
FR-15 |
(可选)基础智能体 |
系统应提供一系列内置的智能体编排,如基础工具使用智能体、基于自然语言的工具使用智能体(用于非函数调用LLM)、ReAct智能体、CodeAct智能体。 |
FR-16 |
(可选)测试时扩展 |
系统应为LLM提供有用的测试时扩展(TTS)。 |
FR-17 |
(可选)分布式系统 |
系统应提供一种方式,让用户在分布式环境中运行知识管理系统,实现跨平台知识交换和检索。 |
FR-18 |
(可选)认证 |
系统应提供一种方式,让用户对知识管理系统进行身份验证和授权访问。 |
2. 非功能性需求¶
ID |
需求 |
描述 |
|---|---|---|
NFR-01 |
可用性 |
系统应易于开发者和非开发者使用。 |
NFR-02 |
可扩展性 |
系统架构应模块化,以便添加新的LLM提供者、工具、数据库方言、智能体、检索方法、重排序器和知识库后端。 |
NFR-03 |
NL2SQL准确性 |
系统应能够快速开发具有SOTA准确性的NL2SQL应用程序。 |