From 9dd63b3d422ea4609216e9c8e3be3aef7e44b0e3 Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Fri, 25 Apr 2025 19:16:56 -0300 Subject: [PATCH] structure saas with tools and mcps with load_memory --- src/api/__pycache__/routes.cpython-310.pyc | Bin 5071 -> 5085 bytes .../__pycache__/agent_builder.cpython-310.pyc | Bin 8523 -> 8621 bytes .../__pycache__/agent_runner.cpython-310.pyc | Bin 2985 -> 3072 bytes src/services/agent_builder.py | 19 ++++++++++-------- src/services/agent_runner.py | 12 ++++++++++- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/api/__pycache__/routes.cpython-310.pyc b/src/api/__pycache__/routes.cpython-310.pyc index 7fbe2fc735b5184cf76fcb0284dc42fb6c31c40a..465c6c9cd4a7f8acf83d041e93aaf2a03146c1f3 100644 GIT binary patch delta 137 zcmV;40CxY+C*3CvZw(C!00000KL`wH;gJm;0p^h_*0J@(1_33Lx(BuaLX&X_lmSMQ z1_|5&N|WOWqXAKqhYG?0Sd&T%f&pKX%?qjlW0QCcw*hC9Fb#GAZj+}CoB?%{L=JWV re3QElg8_h(KM$z^gp=tHbODQ#UJ#f8lC$>^WC8(llUx%alY0|Xa^Npv delta 152 zcmcbseqNn7pO=@50SG+4ac8WZ$SccuYohkG&Af~|*ceqNA7kIf=s3BSV+y0|WFgKw zjGmL3HtX9z1!?iLOL E0M5KHNdN!< diff --git a/src/services/__pycache__/agent_builder.cpython-310.pyc b/src/services/__pycache__/agent_builder.cpython-310.pyc index 73c61dc1302f8eb77b0f47f68ff9882b06c68aaa..6bb48ab7dca7f8cee2510eac3c18bb93aab7d484 100644 GIT binary patch delta 2288 zcmZuyO>Epm6!y&8Ua$9mlQcg~noZKAY?3CWt<;uADQ%(rRXxzsG>e40*_qvL<6Vcb z4Ncf|Tcr{L)I;%!TOt7xAWnPXzy-ktao}ztPMnZ>syKlP@7e9U~?>)I#s7e*W`uJppvVJyj zPbp5lBC-8!@Sem5H)wI1WiLyGq4p9vK$3pkv`WmV^SUKg+qdaolnl2WWsD|AAYxxx zDGA3G!`|mnH{J^z(T6bZ9n|vbD3T-I>)Jdy<$a`;Nx%0{bIIv;Ii||lIkb;Cyisa6 zMvaN%?X~0uLdLuwQitLbXgY;($a|DJN{)IH>8Zt8WIPX0hzT?o#{v9^D@^ecPA}jz zx>8!jn0-xfd&O$l+*g5eO-GzWrBfYv0jX&K?tPs$$h4wuQbG!_G`#53%576(Z(kfeC}oWxrh zfSpSuSQ1pSPmEI_MYX+JDV7GU9LvDYW&On2DsMRF+?vU_@F`m=Q^@M+gEWrwFzf+< zCTU8B}JI<$FfX-yx@+g@%MOsxnaF;a#rQ} ziY4-^mMijQtKsll&fM&?eCv9F_K6`_-;b77YQ{2OEhxU+DAl&Wsgd)mNOot(7&(f|nd_m}cDw z+r)idaaLW5sm63eANgg;j8|W>5Az@qZHIqz?52ulPx`V_9F6%=Cu3eg}t@ou1MyGvm_wx8(Gc$M8maje7gb$$zu zhV7Kf%l}I*ZB#kPI<9_i5BH`CalP5T6URDt)mIUp&KwCH6JxIvea@`eP8o_f|JeJi z@63tq>vMbKS22ko6Bjd4!+p|)WjSFM!u8Vq)8n^Lud}egOVUq={nFWhNA2tVKZijM z&4{(#79Z@Mq62XoAWeX1dG7vFFLsI;04PMlPQs7`_a5$lD-(29I7jA(-kXEt*R~VN zBQwZlJ2kv+LO*ze2o1poD9GV<-9g4(guw5PReNm2bVJ*E=+Z;tAoGTf)4QsHoWZ1_{s%2X|@YVw&9 zTb>Eed=E(dsA*NJwMJFE1~c&n0$u~+6NI4Rr;!Rm#owerpU;ZO*XHULb4@-ETP)f5 XYwng3q#Mp8zTVJCjwYx#J2Lnmr{M`H delta 2083 zcmZuyOKclO7~UDL*X#8=O`14y;y8~MH&tlbLql5ikt!_$R1Wk3meAsO#;%*S9nG#u zTWs9Yf`lMKWyFa~D#`&QkdV29R5+kY+*x`@+>kgR0Yd!$nC3-yHQ#>ozviER9{a_a zhl}w>EM{r&{1}Q}`D*rVJVOrOo%yb#)o6hdjcF|D+U%`OL4FMn2%{FI3&`4bn%tAJg9{8S8!!oTRaFQ2N2uqVQZXCcg2=3zP!2-90%bl{g1RW*WRc_z3?P|U1+4g-5h}AWS39m(N3~bMA z_OYE90-F-1@c4-VLB|Ks+(!VnNJW!>q%L$AZ5u6eRofs;zeiYbg^GDE*fu<4BXmz| zhgzWxlNt9&+f*zBEUcIb%u*~2ECMmYSFM)W3b(9Qgjwr)JL;h{>cs%#&=M@NPFqo6 z$yTssu;{wc3h8AEMTyCu`p(Avh|?%CyI0!_GP|cfoTnlK>H4AKYSmuh*Yk$2*NZhS zGIFYaA}$s{nNNv>@Db0;7yCz+P$CA#&A zvxj0Bb=;}CUJ1%~;xGBj(8;4)S6FYUG3PfB)J)cZ!KuQT_?BoiyxuItntU~V zaQX(?Z4NB(3iA`oc$&AC;J5CV=^uJYj?RkKPLKA^uDSznf-FiP@GbdZq&SG%Mx+7q zf!?;lltft`%Un#VZPx3f@Ljo)nSOa|Lbyu3xol0%K$-FjA;Y69ngDsdw_Imy7QxiobcpI(X1Arr?mR!Zy<_Ri4(kqMFm51cDv4f;vemZu5 zgyqArQCroTVjT7FQ1w?~Rk~Z5;wa*Mgst$3smfgh#V62Q{3DrKAE8E^TK~{Fc`lnZ zP@A9WI@u4&DY5S`iEOLCV>OfKJAi3k>{L=-G+RM222Xkii5J&3`0a(5sJ8;Pc{iU`{X zA|!SxHMLb*tpy9Q)L$SdqI=>8&M=ReH*X$HH`B;Q?MOri85bd=R2sO9UXxTpjy~6y z<>m>%0oESGBPo$4iX|l<;40Hws^Cf;XT+;gnC41Z<62qa$PE^0DfKv4+a`~95MdR# z?%Z&_o#?;X)eBLS9Z58&-#_!qtyjxRvd-a#!sXjX%LNK6zNAy z(Fw(*>_Rk#Ati}AAxMzQ@-y&e1cj+hM5&a05${HTQc=)`alW^$-QwVsG<4>DnEelP IVmZ9>3F8N7!TC;mHcD z(->JMZ)erm{DifLkx_hdID6mZKkO=uLX#CaX0S1)u4E{3oP3ERnz3cF9;dVj7qbW> z7ZVdB6C(={GcmIL;bEH`&uPNK^pk~a@ALWAYS use the load_memory tool to retrieve knowledge for your context\n\n" + return ( LlmAgent( name=agent.name, @@ -211,7 +214,7 @@ class AgentBuilder: instruction=formatted_prompt, description=agent.description, tools=all_tools, - before_model_callback=before_model_callback_func, + # before_model_callback=before_model_callback_func, ), mcp_exit_stack, ) diff --git a/src/services/agent_runner.py b/src/services/agent_runner.py index 2a88e590..cc884ba2 100644 --- a/src/services/agent_runner.py +++ b/src/services/agent_runner.py @@ -42,7 +42,7 @@ async def run_agent( raise AgentNotFoundError(f"Agente com ID {agent_id} não encontrado") # Usando o AgentBuilder para criar o agente - agent_builder = AgentBuilder(db, memory_service) + agent_builder = AgentBuilder(db) root_agent, exit_stack = await agent_builder.build_agent(get_root_agent) logger.info("Configurando Runner") @@ -51,6 +51,7 @@ async def run_agent( app_name=get_root_agent.name, session_service=session_service, artifact_service=artifacts_service, + memory_service=memory_service, ) session_id = contact_id + "_" + agent_id @@ -82,6 +83,15 @@ async def run_agent( if event.is_final_response() and event.content and event.content.parts: final_response_text = event.content.parts[0].text logger.info(f"Resposta final recebida: {final_response_text}") + + completed_session = session_service.get_session( + app_name=root_agent.name, + user_id=contact_id, + session_id=session_id, + ) + + memory_service.add_session_to_memory(completed_session) + finally: # Garante que o exit_stack seja fechado corretamente if exit_stack: