乐于分享
好东西不私藏

一场三个AI组成的辩论赛,到底该如何分出胜负呢?

一场三个AI组成的辩论赛,到底该如何分出胜负呢?

上次折腾完电商询价智能体,我觉得LangGraph这玩意儿挺有意思。最近经常刷到辩论赛的视频,我就寻思:能不能用LangGraph搭一个辩论系统,让正方、反方、裁判三个AI自己吵起来?

说干就干。于是就有了这个——智能体的辩论赛。

一、先定个小目标

需求其实不复杂:

  • 正方Agent:立场“科技发展利大于弊”,能记住双方论点,每轮递进,不重复,会反驳
  • 反方Agent:立场“科技发展弊大于利”,同样有记忆、有规划
  • 裁判Agent:把控流程,记录论点,最终判定胜负

辩论流程:正方先发言 → 裁判小结 → 反方发言 → 裁判小结 → 正方发言……循环几轮后,裁判给出最终判决。

难点在于:

  • 每个Agent都要有记忆,不能车轱辘话来回说
  • 每个Agent要有规划,不能东一榔头西一棒子
  • 流程控制要清晰,裁判得知道什么时候该结束

我寻思,这不就是LangGraph的典型应用场景吗?有状态、多步骤、条件分支,完美匹配。

二、技术选型:为什么又是LangGraph?

LangGraph的优势在这种多角色、多轮对话的场景里特别明显:

  • 状态管理:用一个全局State对象,所有节点共享,谁都能读写
  • 条件边:根据裁判的判决结果决定是继续辩论还是结束
  • 可观测性:每个节点的输入输出都能打印出来,调试方便

我设计的状态图长这样:

正方发言 → 裁判小结 → 反方发言 → 裁判小结 → 正方发言 → ...                ↓           轮次够了?            ↙     ↘         结束     继续

裁判节点是核心,它既负责记录每轮小结,也负责判断是否达到最大轮次,最后给出胜负判定。

三、状态设计:一个字典管所有

先定义辩论过程中需要记住的所有信息:

from typing import Annotated, List, TypedDictfrom langgraph.graph.message import add_messagesfrom langchain_core.messages import HumanMessage, AIMessage, SystemMessageclassDebateState(TypedDict):    messages: Annotated[List, add_messages]   # 完整辩论记录    pro_arguments: List[str]                  # 正方论点列表    con_arguments: List[str]                  # 反方论点列表    round: int                                # 当前轮次    max_rounds: int                           # 最大轮次    verdict: str                              # 裁判最终判定 ("pro"/"con")
  • messages 用了LangGraph自带的add_messages归约器,会自动追加新消息,不用手动拼接
  • pro_arguments 和 con_arguments 分别记录双方已提出的论点,用于避免重复
  • round 和 max_rounds 控制流程
  • verdict 在裁判最终判定后设置,用来触发图结束

四、逐个节点拆解

节点1:正方Agent

核心任务:生成新论点,同时反驳反方。提示词里明确要求“避免重复”、“针对性反驳”。

defpro_node(state: DebateState):    prompt = f"""你是一个正方辩手,立场是“科技发展利大于弊”。当前辩论历史:{format_history(state.get('messages', []))}你已经提出的论点:{state.get('pro_arguments', [])}反方已经提出的论点:{state.get('con_arguments', [])}现在轮到你发言。请:1. 避免重复已提过的论点;2. 如果有反方论点,针对性地反驳;3. 提出新的论据支持己方立场;4. 发言要简洁有力,控制在100字以内。请直接输出你的发言内容,不要有任何前缀。"""    response = llm.invoke([HumanMessage(content=prompt)])    new_argument = response.content.strip()    pro_message = AIMessage(content=new_argument, name="正方")    new_messages = state.get('messages', []) + [pro_message]    new_pro_args = state.get('pro_arguments', []) + [new_argument]return {"messages": new_messages,"pro_arguments": new_pro_args,"round": state.get('round'1),   # 显式保留轮次    }

注意:每个消息我都加上了name属性,这样裁判就能分清是哪一方的发言。format_history函数会读取这个name来生成带角色的历史记录。

节点2:反方Agent

结构几乎一样,只是立场互换,这里不再重复贴代码。

节点3:裁判Agent

裁判有两个职责:

  1. 每轮结束时:增加轮次,引导下一轮
  2. 最后一轮结束时:总结双方观点,判定胜负
defjudge_node(state: DebateState):    current_round = state.get('round'1)    max_rounds = state.get('max_rounds'3)    messages = state.get('messages', [])if current_round >= max_rounds:# 生成最终判定        summary_prompt = f"""请根据以下辩论记录,总结双方核心观点,并判定哪一方获胜(弊大于利 或 利大于弊)。辩论记录:{format_history(messages)}请以JSON格式输出:{{"summary": "总结内容", "winner": "pro"}} 或 {{"summary": "总结内容", "winner": "con"}}"""        response = llm.invoke([            SystemMessage(content="你是一位公正的辩论裁判,负责总结并判定胜负。"),            HumanMessage(content=summary_prompt)        ])# 解析JSON(略)        winner = ...  # 解析出 "pro" 或 "con"        judge_msg = AIMessage(content=f"【裁判总结】...\n获胜方:{'正方'if winner=='pro'else'反方'}", name="裁判")return {"messages": messages + [judge_msg],"round": current_round + 1,"verdict": winner,        }else:        guide_msg = AIMessage(content=f"第{current_round}轮结束,请继续辩论。", name="裁判")return {"messages": messages + [guide_msg],"round": current_round + 1,        }

裁判的总结部分用了JSON输出,后面再解析,这样结构清晰,不容易出错。

五、图编排:把节点串起来

节点写好了,关键是让它们按正确的顺序执行,并且裁判能决定什么时候结束。

from langgraph.graph import StateGraph, ENDdefbuild_debate_graph():    workflow = StateGraph(DebateState)# 添加节点    workflow.add_node("pro", pro_node)    workflow.add_node("con", con_node)    workflow.add_node("judge", judge_node)# 设置入口:正方先发言    workflow.set_entry_point("pro")# 顺序边:正方 -> 裁判,反方 -> 裁判    workflow.add_edge("pro""judge")    workflow.add_edge("con""judge")# 条件边:裁判之后,根据是否有verdict决定是结束还是继续defnext_speaker(state: DebateState):if state.get("verdict"):return END# 根据轮次奇偶决定下一个发言方# round为偶数时,裁判刚处理完正方,应该轮到反方if state["round"] % 2 == 0:return"con"else:return"pro"    workflow.add_conditional_edges("judge", next_speaker, {"pro""pro","con""con",        END: END    })return workflow.compile()

这段代码的核心是next_speaker函数。它根据round的奇偶性决定下一个发言的是正方还是反方,同时一旦verdict出现,就走向END结束辩论。

六、跑起来看看

初始化状态:

initial_state = {"messages": [HumanMessage(content="辩论开始:科技发展利大于弊还是弊大于利?")],"pro_arguments": [],"con_arguments": [],"round"1,"max_rounds"3,"verdict""",}

执行:

app = build_debate_graph()final_state = app.invoke(initial_state)print(final_state["verdict"])

输出示例(经过3轮辩论后):

正方:科技发展极大提升了生产效率,这是利大于弊的铁证。裁判:第1轮结束,请继续辩论。反方:但环境污染和隐私问题日益严重,不能只看效率。裁判:第2轮结束,请继续辩论。正方:新能源技术正在解决环境问题,科技本身不是罪。裁判:第3轮结束,请继续辩论。【裁判总结】正方强调效率提升和技术自我修复能力,反方强调污染和隐私。综合来看,正方论据更充分。获胜方:正方

正常跑起来了,倒是这个谁赢谁输我也不知道AI判断的对不对,就先默认正方会赢吧!

七、踩坑实录:这些问题我全遇到了

这个项目虽小,但坑一个没少踩。记下来,下次长记性。

坑1:状态字段丢失,报KeyError: 'round'

  • 现象:执行到pro_node时报错KeyError: 'round'
  • 原因:pro_node返回时没有包含round字段,LangGraph合并状态时以为这个字段被删了
  • 解决:每个节点返回的字典里,必须显式包含所有需要保留的字段,即使值没变也要写上去。我后来统一写了"round": state.get('round', 1)

坑2:消息列表键名写错,'message' vs 'messages'

  • 现象:裁判节点报错KeyError: 'message'
  • 原因:手滑把messages写成了单数message
  • 解决:全局搜索替换,统一用messages。Python不报错才怪。

坑3:变量名张冠李戴,new_pro_args未定义

  • 现象:con_node里返回了"pro_arguments": new_pro_args,但new_pro_args根本没定义
  • 原因:复制粘贴正方代码时忘了改变量名
  • 解决:写代码时多看一眼,或者用IDE的重构功能。这种低级错误浪费了我半小时。

坑4:裁判的JSON解析失败,忘记import json

  • 现象:NameError: name 'json' is not defined
  • 原因:用了json.loads但没导入
  • 解决:文件开头加import json。小问题,但容易被忽略。

坑5:compute_metrics?不,这里是format_history里拿不到name

  • 现象:历史记录里显示的都是AIMessage,没有“正方”“反方”
  • 原因:创建消息时没有设置name属性
  • 解决:每个节点创建AIMessage时加上name="正方"name="反方",裁判的name="裁判"。然后在format_history中用getattr(msg, "name", "AI")获取。

坑6:LLM输出带Markdown代码块,JSON解析失败

  • 现象:裁判总结时,LLM输出的JSON外面包了json ...
  • 原因:大模型喜欢给JSON加代码块
  • 解决:解析前先去掉代码块:
if"```"in text:    text = text.split("```")[1]if text.startswith("json"):        text = text[4:]text = text.strip()result = json.loads(text)

坑7:循环依赖?不,这里是无限递归的条件边

  • 现象:图执行到裁判后就卡住了,不往下走
  • 原因:next_speaker里判断条件写反了,导致一直返回pro,裁判后永远走正方,正方后永远走裁判,死循环
  • 解决:仔细检查条件逻辑,用round的奇偶性控制,并在裁判返回后更新round

写在最后

以前觉得多Agent系统得用复杂的框架,得写大量的状态机代码。但LangGraph把状态管理、流程编排、条件分支都封装好了,我只需要关心每个Agent的提示词设计和业务逻辑。

正方、反方、裁判三个角色,各自有记忆、有规划,还能循环辩论——这些用传统方式实现至少要写几百行if-else,而用LangGraph,几十行图定义就搞定了。

当然,坑也是真坑。尤其是状态字段的传递,稍不留神就会丢。但踩过一遍之后,反而觉得这种设计很合理:显式返回要更新的字段,避免了隐式修改的副作用。

如果你也想尝试做多角色对话或者多步骤任务,也可以试试LangGraph。从最简单的线性链开始,慢慢加条件分支、加循环,最后会发现,原来“智能体”也可以搭积木一样简单。


这里没有人生导师, 只有一个摸索前行的人。

跑起来,一定要跑起来。这样,风就来了。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-12 11:18:12 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/517044.html
  2. 运行时间 : 0.109937s [ 吞吐率:9.10req/s ] 内存消耗:4,780.59kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=bae5d236eb6eabb90899638947ffac8a
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000451s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001043s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000315s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000264s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000583s ]
  6. SELECT * FROM `set` [ RunTime:0.000293s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000679s ]
  8. SELECT * FROM `article` WHERE `id` = 517044 LIMIT 1 [ RunTime:0.000504s ]
  9. UPDATE `article` SET `lasttime` = 1775963892 WHERE `id` = 517044 [ RunTime:0.001731s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000243s ]
  11. SELECT * FROM `article` WHERE `id` < 517044 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000457s ]
  12. SELECT * FROM `article` WHERE `id` > 517044 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000412s ]
  13. SELECT * FROM `article` WHERE `id` < 517044 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000648s ]
  14. SELECT * FROM `article` WHERE `id` < 517044 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004105s ]
  15. SELECT * FROM `article` WHERE `id` < 517044 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005182s ]
0.111660s