这个模板模拟了现代 LLM Agent 架构包含Planner任务规划Memory短期 长期Tool 使用Executor执行Reflection自我反思Multi-step loop多轮推理Agent 状态管理整体结构接近很多 GitHub 项目例如LangChainAutoGPTMetaGPTMicrosoft AutoGen复杂 Agent 系统模板约200行 Complex Agent System Template Architecture: User - Planner - Executor - Tools - Memory - Reflection - Loop fromdataclassesimportdataclass,fieldfromtypingimportList,Dict,Any,Callableimportjsonimporttimeimportrandom# # Data Structures# dataclassclassTask:description:strstatus:strpendingdataclassclassAgentState:goal:strtasks:List[Task]field(default_factorylist)history:List[str]field(default_factorylist)reflections:List[str]field(default_factorylist)step:int0# # Memory System# classMemory:def__init__(self):self.short_term[]self.long_term[]defadd_short(self,message):self.short_term.append(message)defadd_long(self,memory):self.long_term.append(memory)defretrieve(self,query):results[]forminself.long_term:ifquery.lower()inm.lower():results.append(m)returnresults# # Tool System# classToolBox:def__init__(self):self.tools:Dict[str,Callable]{}defregister(self,name,func):self.tools[name]funcdefrun(self,name,*args,**kwargs):ifnamenotinself.tools:raiseException(fTool{name}not found)returnself.tools[name](*args,**kwargs)# Example Toolsdefweb_search(query):returnfFake search results about{query}defcalculator(expr):try:returneval(expr)except:returnerrordefsave_file(text):filenamefresult_{int(time.time())}.txtwithopen(filename,w)asf:f.write(text)returnfilename# # Planner# classPlanner:defcreate_plan(self,goal)-List[Task]:# fake planning logicsteps[fResearch about{goal},fAnalyze information about{goal},fGenerate final report about{goal}]return[Task(s)forsinsteps]# # Executor# classExecutor:def__init__(self,toolbox:ToolBox,memory:Memory):self.toolboxtoolbox self.memorymemorydefexecute(self,task:Task):resultifResearchintask.description:resultself.toolbox.run(search,task.description)elifAnalyzeintask.description:resultfAnalysis:{random.randint(1,100)}insights discoveredelifGenerateintask.description:resultFinal report generatedelse:resultUnknown taskself.memory.add_short(result)returnresult# # Reflection System# classReflection:defreflect(self,state:AgentState):iflen(state.history)0:returnNonelaststate.history[-1]iferrorinlast.lower():reflectionNeed to adjust strategyelse:reflectionTask executed successfullystate.reflections.append(reflection)returnreflection# # Agent Core# classAgent:def__init__(self):self.memoryMemory()self.toolboxToolBox()self.toolbox.register(search,web_search)self.toolbox.register(calc,calculator)self.toolbox.register(save,save_file)self.plannerPlanner()self.executorExecutor(self.toolbox,self.memory)self.reflectionReflection()defrun(self,goal):stateAgentState(goalgoal)# Planningstate.tasksself.planner.create_plan(goal)print(Plan created:)fortinstate.tasks:print(-,t.description)# Execution Loopwhilestate.steplen(state.tasks):taskstate.tasks[state.step]print(f\nStep{state.step1}:{task.description})resultself.executor.execute(task)print(Result:,result)state.history.append(result)task.statusdonereflectionself.reflection.reflect(state)ifreflection:print(Reflection:,reflection)state.step1print(\nAgent finished goal)returnstate# # Example Run# if__name____main__:agentAgent()goalAI Agent architecturesstateagent.run(goal)print(\nFinal reflections:)forrinstate.reflections:print(-,r)这个 Agent 架构包含的关键设计1 Planner负责任务分解Goal ↓ Task1 Task2 Task3类似BabyAGIAutoGPT2 Memory两个层级Short-term Long-term真实系统一般用Vector DBRAG常见组件FAISSChroma3 Tool UseAgent核心能力Agent - Tool例子search() calculator() file save()类似LangChain Tool system4 ReflectionAgent自我改进result - critique - improve类似论文Reflexion AgentsSelf-Refine5 Agent Loop经典 Agent 执行循环while not done: plan act observe reflect类似架构Microsoft AutoGenCrewAI如果把这个模板升级到真实 LLM Agent需要替换3个地方Planner → LLMplanllm(break goal into steps)Executor → LLM Tool Callactionllm(choose tool)Reflection → LLM Critiquereflectionllm(analyze failure)完整真实 Agent 架构USER │ ▼ Planner (LLM) │ ▼ Task Queue │ ▼ Executor Agent / | \ Tools Memory Web │ │ ▼ ▼ Result - Reflection │ ▼ Loop