Files
assist/src/agent/__pycache__/planner.cpython-311.pyc

143 lines
19 KiB
Plaintext
Raw Normal View History

2025-09-06 21:06:18 +08:00
<EFBFBD>
%<25><>h<<00><00><><00>dZddlZddlmZmZmZmZddlmZddlZddl m
Z
ej e <0C><00>Z Gd<07>d<08><00>ZdS) u9
任务规划器
负责制定执行计划和任务分解
<EFBFBD>N)<04>Dict<63>List<73>Any<6E>Optional)<01>datetime<6D>)<01>
QwenClientc <00><><00>eZdZdZd<02>Zdeeefdeeeefdeeefdeeeeffd<07>Z deeefdeeeffd<08>Z
d eeefdeeefdefd
<EFBFBD>Z deeefdeeeefdeeefdeeeeffd <0B>Z deeefdeeeefdeeefdeeeeffd <0C>Z deeefdeeeefdeeefdeeeeffd <0A>Zdeeefdeeeefdeeefdeeeeffd<0E>Zdeeeefdeeeeffd<10>Zdeeeefdeeeeffd<12>Zdeeefdeeeeffd<13>Zdeeeefdeeefdeeeeffd<15>Zdeeefdeeeeffd<17>Zdeeefdeeeeffd<18>Zdeeeefdeeeffd<19>ZdS)<1B> TaskPlanneru任务规划器c<00>l<00>t<00><00>|_|j|j|j|jd<01>|_dS)N)<04>
sequential<EFBFBD>parallel<65> conditional<61> iterative)r <00>
llm_client<EFBFBD>_create_sequential_plan<61>_create_parallel_plan<61>_create_conditional_plan<61>_create_iterative_plan<61>planning_strategies)<01>selfs <20>;C:\Users\jiezhao\Desktop\TSP_assistant\src\agent\planner.py<70>__init__zTaskPlanner.__init__s:<00><00>$<24>,<2C>,<2C><04><0F><1E>6<><1C>2<><1F>8<><1D>4<> $
<EFBFBD>$
<EFBFBD><04> <20> <20> <20><00>goal<61>available_tools<6C> constraints<74>returnc<00><00><>K<00> |<00>|<01><00><00>d{V<00><03>}|<00>||<01><00>}|j||||<03><00><00>d{V<00><03>}|<00>||<03><00><00>d{V<00><03>}t<00>dt |<07><00><00>d<03><03><00>|S#t$r)}t<00>d|<08><00><02><00>gcYd}~Sd}~wwxYw)u创建执行计划Nu创建计划成功,包含 u
个任务u创建计划失败: ) <09>_analyze_goal_complexity<74>_select_planning_strategyr<00>_optimize_plan<61>logger<65>info<66>len<65> Exception<6F>error) rrrr<00>
complexity<EFBFBD>strategy<67>plan<61>optimized_plan<61>es r<00> create_planzTaskPlanner.create_plans<00><00><00><00> <16>#<23><<3C><<3C>T<EFBFBD>B<>B<>B<>B<>B<>B<>B<>B<>J<EFBFBD><1C>5<>5<>j<EFBFBD>$<24>G<>G<>H<EFBFBD><<3C><14>1<>(<28>;<3B>D<EFBFBD>/<2F>S^<5E>_<>_<>_<>_<>_<>_<>_<>_<>D<EFBFBD>$(<28>#6<>#6<>t<EFBFBD>[<5B>#I<>#I<>I<>I<>I<>I<>I<>I<>N<EFBFBD> <12>K<EFBFBD>K<EFBFBD>V<>s<EFBFBD>><3E>7J<37>7J<37>V<>V<>V<> W<> W<> W<>!<21> !<21><><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>
Cc <00><00>:K<00>d|<01>dd<03><00><00>d|<01>dd<03><00><00>d|<01>di<00><00><00>d<08>}d d
d <0B>d |d <0B>g}|j<00>|d <0A><0E><00>}d|vrddd<12>S |dddd}ddl}|<06>d||j<00><00>}|r(t j|<07><00><00><00><00>}|Sddd<12>S#t$r,} t<00> d| <09><00><02><00>ddd<12>cYd} ~ Sd} ~ wwxYw)u分析目标复杂度uG
请分析以下目标的复杂度:
目标: <20> description<6F><00>
类型: <20>type<70>
上下文: <20>contextu

请从以下维度评估复杂度1-10分
1. 任务数量
2. 依赖关系复杂度
3. 所需工具数量
4. 时间要求
5. 资源需求
请以JSON格式返回分析结果。
<20>systemu?你是一个任务规划专家擅长分析任务复杂度。<E5BAA6><02>role<6C>content<6E>user<65>333333<33>?<3F><01> temperaturer'<00>r )<02>complexity_scorer)<00>choicesr<00>messager8N<>\{.*\}u解析复杂度分析失败: ) <0C>getr<00>chat_completion<6F>re<72>search<63>DOTALL<4C>json<6F>loads<64>groupr&r#r')
rr<00>prompt<70>messages<65>result<6C>response_contentrD<00>
json_match<EFBFBD>analysisr,s
rr z$TaskPlanner._analyze_goal_complexity8s<><00><00><00><00> <0C><16><18><18>-<2D><12>,<2C>,<2C> <0C> <0C><16><18><18>&<26>"<22>%<25>%<25>  <0C> <0C>
<19>H<EFBFBD>H<EFBFBD>Y<EFBFBD><02>+<2B>+<2B>  <0C> <0C> <0C><06>$<1E>*k<> l<> l<><1B><06> /<2F> /<2F>
<EFBFBD><08>
<16><1F>0<>0<><18>s<EFBFBD>0<>K<>K<><06> <12>f<EFBFBD> <1C> <1C>()<29>|<7C>D<>D<> D<> E<01>%<25>i<EFBFBD>0<><11>3<>I<EFBFBD>><3E>y<EFBFBD>I<> <1C> <15>I<EFBFBD>I<EFBFBD>I<EFBFBD><1B><19><19>9<EFBFBD>.><3E><02> <09>J<>J<>J<EFBFBD><19> I<01><1F>:<3A>j<EFBFBD>&6<>&6<>&8<>&8<>9<>9<><08><1F><0F>,-<2D><<3C>H<>H<>H<><48><18> E<01> E<01> E<01> <12>L<EFBFBD>L<EFBFBD><<3C><11><<3C><<3C> =<3D> =<3D> =<3D>()<29>|<7C>D<>D<> D<> D<> D<> D<> D<> D<><44><EFBFBD><EFBFBD><EFBFBD> E<01><><EFBFBD>s%<00>;A#C$<00>C$<00>$
D<03>.!D<03>D<03>Dr(c<00><><00>|<01>dd<02><00>}|<02>dd<04><00>}|dkrdS|dkr|dvrd Sd
Sd S) u选择规划策略r>r=r2<00>general<61>r <00>)rO<00>
monitoringrrr<00>rB)rr(rr><00> goal_types rr!z%TaskPlanner._select_planning_strategybs`<00><00>%<25>><3E>><3E>*<<3C>a<EFBFBD>@<40>@<40><18><18>H<EFBFBD>H<EFBFBD>V<EFBFBD>Y<EFBFBD>/<2F>/<2F> <09> <1B>q<EFBFBD> <20> <20><1F><<3C> <1D><11> "<22> "<22><18>6<>6<>6<>!<21>z<EFBFBD>$<24>}<7D><1E>;rc<00><00>~K<00>d|<01>dd<03><00><00>dd<05>|D<00><00><00>d<06>}ddd <09>d
|d <09>g}|j<00>|d <0B> <0C><00>}d |vr|<00>|<01><00>S |dddd}ddl}|<08>d||j<00><00>} | r;tj| <09> <00><00><00><00>}
|<00>
|
<EFBFBD><00>S|<00>|<01><00>S#t$r<} t<00> d| <0B><00><02><00>|<00>|<01><00>cYd} ~ Sd} ~ wwxYw)u创建顺序执行计划uV
请为以下目标创建一个顺序执行计划:
目标: r/r0u
可用工具: c<00>:<00>g|]}|<01>dd<01><00><00><02>S)<02>namer0rU)<02>.0<EFBFBD>tools r<00>
<listcomp>z7TaskPlanner._create_sequential_plan.<locals>.<listcomp>|s&<00><00>I<>I<>I<><14><04><08><08><16><12>,<2C>,<2C>I<>I<>Iru 
请将目标分解为具体的执行步骤,每个步骤包含:
1. 任务描述
2. 所需工具
3. 输入参数
4. 预期输出
5. 成功条件
请以JSON数组格式返回计划。
r5uB你是一个任务规划专家擅长创建顺序执行计划。r6r9r:r;r'r?rr@r8N<>\[.*\]u解析顺序计划失败: )rBrrC<00>_create_fallback_planrDrErFrGrHrI<00>_format_plan_tasksr&r#r'<00> rrrrrJrKrLrMrDrNr*r,s rrz#TaskPlanner._create_sequential_planqs<><00><00><00><00> <0C><16><18><18>-<2D><12>,<2C>,<2C> <0C> <0C>J<01>I<><1F>I<>I<>I<>  <0C> <0C> <0C><06>"<1E>*n<> o<> o<><1B><06> /<2F> /<2F>
<EFBFBD><08>
<16><1F>0<>0<><18>s<EFBFBD>0<>K<>K<><06> <12>f<EFBFBD> <1C> <1C><17>-<2D>-<2D>d<EFBFBD>3<>3<> 3<> 4<>%<25>i<EFBFBD>0<><11>3<>I<EFBFBD>><3E>y<EFBFBD>I<> <1C> <15>I<EFBFBD>I<EFBFBD>I<EFBFBD><1B><19><19>9<EFBFBD>.><3E><02> <09>J<>J<>J<EFBFBD><19> 8<><1B>z<EFBFBD>*<2A>"2<>"2<>"4<>"4<>5<>5<><04><1B>.<2E>.<2E>t<EFBFBD>4<>4<>4<><1B>1<>1<>$<24>7<>7<>7<><37><18> 4<> 4<> 4<> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><17>-<2D>-<2D>d<EFBFBD>3<>3<> 3<> 3<> 3<> 3<> 3<> 3<><33><EFBFBD><EFBFBD><EFBFBD> 4<><34><EFBFBD>s%<00>*A6C6<00>!C6<00>6
D<<03>1D7<03>1D<<03>7D<c<00><00>nK<00>|<00>|||<03><00><00>d{V<00><03>}|<00>|<04><00>}|S)u创建并行执行计划N)r<00>_group_parallel_tasks)rrrr<00>
base_tasks<EFBFBD>parallel_groupss rrz!TaskPlanner._create_parallel_plan<61>sL<00><00><00><00> <20>7<>7<><04>o<EFBFBD>{<7B>[<5B>[<5B>[<5B>[<5B>[<5B>[<5B>[<5B>[<5B>
<EFBFBD><1F>4<>4<>Z<EFBFBD>@<40>@<40><0F><1E>rc<00><00><>K<00>d|<01>dd<03><00><00>d|<01>di<00><00><00>d<06>}ddd <09>d
|d <09>g}|j<00>|d <0B> <0C><00>}d |vr|<00>|||<03><00><00>d{V<00><03>S |dddd}ddl}|<08>d||j<00><00>} | r;tj| <09> <00><00><00><00>}
|<00>
|
<EFBFBD><00>S|<00>|||<03><00><00>d{V<00><03>S#t$rD} t<00> d| <0B><00><02><00>|<00>|||<03><00><00>d{V<00><03>cYd} ~ Sd} ~ wwxYw)u创建条件执行计划uV
请为以下目标创建一个条件执行计划:
目标: r/r0r3r4u<>
计划应该包含:
1. 初始条件检查
2. 分支逻辑
3. 每个分支的具体任务
4. 合并条件
请以JSON格式返回计划。
r5uB你是一个任务规划专家擅长创建条件执行计划。r6r9r:r;r'Nr?rr@r8rAu解析条件计划失败: )rBrrCrrDrErFrGrHrI<00>_format_conditional_planr&r#r'r`s rrz$TaskPlanner._create_conditional_plan<61>s<><00><00><00><00>  <0C><16><18><18>-<2D><12>,<2C>,<2C>  <0C>  <0C><19>H<EFBFBD>H<EFBFBD>Y<EFBFBD><02>+<2B>+<2B>  <0C>  <0C>  <0C><06> <1E>*n<> o<> o<><1B><06> /<2F> /<2F>
<EFBFBD><08>
<16><1F>0<>0<><18>s<EFBFBD>0<>K<>K<><06> <12>f<EFBFBD> <1C> <1C><1D>5<>5<>d<EFBFBD>O<EFBFBD>[<5B>Y<>Y<>Y<>Y<>Y<>Y<>Y<>Y<> Y<> Z<01>%<25>i<EFBFBD>0<><11>3<>I<EFBFBD>><3E>y<EFBFBD>I<> <1C> <15>I<EFBFBD>I<EFBFBD>I<EFBFBD><1B><19><19>9<EFBFBD>.><3E><02> <09>J<>J<>J<EFBFBD><19> ^<01><1B>z<EFBFBD>*<2A>"2<>"2<>"4<>"4<>5<>5<><04><1B>4<>4<>T<EFBFBD>:<3A>:<3A>:<3A>!<21>9<>9<>$<24><0F>Q\<5C>]<5D>]<5D>]<5D>]<5D>]<5D>]<5D>]<5D>]<5D>]<5D><><18> Z<01> Z<01> Z<01> <12>L<EFBFBD>L<EFBFBD>9<>a<EFBFBD>9<>9<> :<3A> :<3A> :<3A><1D>5<>5<>d<EFBFBD>O<EFBFBD>[<5B>Y<>Y<>Y<>Y<>Y<>Y<>Y<>Y<> Y<> Y<> Y<> Y<> Y<> Y<><59><EFBFBD><EFBFBD><EFBFBD> Z<01><><EFBFBD>s%<00><A6D<00>3D<00>
E<03>9E<03>E<03>Ec<00><00><>K<00>|<00>|||<03><00><00>d{V<00><03>}ddd|<03>dd<06><00>|<01>di<00><00>|d<08>}|gS) u创建迭代执行计划N<E58892>iteration_control<6F>controlu 迭代控制<E68EA7>max_iterations<6E>
<00>success_criteria)<06>idr2r/rj<00>convergence_criteria<69>tasks)rrB)rrrr<00> base_planrhs rrz"TaskPlanner._create_iterative_plan<61>s{<00><00><00><00><1F>6<>6<>t<EFBFBD>_<EFBFBD>k<EFBFBD>Z<>Z<>Z<>Z<>Z<>Z<>Z<>Z<> <09>&<26><1D>)<29>)<29>o<EFBFBD>o<EFBFBD>.><3E><02>C<>C<>$(<28>H<EFBFBD>H<EFBFBD>-?<3F><12>$D<>$D<><1E> 
<EFBFBD>
<EFBFBD><19>"<22>"<22>"rroc<00><00>g}g}|D]j}|r2|d<00>d<02><00>|<04>d<02><00>kr|<03>|<04><00><00>L|r|<02>d|dd<05><03><00>|g}<03>k|r|<02>d|dd<05><03><00>|S)u-将任务分组为可并行执行的任务组rr2<00>parallel_groupr)r2ro<00>execution_mode<64>rB<00>append)rro<00>groups<70> current_group<75>tasks rrbz!TaskPlanner._group_parallel_tasks<6B>s<><00><00><13><06><1A> <0A><19> '<27> '<27>D<EFBFBD> <20> '<27>M<EFBFBD>!<21>$4<>$8<>$8<><16>$@<40>$@<40>D<EFBFBD>H<EFBFBD>H<EFBFBD>V<EFBFBD>DT<44>DT<44>$T<>$T<><1D>$<24>$<24>T<EFBFBD>*<2A>*<2A>*<2A>*<2A> <20><17><1A>M<EFBFBD>M<EFBFBD> 0<>!.<2E>*4<>#<16>#<16><17><17><17>
"&<26><06> <0A> <0A> <18> <0F> <12>M<EFBFBD>M<EFBFBD>(<28>&<26>",<2C><0E><0E> <0F> <0F> <0F> <16> r<00>raw_planc<00><><00>g}t|<01><00>D]<5D>\}}d|dz<00><00>|<04>dd<04><00>|<04>dd<06><00>|<04>dd<06><00>|<04>di<00><00>|<04>d d<06><00>|<04>d
i<00><00>|<04>d g<00><00>|<04>d d <0A><00>|<04>dd<0F><00>d<10>
}|<02>|<05><00><00><>|S)u格式化计划任务<E4BBBB>task_<6B>r2<00>actionr/r0r[<00>
parameters<EFBFBD>expected_outputrl<00> dependencies<65>priority<74><00>?<3F>timeout<75><)
rmr2r/r[r~rrlr<>r<>r<>)<03> enumeraterBru)rry<00>formatted_tasks<6B>irx<00>formatted_tasks rr_zTaskPlanner._format_plan_tasks s<><00><00><1C><0F> <20><18>*<2A>*<2A> 3<> 3<>G<EFBFBD>A<EFBFBD>t<EFBFBD>#<23>a<EFBFBD><01>c<EFBFBD>m<EFBFBD>m<EFBFBD><1C><08><08><16><18>2<>2<>#<23>x<EFBFBD>x<EFBFBD> <0A>r<EFBFBD>:<3A>:<3A><1C><08><08><16><12>,<2C>,<2C>"<22>h<EFBFBD>h<EFBFBD>|<7C>R<EFBFBD>8<>8<>#'<27>8<EFBFBD>8<EFBFBD>,=<3D>r<EFBFBD>#B<>#B<>$(<28>H<EFBFBD>H<EFBFBD>-?<3F><12>$D<>$D<> $<24><08><08><1E><12> <<3C> <<3C> <20>H<EFBFBD>H<EFBFBD>Z<EFBFBD><13>5<>5<><1F>8<EFBFBD>8<EFBFBD>I<EFBFBD>r<EFBFBD>2<>2<> <0E> <0E>N<EFBFBD> <1C> "<22> "<22>><3E> 2<> 2<> 2<> 2<><1E>rc<00>\<00>g}ddd|<01>dd<04><00>|<01>di<00><00>d<06>}|<02>|<03><00>|<01>di<00><00><00><00><00>D];\}}d|<04><00>dd |<04><00>||<00>|<05><00>d
<EFBFBD>}|<02>|<06><00><00><|S) u格式化条件计划<E8AEA1>condition_check<63> conditionu 条件检查r0<00>branches)rmr2r/r<>r<><00>branch_<68>branchu执行分支: )rmr2r/r<>ro)rBru<00>itemsr_)rryr<><00>condition_task<73> branch_name<6D> branch_tasks<6B> branch_tasks rrfz$TaskPlanner._format_conditional_plan!s<><00><00><1C><0F>$<24><1F>)<29>!<21><1C><1C>k<EFBFBD>2<EFBFBD>6<>6<> <20> <0C> <0C>Z<EFBFBD><12>4<>4<> 
<EFBFBD>
<EFBFBD><0E> <18><1E><1E>~<7E>.<2E>.<2E>.<2E>*2<><1C><1C>j<EFBFBD>"<22>)E<>)E<>)K<>)K<>)M<>)M<> 0<> 0<> %<25>K<EFBFBD><1C>-<2D> <0B>-<2D>-<2D> <20>=<3D> <0B>=<3D>=<3D>(<28><1D>0<>0<><1C>><3E>><3E> <0E><0E>K<EFBFBD> <1C> "<22> "<22>;<3B> /<2F> /<2F> /<2F> /<2F><1E>rr*c<00><00><>K<00>g}|D]<5D>}|<04>dd<02><00>|<02>dd<03><00>kr|<02>dd<03><00>|d<|<04>dd<05><00>|<02>dd<07><00>kr1|<00>|<04><00><00>d{V<00><03>}|<03>|<05><00><00><>|<03>|<04><00><00><>|S) u 优化计划r<E58892>r<>i,<00>resource_usager<00> memory_limiti<74>N)rB<00>_decompose_task<73>extendru)rr*rr+rx<00>subtaskss rr"zTaskPlanner._optimize_plan<s<><00><00><00><00><1B><0E><18> ,<2C> ,<2C>D<EFBFBD><13>x<EFBFBD>x<EFBFBD> <09>2<EFBFBD>&<26>&<26><1B><1F><1F><19>C<EFBFBD>)H<>)H<>H<>H<>"-<2D>/<2F>/<2F>)<29>S<EFBFBD>"A<>"A<><04>Y<EFBFBD><0F><14>x<EFBFBD>x<EFBFBD>(<28>!<21>,<2C>,<2C>{<7B><EFBFBD><EFBFBD>~<7E>t<EFBFBD>/T<>/T<>T<>T<>!%<25>!5<>!5<>d<EFBFBD>!;<3B>!;<3B>;<3B>;<3B>;<3B>;<3B>;<3B>;<3B><08><1E>%<25>%<25>h<EFBFBD>/<2F>/<2F>/<2F>/<2F><1E>%<25>%<25>d<EFBFBD>+<2B>+<2B>+<2B>+<2B><1D>rrxc <00><00>TK<00>d|<01>dd<03><00><00>d|<01>dd<03><00><00>d|<01>di<00><00><00>d<08>}d d
d <0B>d |d <0B>g}|j<00>|d <0A><0E><00>}d|vr|gS |dddd}ddl}|<06>d||j<00><00>}|r;t j|<07><00><00><00><00>}|<00> |<08><00>S|gS#t$r*} t<00> d| <09><00><02><00>|gcYd} ~ Sd} ~ wwxYw)u分解大任务为小任务uV
请将以下大任务分解为更小的子任务:
任务: r/r0r1r2u
参数: r~uu
请返回分解后的子任务列表,每个子任务应该是独立的、可执行的。
r5uN你是一个任务分解专家擅长将复杂任务分解为简单任务。r6r9r:r;r'r?rr@r8Nr]u任务分解失败: ) rBrrCrDrErFrGrHrIr_r&r#r')
rrxrJrKrLrMrDrNr<>r,s
rr<>zTaskPlanner._decompose_taskOs<><00><00><00><00> <0C><16><18><18>-<2D><12>,<2C>,<2C> <0C> <0C><16><18><18>&<26>"<22>%<25>%<25>  <0C> <0C>
<16><18><18>,<2C><02>+<2B>+<2B>  <0C> <0C> <0C><06><1E>*z<> {<7B> {<7B><1B><06> /<2F> /<2F>
<EFBFBD><08>
<16><1F>0<>0<><18>s<EFBFBD>0<>K<>K<><06> <12>f<EFBFBD> <1C> <1C><18>6<EFBFBD>M<EFBFBD> <1A>%<25>i<EFBFBD>0<><11>3<>I<EFBFBD>><3E>y<EFBFBD>I<> <1C> <15>I<EFBFBD>I<EFBFBD>I<EFBFBD><1B><19><19>9<EFBFBD>.><3E><02> <09>J<>J<>J<EFBFBD><19> <1E><1F>:<3A>j<EFBFBD>&6<>&6<>&8<>&8<>9<>9<><08><1B>.<2E>.<2E>x<EFBFBD>8<>8<>8<><1C>v<EFBFBD> <0A><><18> <1A> <1A> <1A> <12>L<EFBFBD>L<EFBFBD>3<><01>3<>3<> 4<> 4<> 4<><18>6<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD> <1A><><EFBFBD>s%<00>9A6C3<00>0C3<00>3
D'<03>=D"<03>D'<03>"D'c
<00>L<00>dd|<01>dd<04><00>dd|iddd id
d d <0C> gS) u创建备用计划<E8AEA1> fallback_taskr}r/u 执行目标<E79BAE>general_responseru 目标完成<E5AE8C>
completionTr<EFBFBD>r<>) rmr2r/r[r~rrlr<>r<>rU)rrs rr^z!TaskPlanner._create_fallback_planrsJ<00><00>"<22><1C><1F>8<EFBFBD>8<EFBFBD>M<EFBFBD>><3E>B<>B<>&<26>!<21>4<EFBFBD>.<2E>-<2D>!-<2D>t<EFBFBD> 4<><1B><19>

<EFBFBD>

<EFBFBD>
 <0B>
rc <00><><00>dggd<02>}|D]<5D>}|<03>d<03><00>s |d<00>d<05><00>d|d<|<03>d<08><00>s3|d <00>d
|<03>dd <0B><00><00>d <0C><03><00>|<03>d g<00><00>}d<0E>|D<00><00>}|D]@}||vr:|d<00>d
|<03>d<03><00><00>d|<06>d<10><05><00>d|d<<00>A<EFBFBD><41>|S)u验证计划的有效性T)<03>valid<69>issues<65>warningsrmr<>u任务缺少IDFr<46>r/r<>u任务 <20>unknownu 缺少描述r<E8BFB0>c<00>8<00>g|]}|<01>d<00><00><00><02>S)rmrU)rZ<00>ts rr\z-TaskPlanner.validate_plan.<locals>.<listcomp><3E>s"<00><00>2<>2<>2<><01><01><05><05>d<EFBFBD> <0B> <0B>2<>2<>2ru 的依赖 u
不存在rt)rr*<00>validation_resultrxr<><00>task_ids<64>deps r<00> validate_planzTaskPlanner.validate_plan<61>s=<00><00><1A><18><1A>
<EFBFBD>
<EFBFBD><19> <19> 7<> 7<>D<EFBFBD><17>8<EFBFBD>8<EFBFBD>D<EFBFBD>><3E>><3E> 3<>!<21>(<28>+<2B>2<>2<>3C<33>D<>D<>D<>-2<>!<21>'<27>*<2A><17>8<EFBFBD>8<EFBFBD>M<EFBFBD>*<2A>*<2A> i<01>!<21>*<2A>-<2D>4<>4<>5g<35>t<EFBFBD>x<EFBFBD>x<EFBFBD><04>i<EFBFBD>?X<>?X<>5g<35>5g<35>5g<35>h<>h<>h<> <20>8<EFBFBD>8<EFBFBD>N<EFBFBD>B<EFBFBD>7<>7<>L<EFBFBD>2<>2<>T<EFBFBD>2<>2<>2<>H<EFBFBD>#<23> 7<> 7<><03><16>h<EFBFBD>&<26>&<26>%<25>h<EFBFBD>/<2F>6<>6<>7k<37><14><18><18>$<24><1E><1E>7k<37>7k<37>\_<>7k<37>7k<37>7k<37>l<>l<>l<>16<31>%<25>g<EFBFBD>.<2E><> 7<>
!<21> rN)<17>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rr<00>strrrr-r r!rrrrrbr_rfr"r<>r^r<><00>rrr r sH<00><00><00><00><00><00><19><19>
<EFBFBD>
<EFBFBD>
<EFBFBD><16><12>3<EFBFBD><03>8<EFBFBD>n<EFBFBD><16><1E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>-<2D><16><1A>#<23>s<EFBFBD>(<28>^<5E> <16>
<0E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> <1D> <16><16><16><16>6(E<01>4<EFBFBD><03>S<EFBFBD><08>><3E>(E<01>d<EFBFBD>3<EFBFBD>PS<50>8<EFBFBD>n<EFBFBD>(E<01>(E<01>(E<01>(E<01>T <1F>D<EFBFBD><13>c<EFBFBD><18>N<EFBFBD> <1F>$<24>s<EFBFBD>TW<54>x<EFBFBD>.<2E> <1F>]`<60> <1F> <1F> <1F> <1F>,4<><12>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>,4<><1E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>-<2D>,4<><1A>#<23>s<EFBFBD>(<28>^<5E> ,4<>
<0E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> <1D> ,4<>,4<>,4<>,4<>\ <1F><12>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> <1F><1E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>-<2D> <1F><1A>#<23>s<EFBFBD>(<28>^<5E> <1F>
<0E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> <1D> <1F> <1F> <1F> <1F>+Z<01><12>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>+Z<01><1E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>-<2D>+Z<01><1A>#<23>s<EFBFBD>(<28>^<5E> +Z<01>
<0E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> <1D> +Z<01>+Z<01>+Z<01>+Z<01>Z#<23><12>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>#<23><1E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>-<2D>#<23><1A>#<23>s<EFBFBD>(<28>^<5E> #<23>
<0E>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD> <1D> #<23>#<23>#<23>#<23>,<16>4<EFBFBD><04>S<EFBFBD>#<23>X<EFBFBD><0E>+?<3F><16>D<EFBFBD><14>c<EFBFBD>SV<53>h<EFBFBD><1E>DX<44><16><16><16><16>6<1F>4<EFBFBD><04>S<EFBFBD>#<23>X<EFBFBD><0E>+?<3F><1F>D<EFBFBD><14>c<EFBFBD>SV<53>h<EFBFBD><1E>DX<44><1F><1F><1F><1F>*<1F><14>c<EFBFBD>3<EFBFBD>h<EFBFBD><1E><1F>D<EFBFBD><14>c<EFBFBD>SV<53>h<EFBFBD><1E>DX<44><1F><1F><1F><1F>6<1E><14>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>)=<3D><1E>D<EFBFBD>QT<51>VY<56>QY<51>N<EFBFBD><1E>_c<5F>dh<64>il<69>nq<6E>iq<69>dr<64>_s<5F><1E><1E><1E><1E>&!<1A>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>!<1A>T<EFBFBD>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>=Q<>!<1A>!<1A>!<1A>!<1A>F  <0B>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>  <0B>T<EFBFBD>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>=Q<>  <0B>  <0B>  <0B>  <0B>!<21>$<24>t<EFBFBD>C<EFBFBD><13>H<EFBFBD>~<7E>"6<>!<21>4<EFBFBD><03>S<EFBFBD><08>><3E>!<21>!<21>!<21>!<21>!<21>!rr )r<><00>logging<6E>typingrrrrrrG<00>core.llm_clientr <00> getLoggerr<72>r#r r<>rr<00><module>r<>s<><00><01><04><04>
<0F><0E><0E><0E>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C><1D><1D><1D><1D><1D><1D> <0B> <0B> <0B> <0B>(<28>(<28>(<28>(<28>(<28>(<28> <1A><17> <1A>8<EFBFBD> $<24> $<24><06>H!<21>H!<21>H!<21>H!<21>H!<21>H!<21>H!<21>H!<21>H!<21>H!r