# 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 采用高度模块化的架构,包含 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** 开源协议,详见 [LICENSE](LICENSE) 文件。
### 📋 依赖许可证
| 📦 包 | 📜 许可证 |
|:-----------|:-----------|
| pydantic | MIT |
| numpy | BSD-3 |
| scikit-learn | BSD-3 |
| pytest | MIT |
| pytest-asyncio | Apache 2.0 |
| black | MIT |
| mypy | MIT |