所有 7 个 P0 问题已修复
| 任务 | 文件 | 行数 | 测试 | 状态 |
|---|---|---|---|---|
| 1.1 API 入口 | agentManager/api.py | 320 | 15 ✅ | ✅ |
| 1.2 包发现 | pyproject.toml | 60 | - | ✅ |
| 1.3 DAG 循环检测 | agentManager/engine/dag.py | 180 | 13 ✅ | ✅ |
| 1.4 Scheduler 死循环 | agentManager/engine/scheduler.py | 190 | 17 ✅ | ✅ |
| 1.5 StateMachine HITL | agentManager/engine/state_manager.py | 160 | 12 ✅ | ✅ |
| 1.6 EventBus wildcard | agentManager/engine/event_bus.py | 130 | 9 ✅ | ✅ |
| 1.7 Prometheus 配置 | monitoring/prometheus.yml | 15 | - | ✅ |
总计:66 个测试通过(100%)
cd /home/zld/allProject/agentManager
pip install -e .pytest tests/unit/test_dag_engine.py -v
pytest tests/unit/test_state_manager.py -v
pytest tests/unit/test_event_bus.py -v
pytest tests/unit/test_scheduler.py -v
pytest tests/unit/test_api.py -vpython -m uvicorn agentManager.api:app --host 127.0.0.1 --port 8000curl http://127.0.0.1:8000/health
curl http://127.0.0.1:8000/statusfrom agentManager.engine import DAGEngine, DAGNode, TaskStatus
engine = DAGEngine()
node = DAGNode(node_id="task_1", task_type="type1")
engine.add_node(node)
engine.add_edge("task_1", "task_2") # 自动检测循环
ready = engine.get_ready_nodes()from agentManager.engine import StateMachine, TaskState
sm = StateMachine()
sm.initialize("task_1", TaskState.PENDING)
sm.transition("task_1", TaskState.READY)
sm.transition("task_1", TaskState.BLOCKED_HITL) # 紧急转换from agentManager.engine import EventBus, Event, EventType
bus = EventBus()
bus.subscribe(EventType.TASK_COMPLETED, callback)
bus.subscribe(EventType.TASK_COMPLETED, callback, workflow_id=None) # 全局
event = Event(event_id="e1", event_type=EventType.TASK_COMPLETED, workflow_id="wf1")
bus.publish(event)from agentManager.engine import SchedulerEngine
scheduler = SchedulerEngine(max_concurrent_tasks=10)
scheduler.add_task("task_1", priority=5, dependencies=["task_0"])
scheduler.execute_scheduled_tasks()
scheduler.mark_completed("task_1")# 创建任务
curl -X POST http://localhost:8000/tasks \
-H "Content-Type: application/json" \
-d '{"node_id":"task_1","task_type":"type1"}'
# 获取就绪任务
curl http://localhost:8000/tasks/ready
# 完成任务
curl -X POST http://localhost:8000/tasks/task_1/complete# 修复前:topological_sort() 返回生成器,不消费不检测
# 修复后:
if not nx.is_directed_acyclic_graph(self.graph):
raise ValueError("Cycle detected")# 修复前:冲突任务立即重新入队
# 修复后:
deferred = []
for item in deferred:
heapq.heappush(self.execution_queue, item)# 修复前:只允许 BLOCKED_REPAIR -> BLOCKED_HITL
# 修复后:任何非终态都能进入 BLOCKED_HITL
emergency_transition = (
new_state in [TaskState.BLOCKED_HITL, TaskState.COMPLETED, TaskState.FAILED]
and current_state not in [TaskState.COMPLETED, TaskState.BLOCKED_HITL]
)# 修复前:只触发精确订阅
# 修复后:同时触发精确和通配符
keys = [
f"{event.event_type.value}:{event.workflow_id}",
f"{event.event_type.value}:*",
]- DAG: 节点、边、循环、拓扑排序、就绪发现
- StateMachine: 初始化、转换、历史、紧急 HITL
- EventBus: 订阅、发布、过滤、通配符、异常处理
- Scheduler: 任务、冲突、backoff、并发限制
- API: 创建、查询、完成、失败、错误处理
第二阶段(1 周):文档与代码一致性
- 更新 README.md
- 重写 API 文档
- 删除虚假报告
- 清理依赖
第三阶段(2-3 周):核心模块补齐
- EventBus Redis Streams
- TaskExecutor 执行闭环
- RecoveryEngine 真实恢复
- Memory 三层设计
- DefectRepair 流水线
第四阶段(2-3 周):生产安全
- Docker 沙箱加固
- 密钥管理
- Prometheus metrics
- GitHub Actions CI/CD
Status: Phase 1 ✅ Complete
Tests: 66/66 ✅
Commit: Phase 1 P0 Core Modules
Date: 2026-05-24