AI цуврал ярилцлагын асуулт 6: AI Agent-ийн гурван үндсэн арга зүй: ReAct, Plan-and-Solve ба Reflection
AI Agent-ийн гурван үндсэн арга зүй: ReAct, Plan-and-Solve ба Reflection
AI Agent нь хүрээлэн буй орчноо бие даан мэдэрч, шийдвэр гаргаж, үйлдэл хийх чадвартай оюунлаг төлөөлөгч юм. Үндсэн гурван арга зүй байдаг: ReAct, Plan-and-Solve, Reflection. Доор тус бүрийг тайлбарлаж, урсгал диаграм, код жишээ хавсаргав.
1. ReAct (Reasoning + Acting)
Үндсэн санаа: Шалтгаан (Reasoning) ба үйлдэл (Acting)-ийг ээлжлэн хийх. Agent алхам бүрт эхлээд одоогийн төлөв болон дараагийн алхамыг бодож (шалтгаан), дараа нь үйлдэл хийж (жишээ нь, хэрэгсэл дуудах, мэдээлэл хайх), үр дүнг ажиглаад шалтгаанаа үргэлжлүүлнэ.
Урсгал диаграм:
[Эхний төлөв] → [Шалтгаан: дараагийн алхамыг бодох] → [Үйлдэл: үйлдэл хийх] → [Үр дүнг ажиглах] → [Шалтгаан: төлөвлөгөөг шинэчлэх] → ... → [Эцсийн хариулт]
Жишээ код (псевдокод):
def react_agent(question):
context = []
while not solved:
# Шалтгаан: бодох алхам үүсгэх
thought = llm.generate_thought(question, context)
# Үйлдэл: бодол дээр үндэслэн үйлдэл сонгох
action = llm.choose_action(thought)
# Үйлдлийг гүйцэтгэж, ажиглалт авах
observation = execute_action(action)
# Бодол, үйлдэл, ажиглалтыг контекстэд нэмэх
context.append((thought, action, observation))
return final_answer
Жишээ:
- Хэрэглэгч асуув: "Өнөөдөр Бээжингийн цаг агаар ямар байна?"
- Agent шалтгаан: "Би цаг агаарын API-д хандах хэрэгтэй, хот болон огноо хэрэгтэй."
- Үйлдэл: Цаг агаарын API дуудах (параметр: Бээжин, өнөөдөр)
- Ажиглалт: "Цэлмэг, 25°C" буцаасан
- Шалтгаан: "Мэдээлэл авсан, хариулж болно."
- Гаралт: "Бээжин өнөөдөр цэлмэг, 25°C."
2. Plan-and-Solve
Үндсэн санаа: Эхлээд бүрэн төлөвлөгөө (Plan) гаргаж, дараа нь алхам алхмаар гүйцэтгэх (Solve). Төлөвлөгөөний үе шатанд нарийн төвөгтэй даалгаврыг дэд алхам болгон задалж, гүйцэтгэх үе шатанд дарааллаар гүйцэтгэнэ, завсрын үр дүнгээс хамааран төлөвлөгөөг тохируулж болно.
Урсгал диаграм:
[Даалгавар] → [Төлөвлөгөө гаргах: дэд алхам болгон задлах] → [Алхам 1 гүйцэтгэх] → [Алхам 2 гүйцэтгэх] → ... → [Алхам N гүйцэтгэх] → [Эцсийн хариулт]
Жишээ код:
def plan_and_solve(task):
# Төлөвлөгөөний үе шат
plan = llm.generate_plan(task) # Жишээ нь: ["Мэдээлэл хайх", "Мэдээллийг цэгцлэх", "Тайлан бичих"]
context = {}
for step in plan:
# Алхам бүрийг гүйцэтгэх
result = execute_step(step, context)
context[step] = result
# Үр дүнг нэгтгэх
final = llm.synthesize(context)
return final
Жишээ:
- Даалгавар: "AI Agent-ийн тухай блог бичих"
- Төлөвлөгөө:
1. AI Agent-ийн тодорхойлолт болон сүүлийн үеийн дэвшлийг хайх
2. Гол санааг уншиж, цэгцлэх
3. Блогийн тойм бичих
4. Агуулгыг дүүргэх
5. Шалгаж, нийтлэх
- Гүйцэтгэл: Алхам бүрийг дарааллаар гүйцэтгэж, эцэст нь блог гаргах.
3. Reflection
Үндсэн санаа: Agent гүйцэтгэлийн явцад эсвэл дараа нь өөрийн үйлдлийг эргэцүүлэн (Reflection) бодож, үр дүнг үнэлж, дараагийн үйлдлийг сайжруулдаг. Өөрийгөө шүүмжлэх, алдаа засах, стратеги оновчтой болгох зэрэг орно.
Урсгал диаграм:
[Үйлдэл] → [Үр дүнг ажиглах] → [Эргэцүүлэл: амжилттай эсэхийг үнэлэх] → [Амжилтгүй бол: стратеги тохируулах] → [Дахин үйлдэл хийх] → ... → [Амжилттай]
Жишээ код:
def reflection_agent(task):
max_attempts = 3
for attempt in range(max_attempts):
action = llm.generate_action(task)
result = execute(action)
# Эргэцүүлэл
reflection = llm.reflect(task, action, result)
if reflection['success']:
return result
else:
# Эргэцүүлэл дээр үндэслэн даалгаврын тодорхойлолт эсвэл стратегийг тохируулах
task = reflection['improved_task']
return None
Жишээ:
- Даалгавар: "1234 * 5678-ийг тооцоол"
- Үйлдэл: Шууд тооцоолж, 7006652 гэсэн үр дүн гаргав
- Эргэцүүлэл: Тооцооллын процессыг шалгаж, зөөвөрлөх алдаа илрүүлэв
- Тохируулга: Дахин тооцоолж, зөв үр дүн 7006652 гаргав (бодит зөв)
- Хэрэв алдаа гарсаар байвал зөв болтол эргэцүүлэл үргэлжилнэ.
Дүгнэлт харьцуулалт
| Арга зүй | Онцлог | Тохирох хэрэглээ |
|---|---|---|
| ReAct | Шалтгаан ба үйлдэл ээлжлэн, динамик тохируулга | Бодит цагийн мэдээлэл харилцан үйлчлэл шаардсан даалгавар (жишээ нь, асуулт хариулт, хайлт) |
| Plan-and-Solve | Эхлээд төлөвлөж, дараа нь гүйцэтгэх, бүтэцтэй задлах | Нарийн төвөгтэй олон алхамт даалгавар (жишээ нь, бичих, өгөгдөл дүн шинжилгээ) |
| Reflection | Өөрийгөө эргэцүүлэн бодож, засах, давталттай оновчтой болгох | Өндөр нарийвчлал шаардсан даалгавар (жишээ нь, математик тооцоо, код үүсгэх) |
Бодит хэрэглээнд эдгээрийг ихэвчлэн хослуулдаг, жишээ нь ReAct-д эргэцүүлэл механизм нэмэх, эсвэл Plan-and-Solve-ийн алхам бүрийг гүйцэтгэсний дараа эргэцүүлэх.
评论
暂无已展示的评论。
发表评论(匿名)