# DIAF **Repository Path**: dunimd/diaf ## Basic Information - **Project Name**: DIAF - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-01 - **Last Updated**: 2026-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# DIAF (Dunimd Intelligent Agent Framework) [English](README.md) | 简体中文 BiliBili Gitee GitHub PyPI **DIAF (Dunimd Intelligent Agent Framework)** — 一个用于构建企业级 AI Agent 应用程序的综合 Python 框架。特性包括模块化架构、智能路由、多级内存系统以及与主流 LLM 框架的无缝集成。

🏗️ 核心架构

### 📐 模块化设计 DIAF 采用高度模块化的架构,包含 17 个核心模块,支持按需组合和无缝扩展:
| 模块 | 描述 | |:--------|:-------------| | **config** | 配置管理,支持环境变量 | | **core** | 基础组件抽象、生命周期管理和错误处理 | | **agent** | Agent 工厂、协作系统和专用 Agent | | **tool** | 工具注册表、执行和沙箱操作 | | **memory** | 多级内存系统(情景、语义、程序、工作) | | **planning** | 任务规划引擎,目标分解 | | **execution** | 工作流构建器、流程控制器和任务调度 | | **routing** | 智能路由,性能分析和 ML 预测 | | **orchestration** | 统一编排器,用于复杂多 Agent 工作流 | | **session** | 有状态会话管理,多种存储后端 | | **merging** | 多结果合并,置信度评分 | | **integration** | 集成框架,组合所有组件 | | **model** | 模型连接器和各种 LLM 后端的提供者 | | **monitoring** | 指标收集、健康检查和告警 | | **adapters** | LangChain、AutoGen、CrewAI 和 OpenAI Agents 集成 | | **dxml** | DIAF XML 格式解析器、生成器和验证器 |
### 🚀 核心特性 #### 🤖 统一的 Agent 抽象 - 跨不同 LLM 提供者的一致接口 - 基于模板的 Agent 创建,支持可配置能力 - 内置推理、规划、工具使用和内存支持 - 多 Agent 协作,团队管理 #### 🧠 多级内存系统 - **工作内存** - 短期上下文,用于主动推理 - **情景记忆** - 事件序列和经验存储 - **语义记忆** - 知识和概念存储 - **程序记忆** - 技能和方法存储 - 自适应内存整合策略 #### ⚡ 智能路由 - 性能分析,延迟跟踪 - Token 使用成本优化 - 基于 ML 的成功率和延迟预测 - 多种负载均衡策略(轮询、最少连接、自适应) #### 🔧 工具管理 - 完整的工具注册表,分类管理 - 沙箱执行环境 - 熔断器模式,容错处理 - 自动工具选择和验证 #### 📊 工作流编排 - 可视化工作流构建器,依赖管理 - 并行和顺序任务执行 - 工作流监控和状态持久化 - 错误处理,可配置重试策略 #### � 框架集成 - LangChain、AutoGen、CrewAI 原生适配器 - OpenAI Agents SDK 支持 - 统一适配器接口,可扩展 - 跨框架工具和消息转换 #### 📈 企业可观测性 - 所有组件的指标收集 - 健康检查和依赖监控 - 告警管理,支持严重级别 - 性能分析和基准测试

🛠️ 安装与环境

### 前置要求 - **Python**: 3.8+ - **pip**: 最新版本 - **平台**: Linux、macOS、Windows ### 快速安装 安装 DIAF Python 包: ```bash pip install DIAF ``` 或添加到 `requirements.txt`: ``` DIAF==0.0.1 ``` ### 依赖项 DIAF 需要 Python 3.7 或更高版本。核心依赖包括:
| 📦 包 | 📜 版本 | 📝 描述 | |:-----------|:-----------|:---------------| | pydantic | >=2.0.0 | 数据验证和设置 | | numpy | >=1.24.0 | 数值计算 | | scikit-learn | >=1.3.0 | 机器学习工具 |
可选依赖(使用 `pip install DIAF[all]` 安装):
| 📦 包 | 📜 版本 | 📝 描述 | |:-----------|:-----------|:---------------| | faiss-cpu | >=1.7.0 | 向量相似度搜索 | | faiss-gpu | >=1.7.0 | GPU 加速向量搜索 | | redis | >=4.5.0 | 会话存储后端 | | lz4 | >=4.3.0 | 快速压缩 |

⚡ 快速开始

### 核心 API 使用 ```python import asyncio from DIAF import DIAFConfig, DIAFToolRegistry, DIAFMemoryManager async def main(): # 初始化配置 config = DIAFConfig( framework_name="MyAgentApp", max_concurrent_agents=10, ) # 初始化工具注册表 tool_registry = DIAFToolRegistry() # 初始化内存管理器 memory_manager = DIAFMemoryManager() print("DIAF 初始化成功!") if __name__ == "__main__": asyncio.run(main()) ``` ### 创建 Agent ```python from DIAF import ( DIAFAgentConfig, DIAFAgentFactory, DIAFAgentCapability, ) from DIAF.memory import DIAFMemoryType async def create_agent(): # 配置 Agent config = DIAFAgentConfig( agent_id="my_agent", agent_name="我的 AI Agent", agent_type="general", capabilities={ DIAFAgentCapability.REASONING, DIAFAgentCapability.PLANNING, DIAFAgentCapability.TOOL_USE, }, memory_types={ DIAFMemoryType.EPISODIC, DIAFMemoryType.SEMANTIC, }, ) # 创建 Agent 工厂 factory = DIAFAgentFactory() agent = await factory.create_agent(config) return agent ``` ### 构建工作流 ```python from DIAF.execution import ( DIAFFlowController, DIAFWorkflowBuilder, DIAFTaskType, DIAFPriority, DIAFTaskDependencyType, ) async def create_workflow(): # 初始化流程控制器 flow_controller = DIAFFlowController() await flow_controller.initialize() # 创建工作流 builder = DIAFWorkflowBuilder() workflow_def = await builder.create_workflow( workflow_id="my_workflow", workflow_name="我的工作流", description="一个演示工作流", ) # 添加任务 await builder.add_task( task_id="task_1", task_name="第一个任务", task_type=DIAFTaskType.CHAT, agent_type="chat", parameters={"message": "你好!"}, priority=DIAFPriority.HIGH, ) await builder.add_task( task_id="task_2", task_name="第二个任务", task_type=DIAFTaskType.TASK, agent_type="task", parameters={"operation": "process"}, dependencies=["task_1"], dependency_type=DIAFTaskDependencyType.SEQUENTIAL, ) # 验证并提交 is_valid, errors = await builder.validate_workflow() if is_valid: await flow_controller.register_workflow(workflow_def) execution_id = await flow_controller.submit_workflow("my_workflow") print(f"工作流已提交:{execution_id}") ``` ### 多 Agent 协作 ```python from DIAF.agent import ( DIAFAgentCollaborationSystem, DIAFTeamConfig, DIAFTeamMemberConfig, DIAFAgentRole, DIAFCollaborationMode, ) async def create_team(): # 创建协作系统 collaboration = DIAFAgentCollaborationSystem() # 创建团队 team_config = DIAFTeamConfig( team_id="research_team", team_name="研究团队", collaboration_mode=DIAFCollaborationMode.HIERARCHICAL, ) team = await collaboration.create_team(team_config) # 添加团队成员 await collaboration.add_team_member( team.team_id, DIAFTeamMemberConfig( member_id="researcher_001", agent_role=DIAFAgentRole.RESEARCHER, ), ) return collaboration, team ``` ### 框架适配器 ```python from DIAF.adapters import DIAFAdapterRegistry, DIAFLangChainAdapter # 创建适配器注册表 registry = DIAFAdapterRegistry() # 注册 LangChain 适配器 registry.register_adapter_info(DIAFLangChainAdapter.get_adapter_info()) # 获取可用适配器 adapters = registry.list_adapters() print(f"可用适配器:{[a.name for a in adapters]}") ```

🔧 配置

### 配置示例 DIAF 可以通过 Python 代码、环境变量或配置文件进行配置: ```python from DIAF import DIAFConfig config = DIAFConfig( framework_name="MyApp", max_concurrent_agents=100, session_timeout_seconds=3600, ) ``` ### 配置来源 DIAF 支持多种配置来源,优先级从高到低: 1. 运行时参数(Python 代码) 2. 环境变量(以 `DIAF_` 为前缀) 3. 配置文件(YAML、TOML、JSON) 4. 默认值 ### 环境变量 ```bash export DIAF_FRAMEWORK_NAME="MyApp" export DIAF_MAX_CONCURRENT_AGENTS=100 export DIAF_SESSION_TIMEOUT=3600 export DIAF_LOG_LEVEL="INFO" ```

🧪 开发与测试

### 运行测试 ```bash # 安装开发依赖 pip install DIAF[dev] # 运行所有测试 pytest # 运行覆盖率报告 pytest --cov=DIAF --cov-report=html # 运行特定测试模块 pytest tests/test_config.py # 运行慢速测试 pytest -m slow ```

📚 文档

| � 文档 | 🔗 链接 | |:-----------------|:--------| | 架构概览 | [docs/architecture.md](docs/architecture.md) | | API 参考 | [docs/api/](docs/api/) | | 示例 | [examples/](examples/) |

📁 示例

| � 示例 | 📖 描述 | |:-----------|:---------------| | [workflow_example.py](examples/workflow_example.py) | 基本工作流创建和执行 | | [advanced_workflow_example.py](examples/advanced_workflow_example.py) | 高级工作流模式 | | [basic_example.py](examples/basic_example.py) | 核心 API 使用示例 | | [agent_collaboration_example.py](examples/agent_collaboration_example.py) | 多 Agent 协作 |

❓ 常见问题

**问:如何添加自定义 Agent?** 答:使用 DIAFAgentFactory 和自定义 DIAFAgentConfig,指定所需的能力。 **问:如何配置内存后端?** 答:在 DIAFConfig 中设置 `memory_config`,选择首选的存储后端。 **问:如何启用指标导出?** 答:在 DIAFConfig 中配置 `telemetry_config` 以启用指标收集。 **问:如何扩展自定义适配器?** 答:实现 DIAFAbstractAdapter 并使用 DIAFAdapterRegistry 注册。 **问:支持哪些 LLM 提供者?** 答:OpenAI、Anthropic、Google Gemini,以及通过自定义适配器支持的任何提供者。 **问:如何处理异步操作?** 答:DIAF 全面使用 asyncio,请始终使用 async/await 模式。 **问:DIAF 是否兼容 FastAPI/其他框架?** 答:是的,DIAF 组件可以与任何异步 Python 框架集成。

🌏 社区与引用

- 欢迎提交 Issues 和 PRs! - Gitee: https://gitee.com/dunimd/diaf.git
## 📄 许可证与开源协议 ### 🏛️ 项目许可证

Apache License 2.0

本项目使用 **Apache License 2.0** 开源协议,详见 [LICENSE](LICENSE) 文件。 ### 📋 依赖许可证
| 📦 包 | 📜 许可证 | |:-----------|:-----------| | pydantic | MIT | | numpy | BSD-3 | | scikit-learn | BSD-3 | | pytest | MIT | | pytest-asyncio | Apache 2.0 | | black | MIT | | mypy | MIT |