feat(deep-research): 强化任务链路可靠性并接入 agentfx 报告助手种子
功能说明:\n- 重构 Deep Research 调度与执行链,补齐 dispatcher、executor、live hub 与依赖注入入口,提升任务下发、执行、回调的稳定性\n- 增强运行时持久化与恢复能力,接入业务映射、任务来源与任务事件日志模型,覆盖持久化与执行可靠性关键路径测试\n- 新增 agentfx 报告助手 seed 与任务报告导入脚本配置,支持离线环境快速初始化与任务流模板回填\n- 完善 deep-research 与 thread_runs 路由参数编排,兼容不同业务映射与运行入口的前后端联动\n- 补充前端 agentfx deep-link 解析,保证 deep-research 场景下的登录跳转与任务上下文一致
This commit is contained in:
1 parent
438772f0b7
commit
5c75e1af16
36 files changed
+3163
-312
No files matched your search
@@ -42,6 +42,8 @@ async def test_report_is_persisted_before_job_is_marked_completed():
|
||||
"drs_1",
|
||||
"worker_1",
|
||||
DeepResearchResult(report_markdown="# 报告", source_ids=["src_1"]),
|
||||
user_id="user_1",
|
||||
query="课题",
|
||||
)
|
||||
|
||||
assert sessions.report_updates[0]["report_markdown"] == "# 报告"
|
||||
@@ -62,6 +64,8 @@ async def test_report_projection_failure_never_marks_job_completed(monkeypatch):
|
||||
"drs_1",
|
||||
"worker_1",
|
||||
DeepResearchResult(report_markdown="# 报告"),
|
||||
user_id="user_1",
|
||||
query="课题",
|
||||
)
|
||||
|
||||
assert jobs.progress_calls == []
|
||||
@@ -70,3 +74,26 @@ async def test_report_projection_failure_never_marks_job_completed(monkeypatch):
|
||||
def test_terminal_timeline_events_are_valid_durable_event_types():
|
||||
assert DeepResearchEvent(type="job_completed", phase="done").type == "job_completed"
|
||||
assert DeepResearchEvent(type="job_failed", phase="done").type == "job_failed"
|
||||
|
||||
|
||||
def test_zero_source_fallback_is_a_valid_completed_report():
|
||||
from app.gateway.deep_research_job_executor import _terminal_report_validation_error
|
||||
from deerflow.agents.deep_research.runners.basic import _build_report_fallback
|
||||
|
||||
report = _build_report_fallback("没有命中的课题", "", 0)
|
||||
assert _terminal_report_validation_error(report) is None
|
||||
assert "没有命中的课题" in report
|
||||
|
||||
|
||||
def test_source_table_reload_does_not_become_session_error():
|
||||
from app.gateway.deep_research_job_executor import _session_diagnostic_error
|
||||
|
||||
assert _session_diagnostic_error(
|
||||
[
|
||||
{
|
||||
"code": "client_materials_reloaded_before_write",
|
||||
"stage": "collecting",
|
||||
"detail": "写作前再次从素材表读到 15 条",
|
||||
}
|
||||
]
|
||||
) is None
|
||||
Reference in new issue
Block a user