Files
assist/src/agent/__pycache__/executor.cpython-310.pyc

136 lines
13 KiB
Plaintext
Raw Normal View History

o
<00><0F>izQ<00>@s\dZddlZddlZddlmZmZmZmZddlmZddl Z e<01>
e <0B>Z Gdd<06>d<06>Z dS)u6
任务执行器
负责执行计划中的具体任务
<EFBFBD>N)<04>Dict<63>List<73>Any<6E>Optional)<01>datetimec @s eZdZdZdd<03>Zdeeeefdedeeefdeeeffdd <09>Z deeeefdefd
d <0B>Z
deeeefdedeeefd edeeeff
d d<0E>Z deeeefdedeeefd edeeeff
dd<10>Z deeeefdedeeefd edeeeff
dd<12>Z deeeefdedeeefd edeeeff
dd<14>Zdeeefdedeeefdeeeffdd<17>Zdeeefdedeeefdeeeffdd<19>Zdeeefdedeeefdeeeffdd<1B>Zdeeefdedeeefdeeeffdd<1D>Zdeeefdedeeefdeeeffdd<1F>Zd eeeefdedeeefdeeeeffd!d"<22>Zdeeeefdeeeeffd#d$<24>Zdeeefd%eeeefdefd&d'<27>Zdeeefd(eeefdefd)d*<2A>Zd+eeefd,eeeefdeeeeffd-d.<2E>Zd/eeefd0eeefdefd1d2<64>Zd3edeeefdefd4d5<64>Zdeeefdeeefdeeeffd6d7<64>Zdeeefdeeefdeeeffd8d9<64>Zd edeeeeffd:d;<3B>Zdeeeffd<d=<3D>Z d>S)?<3F> TaskExecutoru任务执行器cCs"|j|j|j|jd<01>|_i|_dS)N)<04>
sequential<EFBFBD>parallel<65> conditional<61> iterative)<06>_execute_sequential<61>_execute_parallel<65>_execute_conditional<61>_execute_iterative<76>execution_strategies<65>active_executions<6E><01>self<6C>r<00></Users/macos/Desktop/tsp-assist/assist/src/agent/executor.py<70>__init__s <08>
zTaskExecutor.__init__<5F>plan<61> tool_manager<65>context<78>returnc
<00>s<00>zJdt<00><01><00>d<02><01><00>}t<00><01>d|d<04>|j|<|<00>|<01>}|j|||||d<05>IdH}d|j|d<t<00><01>|j|d <||j|d
<t<06>d |<04><00><02>|WSty<>}z+t<06> d |<07><00><02>||jvrpd |j|d<t
|<07>|j|d<dt
|<07>|d<10>WYd}~Sd}~ww)u 执行计划<E8AEA1>exec_z %Y%m%d_%H%M%S<>running)<03>
start_time<EFBFBD>statusr)rrr<00> execution_idN<64> completedr<00>end_time<6D>resultu计划执行完成: u执行计划失败: <20>failed<65>errorF)<03>successr$r) r<00>now<6F>strftimer<00>_determine_execution_strategyr<00>logger<65>info<66> Exceptionr$<00>str)rrrrrZexecution_strategyr"<00>errr<00> execute_plans<<02> <0C>
 <0C>
<12><08><02>zTaskExecutor.execute_plancCsF|sdSdd<03>|D<00>}d|vrdSd|vsd|vrdSd |vr!d
SdS) u确定执行策略rcSsg|]}|<01>d<00><01>qS)<01>type<70><01>get<65><02>.0<EFBFBD>taskrrr<00>
<listcomp>Psz>TaskExecutor._determine_execution_strategy.<locals>.<listcomp><3E>parallel_groupr <00> condition<6F>branchr
<00>iteration_controlr r)rrZ
plan_typesrrrr(Jsz*TaskExecutor._determine_execution_strategyrc <00>s<><00>g}g}t|<01>D]<5D>\}}zkt<01>d|d<00>dt|<01><01>d|<08>dd<06><02><00><06>|<00>||<05>IdHs;t<01>d|<08>d<05><01>d <09><03>Wq |<00>|||<03>IdH} |<05>|<08>d<05>| t <09>
<EFBFBD><00> <0B>d
<EFBFBD><03>|<06>|<08>d<05>d | <09>d d <0A>d<0E><03>|<00> || <09>swt<01>d|<08>d<05><01>d<0F><03>Wq t y<>}
z=t<01>d|<08>d<05><01>d|
<EFBFBD><00><04>|<06>|<08>d<05>dt|
<EFBFBD>d<12><03>|<08>dd<14>r<>dd|<08>d<05><01><00>||d<16>WYd}
~
SWYd}
~
q d}
~
wwd|||d<18>S)u顺序执行计划u 执行任务 <20><00>/z: <20>id<69>unknownN<6E>任务 u" 的依赖未满足跳过执行<E689A7><03>task_idr"<00> timestampr <00>durationr)r@rrBu 未满足成功条件u 失败: r#)r@rr$<00>criticalFu关键任务失败: )r%r$<00>results<74> execution_logT<67>r%rDrEr)<10> enumerater)r*<00>lenr1<00>_check_dependencies<65>warning<6E>_execute_single_task<73>appendrr&<00> isoformat<61>_check_success_criteriar+r$r,) rrrrrrDrE<00>ir4<00> task_resultr-rrrr [sX<02>,
<08>
<08> <04><08> <16> <0C><08><02><06>z TaskExecutor._execute_sequentialc <00>s<><00>g}g}|<00>|<01>}|D];}|ddkr&|<00>|d||<03>IdH} |<05>| <09>q |dD]}
|<00>|
||<03>IdH} |<05>|
<EFBFBD>d<05>| t<06><07><00><08>d<06><03>q*q d|||d<08>S) u并行执行计划<E8AEA1>execution_moder <00>tasksNr<r?TrF) <09>#_group_tasks_for_parallel_execution<6F>_execute_tasks_parallel<65>extendrKrLr1rr&rM) rrrrrrDrE<00>parallel_groups<70>groupZ group_resultsr4rPrrrr <00>s.<02>
 

<EFBFBD>  

<EFBFBD><02> <06>zTaskExecutor._execute_parallelc <00>s<00>g}g}d}g}|D]} | <09>d<02>dkr| }q | <09>d<02>dkr#|<08>| <09>q |s0t<02>d<05>ddd<08>S|<00>|||<03>IdH}
|<05>|<07>d <09>|
t<05><06><00><07>d
<EFBFBD><03>|<00>|
|<08>} | rs|<00> | <0B>d g<00>|||<04>IdH} |<05>
| <0C>d g<00><02>|<06>
| <0C>d g<00><02>d|||| r<>| <0B>d <09>d<0F>Sdd<0F>S)u条件执行计划Nr/r7r8u'条件计划中缺少条件检查任务Fu缺少条件检查任务<E4BBBB>r%r$r<r?rRrDrET)r%rDrEr<00>selected_branch) r1rLr)r$rKrr&rM<00>_select_branchr rU) rrrrrrDrE<00>condition_task<73> branch_tasksr4<00>condition_resultrYZ branch_resultrrrr<00>sL<02>
<02>


<08> 

<EFBFBD> <06><06>z!TaskExecutor._execute_conditionalc<00>s<00>d}|D] }|<06>d<02>dkr|}nq|st<01>d<04>ddd<07>S|<05>dd <09>}|<05>d
i<00>}|<05>d g<00>} g}
g} d } | |kry| d 7} t<01>d| <0C>d<0F><03>|<00>| |||<04>d| <0C><00><03>IdH} |
<EFBFBD>| | t<06><07><00><08>d<11><03>|<00> | |<08>rut<01>d| <0C>d<13><03>n| |ks;d|
| || | |kd<15>S)u迭代执行计划Nr/r9u'迭代计划中缺少迭代控制任务Fu缺少迭代控制任务rX<00>max_iterations<6E>
<00>convergence_criteriarRrr:u
执行第 u
次迭代Z_iter_)<03> iterationr"rAu 迭代在第 u
次收敛T)r%rDrEr<00>
iterations<EFBFBD> converged)
r1r)r$r*r rLrr&rM<00>_check_convergence)rrrrrZiteration_taskr4r^r`rRrDrEZiteration_count<6E>iteration_resultrrrr<00>sL<02> <02>

   
<EFBFBD>
<08> <08><06>zTaskExecutor._execute_iterativer4c
<00>sN<00>t<00><01>}zy|<01>dd<02>}|<01>dd<04>}|<01>dd<06>}|<01>di<00>}t<03>d|<05>d |<06>d
|<07><00><06>|dkr;|<00>|||<03>Id H} n(|d krJ|<00>|||<03>Id H} n|d krY|<00>|||<03>Id H} n
|<00>|||<03>Id H} t<00><01>|<00> <09>}
|
| d<t<03>d|<05>d|
d<11>d<12><05>| WSt
y<EFBFBD>} zt<03> d| <0B><00><02>dt | <0B>t<00><01>|<00> <09>d<15>WYd } ~ Sd } ~ ww)u执行单个任务r<r=r/<00>action<6F>tool<6F><00>
parametersu执行任务: u
, 类型: u
, 工具: Nr7<00>controlrBr>u 执行完成,耗时: z.2fu秒u执行任务失败: F)r%r$rB) rr&r1r)r*<00>_execute_action_task<73>_execute_condition_task<73>_execute_control_task<73>_execute_general_task<73> total_secondsr+r$r,) rr4rrrr@Z task_type<70> tool_namerir"rBr-rrrrK/s6<02>    <12><08><02>z!TaskExecutor._execute_single_taskc<00>sF<00>|<01>dd<02>}|<01>di<00>}i|<05>|<03>}|<02>||<06>IdH}d|||d<06>S)u执行动作任务rgrhriNT)r%rgrir")r1<00> execute_tool)rr4rrrpriZfull_parametersr"rrrrkXs<02>   <06>z!TaskExecutor._execute_action_taskc<00>sB<00>|<01>dd<02>}|<01>di<00>}|<00>||<03>IdH}d||t|<05><03><00>d<06>S)u执行条件任务r7rh<00>branchesNT)r%r7r"Zavailable_branches)r1<00>_evaluate_condition<6F>list<73>keys)rr4rrr7rrr]rrrrlos<02>  
<06>z$TaskExecutor._execute_condition_taskc<00>sN<00>|<01>dd<02>}|dkr|<00>||<03>IdHS|dkr!|<00>||<03>IdHSd|dd<08>S) u执行控制任务<E4BBBB> control_type<70>generalraN<>loopTu控制任务执行完成)r%rv<00>message)r1<00>_execute_iteration_control<6F>_execute_loop_control)rr4rrrvrrrrm<00>s<02> <06>z"TaskExecutor._execute_control_taskc<00>s<00>|<01>dd<02>}d|dd<05>S)u执行通用任务<E4BBBB> descriptionrhTu通用任务执行完成)r%r|ryr0)rr4rrr|rrrrn<00>s <02> <06>z"TaskExecutor._execute_general_taskrRc <00>s<><00><01><00><02>fdd<02><08><01>fdd<04>|D<00>}tj|ddi<01>IdH}g}t|<05>D]3\}}t|t<04>rD|<06>||<00>d<08>d t|<08>d
<EFBFBD>t<08> <09><00>
<EFBFBD>d <0B><03>q#|<06>||<00>d<08>|t<08> <09><00>
<EFBFBD>d <0B><03>q#|S) u并行执行多个任务c<00>s<00><01><01>|<00><02><00>IdHS)N)rK)r4)rrrrr<00> execute_task<73>s<02>z:TaskExecutor._execute_tasks_parallel.<locals>.execute_taskcsg|]}<01>|<01><01>qSrrr2)r}rrr5<00>sz8TaskExecutor._execute_tasks_parallel.<locals>.<listcomp><3E>return_exceptionsTNr<FrXr?) <0B>asyncio<69>gatherrG<00>
isinstancer+rLr1r,rr&rM) rrRrrZparallel_tasksrDZprocessed_resultsrOr"r)rr}rrrrT<00>s$<02>
  

<EFBFBD> 

<EFBFBD>z$TaskExecutor._execute_tasks_parallelcCsfg}g}|D] }|<04>d<01>dkr!|r|<02>d|d<04><02>g}|<02>|<04>q|<03>|<04>q|r1|<02>d|d<04><02>|S)u!将任务分组以便并行执行r/r6r)rQrR)r1rL)rr<00>groups<70> current_groupr4rrrrS<00>s$<08>  <08>z0TaskExecutor._group_tasks_for_parallel_executionrDc<00>s@<00>|<01>dg<00>}|s dSdd<04>|D<00>}|D] }||vrdSqdS)u检查任务依赖是否满足<E6BBA1> dependenciesTcSs$g|]}|d<00>dd<02>r|d<00>qS)r"r%Fr@r0)r3<00>rrrrr5<00>s$z4TaskExecutor._check_dependencies.<locals>.<listcomp>Fr0)rr4rDr<>Zcompleted_task_ids<64>deprrrrI<00>s<02> <02>z TaskExecutor._check_dependenciesr"cCsJ|<01>di<00>}|s|<02>dd<03>S|<03><01>D]\}}|<02>|<04>}||kr"dSqdS)u$检查任务是否满足成功条件<E69DA1>success_criteriar%FT)r1<00>items)rr4r"r<><00> criterionZexpected_value<75> actual_valuerrrrN<00>s  
<02>z$TaskExecutor._check_success_criteriar]r\cCs6|<01>dd<02>}|D]}|<04>dd<02>}||kr|SqdS)u根据条件结果选择分支r"rhr7Nr0)rr]r\Zcondition_value<75> branch_taskZbranch_conditionrrrrZs  <02>zTaskExecutor._select_branchrer`cCs<>|sdS|<02><00>D]6\}}|<01>|<03>}|durqt|t<03>r>|<04>d<03>dkr-||<04>d<05>kr,dSq|<04>d<03>dkr>||<04>d<05>kr>dSqdS)u检查迭代是否收敛FNr/Z less_than<61>valueZ greater_thanT)r<>r1r<><00>dict)rrer`r<><00> thresholdr<64>rrrrds 

<02><02>zTaskExecutor._check_convergencer7c<00>s:<00>d|vr|<02>dd<03>dkrdSdSd|vr|<02>dd<08>Sd S)
u评估条件表达式<E8BEBE> satisfaction<6F>satisfaction_scorergffffff<66>?<3F>high<67>low<6F>priority<74>medium<75>defaultr0)rr7rrrrrs$s <02> z TaskExecutor._evaluate_conditionc<00>s,<00>|<01>dd<02>}|<02>dd<04>}d||||kd<06>S)u执行迭代控制r^r_<00>current_iterationrT)r%r^r<><00>continuer0)rr4rr^r<>rrrrz1s<02>  <06>z'TaskExecutor._execute_iteration_controlc<00>s<00>|<01>dd<02>}d|dd<04>S)u执行循环控制<E68EA7>loop_conditionrhT)r%r<>r<>r0)rr4rr<>rrrr{=s <02> <06>z"TaskExecutor._execute_loop_controlcCs |j<00>|<01>S)u获取执行状态)rr1)rrrrr<00>get_execution_statusGs z!TaskExecutor.get_execution_statuscCs|jS)u获取所有执行记录)rrrrr<00>get_all_executionsKszTaskExecutor.get_all_executionsN)!<21>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rrrr,rr.r(r r rrrKrkrlrmrnrTrS<00>boolrIrNrrZrdrsrzr{r<>r<>rrrrrs<> <02><02>
<02>

<EFBFBD>.<02><02>
<02><02>

<EFBFBD>?<02><02>
<02><02>

<EFBFBD>&<02><02>
<02><02>

<EFBFBD>7<02><02>
<02><02>

<EFBFBD>8
<02><02>
<02>

<EFBFBD>)
<02><02>
<02>

<EFBFBD>
<02><02>
<02>

<EFBFBD>
<02><02>
<02>

<EFBFBD>
<02><02>
<02>

<EFBFBD><02><02>
<02>
<EFBFBD>*"*&6& . . 
r)r<><00>loggingr<00>typingrrrrr<00>json<6F> getLoggerr<72>r)rrrrr<00><module>s