
Iyini i-miniEvoAgent?
i-miniEvoAgent iwuhlaka oluncane lwe-Python lokufunda ukuthi ama-agent asekelwe kuma-LLM akhiwa futhi athuthukiswa kanjani. Igqugquzelwe yi-EvoAgentX, igcina imiqondo eyinhloko yokusebenza kwama-agent, ukubiza amathuluzi, ukuhlola, ukubhalwa kabusha kwama-prompt, kanye nokuzithuthukisa, kodwa isusa ubunzima bohlaka olukhulu lwama-agent.
Iphakheji okwamanje ibizwa ngokuthi evo_repro. Idizayini yayo encane eyenziwe ngenhloso yenza indlela ngayinye ibe lula ukuyifunda, ukuyihlola, nokuyinweba. Esikhundleni sokuhlinzeka ngamagrafu okuhamba komsebenzi, inkumbulo, abahleli ababonakalayo, ama-adapter ama-benchmark, noma uhlelo olukhulu lwamathuluzi, igxila ku-agent esobala yesenzo esisodwa kanye nomjikelezo wokuthuthukisa i-prompt.
Indlela uhlaka olusebenza ngayo
Uhlelo lwe-miniEvoAgent lwakhiwa izingxenye ezimbalwa ezigxile:
- PromptTemplate: Ifaka okokufaka komsebenzi ku-prompt template.
- Action: Ibiza i-LLM, ingenza ngokuzikhethela ukusetshenziswa kwamathuluzi emijikelezweni eminingi, bese ihlaziya impendulo yokugcina.
- Agent: Ihlanganisa isenzo bese ibuyisa umlayezo ohlelekile.
- Evaluator functions: Zikala izibikezelo ze-QA ngokufanisa ngqo, i-F1 esezingeni lamathokheni, kanye nokunemba.
- PromptRewriter: Isebenzisa i-optimizer LLM ukuphakamisa i-prompt ebuyekeziwe kusetshenziswa izibonelo zempendulo eziqondile.
- PromptSelector: Iqhathanisa i-prompt yomzali nekhandidethi layo kusethi efanayo yokuthuthukisa futhi igcine leyo esebenza kangcono.
- evolve: Iphinda ukusebenza kokuqeqesha, ukwenziwa kwempendulo, ukubhalwa kabusha, ukuhlola, nokukhetha.
Izici ezibalulekile
- Isakhiwo esincane, esihlolisisekayo se-agent yesenzo esisodwa.
- I-adapter ye-LLM ehambisana ne-OpenAI elungiswa ngokusebenzisa ama-environment variable noma ifayela lendawo le-
.env. - Amathuluzi omsebenzi asesitayeleni se-OpenAI anokusetshenziswa kwamathuluzi emijikelezweni eminingi.
- Ukubhalwa kabusha kwama-prompt okuqhutshwa yimpendulo kusetshenziswa i-optimizer LLM.
- Ukukhetha kusethi yokuthuthukisa okwamukela ikhandidethi kuphela uma lithuthukisa amaphuzu.
- Imikhondo ye-evolution equkethe ukusebenza kokuqeqesha, okokufaka kokubhalwa kabusha, amaphuzu okuthuthukisa, nezinqumo zokukhetha.
- Ama-LLM mbumbulu anqunyelwe ukuhlola ukuziphatha kohlaka ngaphandle kokubiza ama-API akude.
Faka i-miniEvoAgent
Izidingo
Sebenzisa i-Python 3.10 noma entsha. Imiyalo elandelayo ye-PowerShell ingena ku-repository, idale i-virtual environment, iyisebenzise, ibuyekeze i-pip, bese ifaka iphakheji ngemodi ehlelekayo:
cd D:\Projects\RSIProject\student-project\Evo-repro
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install -e .Ukufaka ngemodi ehlelekayo kuyasiza lapho ufunda noma uguqula ikhodi yomthombo ngoba izinguquko zephakheji yendawo zitholakala ngokushesha ku-Python environment yakho.
Lungisa i-LLM ehambisana ne-OpenAI
I-adapter ezenzakalelayo ye-OpenAILLM ifunda izilungiselelo zayo kuma-environment variable noma kufayela lendawo le-.env. Ku-PowerShell, setha ukhiye we-API nemodeli kanje:
$env:OPENAI_API_KEY="your_api_key"
$env:OPENAI_MODEL="gpt-4o-mini"Uma usebenzisa enye isevisi ehambisana ne-OpenAI, setha i-endpoint yayo:
$env:OPENAI_BASE_URL="https://your-compatible-endpoint/v1"Ngenye indlela, kopisha .env.example uyibeke ku-.env bese wengeza amanani afanayo okumisa lapho.
Yakha i-agent eyisisekelo yokuphendula imibuzo
I-agent eyisisekelo idinga i-LLM, i-prompt template, i-output parser, kanye nesenzo. I-agent ibe isiveza lezi zingxenye ngokusebenzisa isixhumi esibonakalayo esilula sokusebenza.
from evo_repro import Action, Agent, OpenAILLM, PromptTemplate, TextOutputParser
llm = OpenAILLM()
action = Action(
name="answer_question",
prompt_template=PromptTemplate(
template="Answer the following question:\n\n{question}"
),
llm=llm,
output_parser=TextOutputParser(),
)
agent = Agent(
name="qa_agent",
description="Answers a single user question.",
action=action,
)
message = agent.execute({
"question": "What is Retrieval-Augmented Generation?"
})
print(message.content)Ukhiye othi question onikezwe ku-agent.execute uhambisana nesikhala esithi {question} ku-template. Isenzo sakha i-prompt, siyithumele ku-LLM emisiwe, sihlaziye umbhalo obuyisiwe, bese sigoqa umphumela ube umlayezo ohlelekile.
Ungasebenzisa nesibonelo esifakiwe:
python examples\simple_agent.pyEngeza ithuluzi le-Python elibizwayo
Amathuluzi e-miniEvoAgent ayizingubo ezincane ezakhelwe phezu kwemisebenzi ye-Python. Ithuluzi ngalinye linikeza i-JSON schema engasetshenziswa yimodeli ekubizeni umsebenzi futhi libuyise i-ToolResult ehlelekile.
Iphakheji ihlanganisa i-get_word_length_tool, engaxhunywa esenzweni ngokusebenzisa i-agumenti yayo ethi tools:
from evo_repro import Action, Agent, OpenAILLM, PromptTemplate, TextOutputParser
from evo_repro import get_word_length_tool
agent = Agent(
name="tool_agent",
description="Answers a question and can use tools.",
action=Action(
name="answer_with_tools",
prompt_template=PromptTemplate(
template=(
"Answer the following question. "
"Use tools when useful:\n\n{question}"
)
),
llm=OpenAILLM(),
output_parser=TextOutputParser(),
tools=[get_word_length_tool],
),
)
message = agent.execute({
"question": 'How many characters are in "retrieval"?'
})
print(message.content)
print(message.metadata["tool_results"])Uma i-LLM icela umsebenzi osekelwayo, isenzo siyawusebenzisa bese sibuyisela umphumela wethuluzi engxoxweni. Isenzo sisekela imijikelezo eminingi yale nqubo ngaphambi kokuhlaziya okukhiphayo kokugcina kwemodeli. Amarekhodi okusetshenziswa kwamathuluzi ayatholakala nge-message.metadata["tool_results"].
Qalisa isibonelo sethuluzi esifakiwe ngomyalo olandelayo:
python examples\tool_agent.pyQonda ukuziphendukela kwemvelo kwe-prompt
Uhlelo lokuziphendukela kwemvelo luzithuthukisa i-prompt ngomjikelezo olawulwayo wempendulo nokuhlola:
- Qalisa i-prompt yamanje ezibonelweni zokuqeqesha.
- Guqula izibikezelo, amalebula alindelekile, namamethrikhi okuhlola kube izibonelo zempendulo.
- Celisa i-
PromptRewriteresekelwa yi-optimizer LLM ukuthi ikhiqize i-prompt eyodwa engenele. - Hlola kokubili i-prompt yomzali ne-prompt engenele kusethi efanayo yokuthuthukisa.
- Sebenzisa i-
PromptSelectorukuze ugcine i-prompt engcono. - Phinda inqubo inani lezizukulwane elilungiselelwe.
Sebenzisa i-evolve_once(...) uma ufuna ukusebenzisa isizukulwane esisodwa. Ibuyisa i-EvolutionRoundTrace. Sebenzisa i-evolve(...) ukuze usebenzise izizukulwane eziningi futhi uthole kokubili i-prompt yokugcina nomlando ophelele.
Hlola ukuziphendukela kwemvelo ngaphandle kwemodeli ekude
Indawo yokugcina ikhodi ihlanganisa isibonelo sokuhlola esinqumayo esisebenzisa ukuziphatha mbumbulu kwe-LLM:
python examples\evolution_audit.pyOkukhiphayo kubonisa i-prompt yomzali yesizukulwane ngasinye, amarekhodi okuqeqesha, okokufaka kokubhalwa kabusha, i-prompt engenele, ukuqhathaniswa kwesethi yokuthuthukisa, kanye nesinqumo sokwamukela noma sokwenqaba. Lokhu kwenza kube nokwenzeka ukuhlola inqubo yokuthuthukisa esikhundleni sokuphatha ukuthuthukiswa kwe-prompt njengesenzo esifihliwe.
Hlola izibikezelo ze-QA
Abahloli abakhelwe ngaphakathi banikeza amamethrikhi amathathu e-QA alula ngamabomu:
- Ukufana okuphelele: Ihlola ukuthi isibikezelo siyahambisana yini nempendulo elindelekile ngokunembile ngaphansi kwendlela yokuqhathanisa yomhloli.
- Token-level F1: Ikala ukugqagqana kwamathokheni phakathi kwesibikezelo nempendulo elindelekile.
- Ukunemba: Ibika ingxenye yezibikezelo eziqondile.
Lawa mamethrikhi aklanyelwe ukuqinisekisa nokubonisa umjikelezo wokuziphendukela kwemvelo. Amanothi ephrojekthi athi kamuva angashintshwa ngabahloli abafanele ibhenchimakhi noma umsebenzi othile.
Qalisa isethi yezivivinyo
Sebenzisa zonke izivivinyo usuka empandeni yendawo yokugcina ikhodi:
python -m pytestIsethi yezivivinyo egxilile ihlanganisa ama-agent, amathuluzi, nokuziphatha kokuziphendukela kwemvelo. Kusetshenziswa ama-LLM mbumbulu lapho kungenzeka khona, ngakho iningi lomqondo wohlaka lingaqinisekiswa ngaphandle kokhiye we-API noma ucingo oluya kumodeli ekude.
Amathiphu athuthukile
Sebenzisa izivivinyo ezinqumayo ngaphambi kokuhlola bukhoma
Qala ngezibonelo nezivivinyo ze-LLM mbumbulu lapho ushintsha ukukhethwa kwe-prompt, ukuphathwa kwamathuluzi, noma umqondo wokuziphendukela kwemvelo. Okukhiphayo okunqumayo kwenza ukwehluleka kuphindaphindeke futhi kusize ukuhlukanisa amaphutha ohlaka ekushintshashintsheni kwezimpendulo zemodeli bukhoma.
Hlola ama-trace kuzo zonke izizukulwane
Ungahloli ukusebenza komjikelezo wokuziphendukela kwemvelo usebenzisa i-prompt yokugcina kuphela. Buyekeza ukusetshenziswa kokuqeqesha okurekhodiwe, impendulo enikezwe umbhali kabusha, i-prompt engenele, amaphuzu okuthuthukisa, kanye nesinqumo sokukhetha. Lawa marekhodi aveza ukuthi kungani i-prompt engenele yamukelwe noma yenqatshwa.
Gcina izindima zokuqeqesha nezokuthuthukisa zihlukile
Inqubo yokuziphendukela kwemvelo idala impendulo yokubhalwa kabusha ezibonelweni zokuqeqesha kodwa iqhathanisa umzali nomngeneli kusethi efanayo yokuthuthukisa. Gcina lokhu kuhlukaniswa lapho ulungiselela ukuhlolwa ukuze ukukhethwa kulandele inqubo ehlosiwe yohlaka.
Hlola imiphumela yamathuluzi ehlelekile
Kuma-agent anikwe amandla amathuluzi, hlola i-message.metadata["tool_results"] kanye nombhalo wokugcina. Lokhu kusiza ukuqinisekisa ukuthi imodeli ikhethe ithuluzi yini, ukuthi ukusetshenziswa kwalo kuphumelele yini, nokuthi yimuphi umphumela ohlelekile obuyisiwe.
Sebenzisa isiphetho sangokwezifiso esihambisanayo lapho kudingeka
Isilungiselelo se-OPENAI_BASE_URL sivumela i-OpenAILLM ukuthi iqondise isiphetho esihambisana ne-OpenAI. Qinisekisa ukuthi ukhiye we-API nemodeli ekhethiwe kuyahambisana nezimfuneko zaleso siphetho.
Qonda ububanzi bamanje bephrojekthi
i-miniEvoAgent incane ngamabomu kune-EvoAgentX. Okwamanje ayisho ukuthi inamagrafu okugeleza komsebenzi, ukuhlelwa kwama-agent amaningi, inkumbulo, izici zokubandakanya umuntu emjikelezweni, ukuhlanganiswa kwamabhentshimakhi, ukuhlela okubukwayo, noma ama-toolkit abanzi. Umhlahlandlela uhlanganisa ukwakheka kokugeleza komsebenzi okunothe kakhulu, ama-adapter abahlinzeki abengeziwe, abalayishi bamabhentshimakhi, ama-toolkit angasetshenziswa kabusha, ukuphikelela kwe-JSON, kanye nemibhalo eyengeziwe, kodwa lokhu kuhleliwe futhi akuzona izici zamanje.
Hlola ilayisensi ngaphambi kokusabalalisa kabusha
Okwamanje alikho ifayela lelayisensi elifakiwe kuphrojekthi. Faka ilayisensi efanele ngaphambi kokushicilela noma ukusabalalisa kabusha ikhodi.
Isiphetho
i-miniEvoAgent inikeza indlela encane, ehlolakalayo yokungena kubunjiniyela bama-agent be-LLM. Ngephakheji ye-evo_repro, ungakha i-agent eqhutshwa yi-prompt, wengeze amathuluzi emisebenzi yesitayela se-OpenAI, ulinganise ukusebenza kwe-QA, ubhale kabusha ama-prompt usebenzisa ukwehluleka, futhi ugcine ukuthuthukiswa ngokuhlola kusethi yokuthuthukisa. Ukwakheka kwayo okuhlangene nezibonelo ezinqumayo kuyenza ibe wusizo ikakhulukazi ekutadisheni ukuthi ukusetshenziswa kwama-agent nokuziphendukela kwemvelo kwama-prompt kusebenza kanjani ngaphakathi.
