s10
ReACT 报告
分析层多策略检索驱动的预测报告生成
ReACT 推理循环 + InsightForge/PanoramaSearch 多策略检索工具链报告引擎先规划大纲,再逐章节进入「思考→工具调用→反思→写作」循环,通过多种检索策略从丰富后的图谱中提取洞察
多策略检索驱动的预测报告生成
ReACT 推理循环 + InsightForge/PanoramaSearch 多策略检索工具链报告引擎先规划大纲,再逐章节进入「思考→工具调用→反思→写作」循环,通过多种检索策略从丰富后的图谱中提取洞察
仿真完成后,知识图谱中同时包含原始文档知识和仿真产生的新知识。Report Agent 需要智能地从这个丰富图谱中检索信息,组织成结构化的预测报告。它采用 ReACT 推理循环(思考→工具调用→反思→写作),通过多种检索策略获取不同深度的洞察。
ReACT 循环:每个章节经历「思考→工具→反思→写作」的多轮推理
class ReportAgent:
def _define_tools(self):
self.tools = {
"InsightForge": "深度混合搜索:分解查询为子问题,逐个检索后聚合",
"PanoramaSearch": "全景搜索:包含过期/失效的边,获取历史视角",
"QuickSearch": "快速搜索:简单直接的图谱检索",
"InterviewAgents": "智能体采访:选择相关Agent进行访谈",
}
def _generate_section_react(self, section_title, ...):
for iteration in range(max_tool_calls):
# 1. 思考:LLM 决定需要什么信息
thought = llm.chat([...messages, "你需要什么信息?"])
# 2. 工具调用:执行检索
if has_tool_call(thought):
tool_result = execute_tool(thought)
messages.append(tool_result)
# 3. 反思:评估信息是否充分
if has_final_answer(thought):
return extract_content(thought)
# 4. 写作:生成章节内容InsightForge:最强大的检索策略,LLM 分解查询后多路检索聚合
class ZepToolsService:
def insight_forge(self, graph_id, query):
"""深度混合搜索"""
# 1. LLM 将复杂查询分解为 3-5 个子问题
sub_questions = llm.chat_json([{
"content": f"将以下查询分解为子问题: {query}"
}])
# 2. 对每个子问题执行 Zep 图谱搜索
all_results = []
for sub_q in sub_questions:
results = self.search_graph(graph_id, sub_q)
all_results.extend(results)
# 3. 去重 + 本地搜索补充
all_results = deduplicate(all_results)
local_results = self._local_search(graph_id, query)
all_results.extend(local_results)
# 4. 返回聚合结果
return InsightForgeResult(
query=query, sub_questions=sub_questions,
results=all_results)