Files
assist/src/__pycache__/agent_assistant.cpython-311.pyc

93 lines
22 KiB
Plaintext
Raw Normal View History

2025-09-06 21:06:18 +08:00
<EFBFBD>
<00><>5i?<00><00><><00>dZddlZddlZddlmZmZmZmZddlmZej e
<EFBFBD><00>Z Gd<05>d<06><00>Z d<07>Z e
dkreje <0A><00><00><00>dSdS) uJ
TSP Agent助手 - 简化版本
提供基本的Agent功能和工具管理
<EFBFBD>N)<04>Dict<63>Any<6E>List<73>Optional)<01>datetimec <00><><00>eZdZdZd/d<03>Zd/dedeeeffd<06>Zdede fd<08>Z
de eeeffd <09>Z d/d
ed eeefdeeeffd <0C>Z d
ed eeefd ede def
d<10>Zdeeeffd<11>Zd0dede eeeffd<14>Zdeeeffd<15>Zdeeeffd<16>Zde de fd<18>Zde fd<19>Zde fd<1A>Zdeeeffd<1B>Zdeeeffd<1C>Zdeeefde efd<1E>Zdeeeffd<1F>Z d1d"ed#ed$eed%e deeeff
d&<26>Zdeeeffd'<27>Zd(ed)edeeeffd*<2A>Zd(ed+edefd,<2C>Z d-ed)ede eeeffd.<2E>Z!dS)2<>TSPAgentAssistantuTSP Agent助手 - 简化版本Nc<00><><00>||_d|_g|_i|_i|_d|_d|_t<00>d<03><00>dS)NTFuTSP Agent助手初始化完成) <09>
llm_config<EFBFBD> is_agent_mode<64>execution_history<72>tools<6C>tool_performance<63>ai_monitoring_active<76>monitoring_thread<61>logger<65>info)<02>selfr s <20>%D:\code\assist\src\agent_assistant.py<70>__init__zTSPAgentAssistant.__init__sU<00><00>$<24><04><0F>!<21><04><1A>!#<23><04><1E><18><04>
<EFBFBD> "<22><04><1D>%*<2A><04>!<21>!%<25><04><1E><0E> <0B> <0B>4<>5<>5<>5<>5<>5<><00>name<6D>metadatac<00><><00> ||pidddd<03>|j|<t<00>d|<01>d<05><03><00>dS#t$r+}t<00>d|<01>d|<04><00><04><00>Yd}~d Sd}~wwxYw)
u 注册工具rN)<05>functionr<00> usage_count<6E> success_count<6E> last_used<65>工具 u 注册成功Tu 注册工具 <20> 失败: F<>rrr<00> Exception<6F>error)rr<00>funcr<00>es r<00> register_toolzTSPAgentAssistant.register_tool!s<><00><00> <19> <20>$<24>N<EFBFBD><02> <20>!"<22>!<21>  <0E> <0E>D<EFBFBD>J<EFBFBD>t<EFBFBD> <1C> <13>K<EFBFBD>K<EFBFBD>5<>$<24>5<>5<>5<> 6<> 6<> 6<><17>4<EFBFBD><34><18> <19> <19> <19> <12>L<EFBFBD>L<EFBFBD>;<3B><14>;<3B>;<3B><01>;<3B>;<3B> <<3C> <<3C> <<3C><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>04<00>
A)<03> A$<03>$A)<03>returnc<00><><00> ||jvr(|j|=t<00>d|<01>d<02><03><00>dSdS#t$r+}t<00>d|<01>d|<02><00><04><00>Yd}~dSd}~wwxYw)u 注销工具ru 注销成功TFu 注销工具 r Nr!)rrr%s r<00>unregister_toolz!TSPAgentAssistant.unregister_tool1s<><00><00> <19><13>t<EFBFBD>z<EFBFBD>!<21>!<21><18>J<EFBFBD>t<EFBFBD>$<24><16> <0B> <0B>9<>d<EFBFBD>9<>9<>9<>:<3A>:<3A>:<3A><1B>t<EFBFBD><18>5<EFBFBD><35><18> <19> <19> <19> <12>L<EFBFBD>L<EFBFBD>;<3B><14>;<3B>;<3B><01>;<3B>;<3B> <<3C> <<3C> <<3C><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>/5<00>
A*<03> A%<03>%A*c <00><00> g}|j<00><00><00>D]8\}}|<01>||d|d|d|dd<05><05><00><00>9|S#t$r)}t<00>d|<04><00><02><00>gcYd}~Sd}~wwxYw)u获取可用工具列表rrrr)rrrrru获取工具列表失败: N)r<00>items<6D>appendr"rr#)r<00>
tools_listr<00> tool_infor%s r<00>get_available_toolsz%TSPAgentAssistant.get_available_tools=s<><00><00> <16><1B>J<EFBFBD>#'<27>:<3A>#3<>#3<>#5<>#5<> <13> <13><0F><04>i<EFBFBD><1A>!<21>!<21> <20> )<29>*<2A> 5<>#,<2C>]<5D>#;<3B>%.<2E><EFBFBD>%?<3F>!*<2A>;<3B>!7<> #<12>#<12><13><13><13><13><1E> <1D><><18> <16> <16> <16> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><15>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>s<00>AA<00>
B <03>"B<03>B <03>B <03> tool_name<6D>
parametersc<00><00>|K<00> ||jvrdd|<01>d<03>iS|j|}|d}|dxxdz cc<tj<00><00><00><00><00>|d<tj<00><00>} t j|<04><00>r|di|pi<00><01><01>d{V<00><03>}n
|di|pi<00><01>}|d xxdz cc<tj<00><00>|z
<00><00><00>}|<00>|||d
|<07><00>d
|||d <0B>S#t$rl}tj<00><00>|z
<00><00><00>}|<00>||t|<08><00>d |<07><00>d t|<08><00>||d <0A>cYd}~Sd}~wwxYw#t$r;}t<00> d|<01>d|<08><00><04><00>dt|<08><00>icYd}~Sd}~wwxYw)u 执行工具r#ru
不存在rr<00>rNrT)<04>success<73>result<6C>execution_timer0F)r4r#r6r0u 执行工具 r <00>) rr<00>now<6F> isoformat<61>asyncio<69>iscoroutinefunction<6F> total_seconds<64>_record_executionr"<00>strrr#) rr0r1r.r$<00>
start_timer5r6r%s r<00> execute_toolzTSPAgentAssistant.execute_toolNs^<00><00><00><00>- %<25><18><04>
<EFBFBD>*<2A>*<2A><1F>!@<40>9<EFBFBD>!@<40>!@<40>!@<40>A<>A<><1C>
<EFBFBD>9<EFBFBD>-<2D>I<EFBFBD><1C>Z<EFBFBD>(<28>D<EFBFBD> <16>m<EFBFBD> $<24> $<24> $<24><01> )<29> $<24> $<24> $<24>%-<2D>\<5C>^<5E>^<5E>%=<3D>%=<3D>%?<3F>%?<3F>I<EFBFBD>k<EFBFBD> "<22>"<22><1C><1E><1E>J<EFBFBD> <12><1A>.<2E>t<EFBFBD>4<>4<>8<>#'<27>4<EFBFBD>#=<3D>#=<3D>:<3A>+;<3B><12>#=<3D>#=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>F<EFBFBD>F<EFBFBD>!<21>T<EFBFBD>7<>7<>Z<EFBFBD>%5<>2<EFBFBD>7<>7<>F<EFBFBD><1A>/<2F>*<2A>*<2A>*<2A>a<EFBFBD>/<2F>*<2A>*<2A>*<2A>"*<2A>,<2C>.<2E>.<2E>:<3A>"=<3D>!L<>!L<>!N<>!N<><0E><15>&<26>&<26>y<EFBFBD>*<2A>f<EFBFBD>d<EFBFBD>N<EFBFBD>[<5B>[<5B>[<5B> $<24>$<24>&4<>!*<2A> <12><12><12><><1D> <12> <12> <12>"*<2A>,<2C>.<2E>.<2E>:<3A>"=<3D>!L<>!L<>!N<>!N<><0E><14>&<26>&<26>y<EFBFBD>*<2A>c<EFBFBD>!<21>f<EFBFBD>f<EFBFBD>e<EFBFBD>^<5E>\<5C>\<5C>\<5C>$<24> <20><11>V<EFBFBD>V<EFBFBD>&4<>!*<2A> <12><12><12><12><12><12><12><12><><EFBFBD><EFBFBD><EFBFBD> <12><><EFBFBD><EFBFBD><EFBFBD><19> %<25> %<25> %<25> <12>L<EFBFBD>L<EFBFBD>@<40><19>@<40>@<40>Q<EFBFBD>@<40>@<40> A<> A<> A<><1B>S<EFBFBD><11>V<EFBFBD>V<EFBFBD>$<24> $<24> $<24> $<24> $<24> $<24> $<24><><EFBFBD><EFBFBD><EFBFBD> %<25><><EFBFBD>sO<00>E6<00>A E6<00>6BC=<00>=
E3<03>A!E.<03>(E3<03>)E6<00>.E3<03>3E6<00>6
F;<03>0F6<03>0F;<03>6F;r5r4r6c<00>Z<00> tj<00><00><00><00><00>|||||d<01>}|j<00>|<06><00>t |j<00><00>dkr|jdd<04>|_dSdS#t $r(}t<00>d|<07><00><02><00>Yd}~dSd}~wwxYw)u记录执行历史)<06> timestampr0r1r5r4r6i<>i<18><><EFBFBD>Nu记录执行历史失败: ) rr8r9r r,<00>lenr"rr#)rr0r1r5r4r6<00>execution_recordr%s rr=z#TSPAgentAssistant._record_executions<><00><00> ;<3B>%<25>\<5C>^<5E>^<5E>5<>5<>7<>7<>&<26>(<28> <20>"<22>"0<>  <0E> <0E> <1C> <11> "<22> )<29> )<29>*:<3A> ;<3B> ;<3B> ;<3B><13>4<EFBFBD>)<29>*<2A>*<2A>T<EFBFBD>1<>1<>)-<2D>)?<3F><05><06><06>)G<><04>&<26>&<26>&<26>2<>1<><31><19> ;<3B> ;<3B> ;<3B> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A> :<3A> :<3A> :<3A> :<3A> :<3A> :<3A><><EFBFBD><EFBFBD><EFBFBD> ;<3B><><EFBFBD>s<00>A2A8<00>8
B*<03>B%<03>%B*c<00><><00> t|j<00><00>}td<01>|j<00><00><00>D<00><00><00><00>}td<02>|j<00><00><00>D<00><00><00><00>}|dkr||z dznd}|||t |d<05><00>|<00><00><00>d<06>S#t $r)}t<00>d|<05><00><02><00>icYd}~Sd}~wwxYw) u获取工具性能报告c3<00>&K<00>|] }|dV<00><00> dS)rNr7<00><02>.0<EFBFBD>tools r<00> <genexpr>z@TSPAgentAssistant.get_tool_performance_report.<locals>.<genexpr><3E>s'<00><00><00><00>"W<>"W<>4<EFBFBD>4<EFBFBD> <0A>#6<>"W<>"W<>"W<>"W<>"W<>"Wrc3<00>&K<00>|] }|dV<00><00> dS)rNr7rGs rrJz@TSPAgentAssistant.get_tool_performance_report.<locals>.<genexpr><3E>s'<00><00><00><00>!X<>!X<>D<EFBFBD>$<24><EFBFBD>"7<>!X<>!X<>!X<>!X<>!X<>!Xrr<00>d<00>)<05> total_tools<6C>total_executions<6E>total_successes<65> success_rateru 获取工具性能报告失败: N) rCr<00>sum<75>values<65>roundr/r"rr#)rrNrOrPrQr%s r<00>get_tool_performance_reportz-TSPAgentAssistant.get_tool_performance_report<72>s <00><00> <16><1D>d<EFBFBD>j<EFBFBD>/<2F>/<2F>K<EFBFBD>"<22>"W<>"W<>4<EFBFBD>:<3A>CT<43>CT<43>CV<43>CV<43>"W<>"W<>"W<>W<>W<> <1C>!<21>!X<>!X<>D<EFBFBD>J<EFBFBD>DU<44>DU<44>DW<44>DW<44>!X<>!X<>!X<>X<>X<>O<EFBFBD>IY<49>\]<5D>I]<5D>I]<5D>O<EFBFBD>.><3E>><3E><13>D<>D<>cd<63>L<EFBFBD> +<2B>$4<>#2<> %<25>l<EFBFBD>A<EFBFBD> 6<> 6<><1D>1<>1<>3<>3<> <0E><0E> <0E><><19> <16> <16> <16> <12>L<EFBFBD>L<EFBFBD>?<3F>A<EFBFBD>?<3F>?<3F> @<40> @<40> @<40><15>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>s<00>B+B.<00>.
C!<03>8C<03>C!<03>C!<03>2<00>limitc<00><><00> |dkr|j| d<02>n|jS#t$r)}t<00>d|<02><00><02><00>gcYd}~Sd}~wwxYw)u获取动作执行历史rNu获取动作历史失败: )r r"rr#)rrWr%s r<00>get_action_historyz$TSPAgentAssistant.get_action_history<72>st<00><00> <16>6;<3B>a<EFBFBD>i<EFBFBD>i<EFBFBD>4<EFBFBD>)<29>5<EFBFBD>&<26>'<27>'<27>2<>2<>T<EFBFBD>E[<5B> [<5B><><18> <16> <16> <16> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><15>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>s<00><00>
A<03>A <03>A<03> Ac<00><><00> t|j<00><00>}|j<00><00><00>dd|<01>d<03>d<04>S#t$r9}t<00>d|<02><00><02><00>dt |<02><00>d<07>cYd}~Sd}~wwxYw) u清空执行历史Tu
已清空 u 条执行历史)r4<00>messageu清空执行历史失败: F<>r4r#N)rCr <00>clearr"rr#r>)r<00>countr%s r<00>clear_execution_historyz)TSPAgentAssistant.clear_execution_history<72>s<><00><00> 7<><17><04>.<2E>/<2F>/<2F>E<EFBFBD> <10> "<22> (<28> (<28> *<2A> *<2A> *<2A><1F>?<3F><05>?<3F>?<3F>?<3F><0E><0E> <0E><><19> 7<> 7<> 7<> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A>$<24>s<EFBFBD>1<EFBFBD>v<EFBFBD>v<EFBFBD>6<>6<> 6<> 6<> 6<> 6<> 6<> 6<><36><EFBFBD><EFBFBD><EFBFBD> 7<><37><EFBFBD>s<00>58<00>
A;<03>.A6<03>0A;<03>6A;c<00>L<00> d|j|jt|j<00><00>t|j<00><00>|<00><00><00>|<00><00><00>d<02>S#t$r;}t<00> d|<01><00><02><00>dt|<01><00>ddd<05>cYd}~Sd}~wwxYw)u获取Agent状态T)r4<00> is_activerrNrOr<00> performanceu获取Agent状态失败: F)r4r#rarN) r rrCrr r/rUr"rr#r><00>rr%s r<00>get_agent_statusz"TSPAgentAssistant.get_agent_status<75>s<><00><00> <0E><1F>!<21>/<2F>(,<2C>(A<>"<22>4<EFBFBD>:<3A><EFBFBD><EFBFBD>$'<27><04>(><3E>$?<3F>$?<3F><1D>1<>1<>3<>3<>#<23>?<3F>?<3F>A<>A<><0E><0E> <0E><><19> <0E> <0E> <0E> <12>L<EFBFBD>L<EFBFBD>8<>Q<EFBFBD>8<>8<> 9<> 9<> 9<> <20><1C>Q<EFBFBD><16><16>"<22>(-<2D> <0E><0E> <0E> <0E> <0E> <0E> <0E> <0E><><EFBFBD><EFBFBD><EFBFBD> <0E><><EFBFBD>s<00>AA<00>
B#<03>(0B<03>B#<03>B#<03>enabledc<00><><00> ||_t<00>d|rdnd<03><00><02><00>dS#t$r(}t<00>d|<02><00><02><00>Yd}~dSd}~wwxYw)u切换Agent模式u Agent模式: u启用u禁用Tu切换Agent模式失败: NF)r rrr"r#)rrer%s r<00>toggle_agent_modez#TSPAgentAssistant.toggle_agent_mode<64>s<00><00> <19>!(<28>D<EFBFBD> <1E> <12>K<EFBFBD>K<EFBFBD>K<>G<EFBFBD>(I<><08><08><18>K<>K<> L<> L<> L<><17>4<EFBFBD><34><18> <19> <19> <19> <12>L<EFBFBD>L<EFBFBD>8<>Q<EFBFBD>8<>8<> 9<> 9<> 9<><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>(,<00>
A<03>A<03>Ac<00><><00> |js#d|_t<00>d<02><00>dSdS#t$r(}t<00>d|<01><00><02><00>Yd}~dSd}~wwxYw)u启动主动监控Tu主动监控已启动u启动主动监控失败: NF<4E>rrrr"r#rcs r<00>start_proactive_monitoringz,TSPAgentAssistant.start_proactive_monitoring<6E>s~<00><00> <19><17>,<2C> <1C>,0<><04>)<29><16> <0B> <0B>3<>4<>4<>4<><1B>t<EFBFBD><17>4<EFBFBD><34><18> <19> <19> <19> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>(.<00>
A <03>A<03>A c<00><><00> d|_t<00>d<02><00>dS#t$r(}t<00>d|<01><00><02><00>Yd}~dSd}~wwxYw)u停止主动监控Fu主动监控已停止Tu停止主动监控失败: Nrircs r<00>stop_proactive_monitoringz+TSPAgentAssistant.stop_proactive_monitoring<6E>sn<00><00> <19>(-<2D>D<EFBFBD> %<25> <12>K<EFBFBD>K<EFBFBD>/<2F> 0<> 0<> 0<><17>4<EFBFBD><34><18> <19> <19> <19> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><18>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD> <19><><EFBFBD>s<00>!%<00>
A<03>A<03>Ac<00><><00> ddtj<00><00><00><00><00>d<03>S#t$r9}t<00>d|<01><00><02><00>dt |<01><00>d<06>cYd}~Sd}~wwxYw)u运行主动监控检查Tu主动监控检查完成)r4r[rBu运行主动监控失败: Fr\N<>rr8r9r"rr#r>rcs r<00>run_proactive_monitoringz*TSPAgentAssistant.run_proactive_monitoring<6E>s<><00><00> 7<><1F>5<>%<25>\<5C>^<5E>^<5E>5<>5<>7<>7<><0E><0E> <0E><>
<19> 7<> 7<> 7<> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A>$<24>s<EFBFBD>1<EFBFBD>v<EFBFBD>v<EFBFBD>6<>6<> 6<> 6<> 6<> 6<> 6<> 6<><36><EFBFBD><EFBFBD><EFBFBD> 7<><37><EFBFBD>s<00>(+<00>
A.<03>.A)<03>#A.<03>)A.c<00>Z<00> |<00><00><00>}|<00>d<01><00>}|t|<02><00>|<01>dd<03><00>|<00>|<01><00>d<04>}|S#t
$r8}t <00>d|<04><00><02><00>dt|<04><00>icYd}~Sd}~wwxYw)u运行智能分析<E58886>rQr)r<00>recent_activityrQ<00>recommendationsu运行智能分析失败: r#N) rUrYrC<00>get<65>_generate_recommendationsr"rr#r>)rr<00>recent_executions<6E>analysisr%s r<00>run_intelligent_analysisz*TSPAgentAssistant.run_intelligent_analysis<69>s<><00><00> %<25>#<23>?<3F>?<3F>A<>A<> <1C>!%<25> 7<> 7<><02> ;<3B> ;<3B> <1D>%5<>#&<26>'8<>#9<>#9<> 0<> 4<> 4<>^<5E>Q<EFBFBD> G<> G<>#'<27>#A<>#A<>BR<42>#S<>#S<> <0E><0E>H<EFBFBD><1C>O<EFBFBD><4F><18> %<25> %<25> %<25> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><1B>S<EFBFBD><11>V<EFBFBD>V<EFBFBD>$<24> $<24> $<24> $<24> $<24> $<24> $<24><><EFBFBD><EFBFBD><EFBFBD> %<25><><EFBFBD>s<00>A%A(<00>(
B*<03>2-B%<03>B*<03>%B*rc<00><><00>g}|<01>dd<02><00>}|dkr|<02>d<04><00>|<01>dd<06><00>}|dkr|<02>d<08><00>|S) u 生成建议rQrL<00>Zu0工具成功率较低建议检查工具实现rOr<00>
u3工具使用频率较低,建议增加工具调用)rtr,)rrrsrQrOs rruz+TSPAgentAssistant._generate_recommendationssy<00><00><1C><0F>'<27>+<2B>+<2B>N<EFBFBD>C<EFBFBD>@<40>@<40> <0C> <17>"<22> <1C> <1C> <1B> "<22> "<22>#U<> V<> V<> V<>+<2B>/<2F>/<2F>0B<30>A<EFBFBD>F<>F<><18> <1B>b<EFBFBD> <20> <20> <1B> "<22> "<22>#X<> Y<> Y<> Y<><1E>rc<00><><00> dddtj<00><00><00><00><00>d<03>S#t$r)}t<00>d|<01><00><02><00>icYd}~Sd}~wwxYw)u获取LLM使用统计rg)<04>total_requests<74> total_tokens<6E>cost<73> last_updatedu获取LLM使用统计失败: N)rr8r9r"rr#rcs r<00>get_llm_usage_statsz%TSPAgentAssistant.get_llm_usage_stats#s<00><00> <16>"#<23> !<21><1B> (<28> <0C><0E><0E> 8<> 8<> :<3A> :<3A> <0E><0E> <0E><> <19> <16> <16> <16> <12>L<EFBFBD>L<EFBFBD><<3C><11><<3C><<3C> =<3D> =<3D> =<3D><15>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>s<00>),<00>
A<03>A<03>A<03>A<03>adminTr[<00>user_id<69> work_order_id<69>enable_proactivec<00><00><>K<00> dd|<01><00>||tj<00><00><00><00><00>d<03>S#t$r8}t<00>d|<05><00><02><00>dt |<05><00>icYd}~Sd}~wwxYw)u 处理消息TuAgent收到消息: )r4r[r<>r<>rBu处理消息失败: r#Nrn)rr[r<>r<>r<>r%s r<00>process_message_agentz'TSPAgentAssistant.process_message_agent0s<><00><00><00><00> %<25> <20>:<3A><17>:<3A>:<3A>"<22>!.<2E>%<25>\<5C>^<5E>^<5E>5<>5<>7<>7<> <0E><0E> <0E><><19> %<25> %<25> %<25> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<><1B>S<EFBFBD><11>V<EFBFBD>V<EFBFBD>$<24> $<24> $<24> $<24> $<24> $<24> $<24><><EFBFBD><EFBFBD><EFBFBD> %<25><><EFBFBD>s<00>-2<00>
A4<03>-A/<03>)A4<03>/A4c<00><00><>K<00> |<00>dddi<01><00><00>d{V<00><03>}dd|d<07>S#t$r9}t<00>d|<02><00><02><00>d t |<02><00>d
<EFBFBD>cYd}~Sd}~wwxYw) u触发示例动作<E58AA8> sample_tool<6F>action<6F>testNTu示例动作已执行)r4r[r5u触发示例动作失败: Fr\)r@r"rr#r>)rr5r%s r<00>trigger_sample_actionsz(TSPAgentAssistant.trigger_sample_actionsAs<><00><00><00><00> 7<><1F>,<2C>,<2C>]<5D>X<EFBFBD>v<EFBFBD><N<>O<>O<>O<>O<>O<>O<>O<>O<>F<EFBFBD> <20>2<> <20><0E><0E> <0E><>
<19> 7<> 7<> 7<> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A>$<24>s<EFBFBD>1<EFBFBD>v<EFBFBD>v<EFBFBD>6<>6<> 6<> 6<> 6<> 6<> 6<> 6<><36><EFBFBD><EFBFBD><EFBFBD> 7<><37><EFBFBD>s<00>#(<00>
A+<03>.A&<03> A+<03>&A+<03> file_path<74>filenamec
<00>2<00> ddl}ddl}|<04>|<01><00>\}}|j<00>|<02><00>d<00><00><00>}|<00>||<07><00>}|sddd<06>S|<00>||<02><00>} d}
t| <09><00>D]<5D>\} } t<00>
2025-09-06 21:06:18 +08:00
d| dz<00>d| <0C> d d
<EFBFBD><00>dd <0B><00>d <0C><05><00>|
2025-09-06 21:06:18 +08:00
dz }
t<00>
d | dz<00>d<0E><03><00><00>m#t$r-} t<00> d| dz<00>d| <0A><00><04><00>Yd} ~ <0A><>d} ~ wwxYwd|
t| <09><00>|d<11>S#t$r9}t<00> d|<0E><00><02><00>dt|<0E><00>d<06>cYd}~Sd}~wwxYw)u处理文件并生成知识库rNr3Fu无法读取文件内容r\u保存知识条目 z: <20>question<6F>rVz...u 知识条目 u 保存成功u 时出错: T)r4<00>knowledge_count<6E>total_extractedr<64>u处理文件失败: )<10>os<6F> mimetypes<65>
guess_type<EFBFBD>path<74>splitext<78>lower<65>_read_file_content<6E>_extract_knowledge_from_content<6E> enumeraterrrtr"r#rCr>)rr<>r<>r<>r<><00> mime_type<70>_<>file_ext<78>content<6E>knowledge_entries<65> saved_count<6E>i<>entry<72>
save_errorr%s r<00>process_file_to_knowledgez+TSPAgentAssistant.process_file_to_knowledgePs<00><00>$ 7<> <15>I<EFBFBD>I<EFBFBD>I<EFBFBD> <1C> <1C> <1C> <1C>%<25>/<2F>/<2F> <09>:<3A>:<3A>L<EFBFBD>I<EFBFBD>q<EFBFBD><19>w<EFBFBD>'<27>'<27><08>1<>1<>!<21>4<>:<3A>:<3A><<3C><<3C>H<EFBFBD><1B>-<2D>-<2D>i<EFBFBD><18>B<>B<>G<EFBFBD><1A> O<01>#(<28>3M<33>N<>N<>N<>!%<25> D<> D<>W<EFBFBD>h<EFBFBD> W<> W<> <1D><1C>K<EFBFBD>%<25>&7<>8<>8<> V<01> V<01><08><01>5<EFBFBD>V<01><1A>K<EFBFBD>K<EFBFBD> `<60>a<EFBFBD><01>c<EFBFBD> `<60> `<60>U<EFBFBD>Y<EFBFBD>Y<EFBFBD>z<EFBFBD>SU<53>=V<>=V<>WZ<57>XZ<58>WZ<57>=[<5B> `<60> `<60> `<60>a<>a<>a<><1F>1<EFBFBD>$<24>K<EFBFBD><1A>K<EFBFBD>K<EFBFBD> B<><01>!<21><03> B<> B<> B<>C<>C<>C<>C<><43> <20>V<01>V<01>V<01><1A>L<EFBFBD>L<EFBFBD>!T<>q<EFBFBD><11>s<EFBFBD>!T<>!T<>
<EFBFBD>!T<>!T<>U<>U<>U<>U<>U<>U<>U<>U<><55><EFBFBD><EFBFBD><EFBFBD>V<01><><EFBFBD><EFBFBD> <20>#.<2E>#&<26>'8<>#9<>#9<>$<24> <0E><0E> <0E><><19> 7<> 7<> 7<> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<>$<24>s<EFBFBD>1<EFBFBD>v<EFBFBD>v<EFBFBD>6<>6<> 6<> 6<> 6<> 6<> 6<> 6<><36><EFBFBD><EFBFBD><EFBFBD> 7<><37><EFBFBD>sO<00>A.E<00>1,E<00>A&D<02>E<00>
D<<05>#D7<05>2E<00>7D<<05><E<00>
F<03>.F<03> F<03>Fr<>c<00><00> |dvr@t|dd<03><04><00>5}|<03><00><00>cddd<05><00>S#1swxYwYdS|dkrdS|dvrd Sd
S#t$r(}t<00>d |<04><00><02><00>Yd}~d Sd}~wwxYw) u读取文件内容)z.txtz.md<6D>rzutf-8)<01>encodingNz.pdfuPDF文件需要安装PyPDF2库)z.docz.docxu$Word文件需要安装python-docx库u不支持的文件格式u读取文件失败: r<>)<05>open<65>readr"rr#)rr<>r<><00>fr%s rr<>z$TSPAgentAssistant._read_file_contentxs<00><00> <16><17>?<3F>*<2A>*<2A><19>)<29>S<EFBFBD>7<EFBFBD>;<3B>;<3B>;<3B>$<24>q<EFBFBD><1C>6<EFBFBD>6<EFBFBD>8<EFBFBD>8<EFBFBD>$<24>$<24>$<24>$<24>$<24>$<24>$<24>$<24>$<24>$<24>$<24>$<24><><EFBFBD><EFBFBD>$<24>$<24>$<24>$<24>$<24>$<24><19>V<EFBFBD>#<23>#<23>7<>7<><19>.<2E>.<2E>.<2E>=<3D>=<3D>1<>1<><31><18> <16> <16> <16> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<><15>2<EFBFBD>2<EFBFBD>2<EFBFBD>2<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>s@<00>A<00>9<03> A<00>=<07>A<00>=<07>A<00>A<00>A<00>
B<03> B<03>Br<>c<00><><00> g}|<01>d<01><00>}t|dd<03><00><00>D]_\}}t|<06><00><00><00><00>dkr5|<03>d|<02>d|dz<00><00>|<06><00><00>dd d
<EFBFBD><04><00><00>`|S#t
$r)}t <00>d |<07><00><02><00>gcYd}~Sd}~wwxYw) u从内容中提取知识z
2025-09-06 21:06:18 +08:00
N<EFBFBD>rqu关于u 的问题r3u 文档知识gffffff<66>?)r<><00>answer<65>category<72>confidence_scoreu提取知识失败: )<08>splitr<74>rC<00>stripr,r"rr#)rr<>r<><00>entries<65>
paragraphsr<EFBFBD><00> paragraphr%s rr<>z1TSPAgentAssistant._extract_knowledge_from_content<6E>s<><00><00> <16><18>G<EFBFBD>!<21><1D><1D>v<EFBFBD>.<2E>.<2E>J<EFBFBD> )<29>*<2A>R<EFBFBD>a<EFBFBD>R<EFBFBD>.<2E> 9<> 9<> <17> <17> <0C><01>9<EFBFBD><16>y<EFBFBD><EFBFBD><EFBFBD>(<28>(<28>)<29>)<29>B<EFBFBD>.<2E>.<2E><1B>N<EFBFBD>N<EFBFBD>$E<>X<EFBFBD>$E<>$E<><01>!<21><03>$E<>$E<>"+<2B>/<2F>/<2F>"3<>"3<>$2<>,/<2F> $<16>$<16><17><17><17><><1B>N<EFBFBD><4E><18> <16> <16> <16> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<><15>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD> <16><><EFBFBD>s<00>BB<00>
C<03>C<03>:C<03>C)N)rV)r<>NT)"<22>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rr>rrr&<00>boolr)rr/r@<00>floatr=rU<00>intrYr_rdrgrjrlrorxrur<>rr<>r<>r<>r<>r<>r7rrr r s<><00><00><00><00><00><00>(<28>(<28>6<>6<>6<>6<> <19><19>#<23><19>t<EFBFBD>C<EFBFBD><13>H<EFBFBD>~<7E><19><19><19><19>
<19>C<EFBFBD>
<19>D<EFBFBD>
<19>
<19>
<19>
<19><16>T<EFBFBD>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>%9<><16><16><16><16>"/%<25>/%<25>C<EFBFBD>/%<25>T<EFBFBD>#<23>s<EFBFBD>(<28>^<5E>/%<25>W[<5B>\_<>ad<61>\d<>We<57>/%<25>/%<25>/%<25>/%<25>b;<3B>3<EFBFBD>;<3B>D<EFBFBD><13>c<EFBFBD><18>N<EFBFBD>;<3B>!$<24>;<3B>/3<>;<3B>EJ<45>;<3B>;<3B>;<3B>;<3B>*<16>T<EFBFBD>#<23>s<EFBFBD>(<28>^<5E><16><16><16><16>(<16><16><03><16>T<EFBFBD>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>5I<35><16><16><16><16> 7<><14>c<EFBFBD>3<EFBFBD>h<EFBFBD><1E> 7<> 7<> 7<> 7<><0E>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E><0E><0E><0E><0E>*<19><14><19>$<24><19><19><19><19>
<19>D<EFBFBD>
<19>
<19>
<19>
<19><19>4<EFBFBD><19><19><19><19>
7<>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>
7<>
7<>
7<>
7<>%<25>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>%<25>%<25>%<25>%<25>. <1F>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E> <1F>T<EFBFBD>RU<52>Y<EFBFBD> <1F> <1F> <1F> <1F> <16>T<EFBFBD>#<23>s<EFBFBD>(<28>^<5E> <16> <16> <16> <16>HO<01>AE<41>;?<3F>%<25>%<25>3<EFBFBD>%<25><13>%<25>19<31>#<23><1D>%<25>48<34>%<25>DH<44><13>c<EFBFBD><18>N<EFBFBD>%<25>%<25>%<25>%<25>" 7<>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> 7<> 7<> 7<> 7<>&7<>3<EFBFBD>&7<>#<23>&7<>$<24>s<EFBFBD>TW<54>x<EFBFBD>.<2E>&7<>&7<>&7<>&7<>P<16>C<EFBFBD><16>3<EFBFBD><16>3<EFBFBD><16><16><16><16> <16>s<EFBFBD><16>c<EFBFBD><16>d<EFBFBD>SW<53>X[<5B>]`<60>X`<60>Sa<53>Nb<4E><16><16><16><16><16>rr c<00><00><>K<00>t<00><00>}td<01><00>|<00>dd<03><04><00><00>d{V<00><03>}td|<01><00>|<00><00><00>}td|<02><00>dS)u主函数示例u=== TSP Agent助手测试 ===u9我的账户无法登录请帮助我解决这个问题<E997AE>user123)r[r<>NuAgent模式响应:u Agent状态:)r <00>printr<74>rd)<03>agent_assistant<6E>response<73> agent_statuss r<00>mainr<6E><00>s<><00><00><00><00>(<28>)<29>)<29>O<EFBFBD>
2025-09-06 21:06:18 +08:00
<EFBFBD>
)<29>*<2A>*<2A>*<2A>%<25>:<3A>:<3A>K<><19>;<3B><06><06><06><06><06><06><06><06>H<EFBFBD>
<EFBFBD>
<1E><08>)<29>)<29>)<29>#<23>3<>3<>5<>5<>L<EFBFBD> <09>.<2E>,<2C>'<27>'<27>'<27>'<27>'r<00>__main__)r<><00>loggingr:<00>typingrrrrr<00> getLoggerr<72>rr r<><00>runr7rr<00><module>r<>s<><00><01><04><04>
<0F><0E><0E><0E><0E><0E><0E><0E>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C><1D><1D><1D><1D><1D><1D> <1A><17> <1A>8<EFBFBD> $<24> $<24><06>P<16>P<16>P<16>P<16>P<16>P<16>P<16>P<16>f (<28>(<28>(<28>& <0C>z<EFBFBD><19><19><0F>G<EFBFBD>K<EFBFBD><04><04><06><06><17><17><17><17><17><1A>r