๐Ÿ“š ์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

๐Ÿ“š ์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (Manage your agent's memory)

๊ฒฐ๊ตญ ์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด์š”: ๋„๊ตฌ์™€ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์žˆ๊ณ , ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ๋Š” ๊ณ„ํšยท์‹คํ–‰ยท์˜ค๋ฅ˜์˜ ๊ธฐ๋ก์„ ๊ทธ๋ฆฐ ๊ณผ๊ฑฐ ๋‹จ๊ณ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

์ถœ์ฒ˜: ๊ณต์‹๋ฌธ์„œ - Manage your agent's memory

์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ ์žฌ์ƒ (Replay)

๊ณผ๊ฑฐ ์—์ด์ „ํŠธ ์‹คํ–‰์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์š”. ๊ณ„์ธก ๊ฐ€์ด๋“œ์—์„œ ๊ฐ•์กฐํ•˜๋“ฏ ํŠน์ • ๋‹จ๊ณ„๋ฅผ ํ™•๋Œ€/์ถ•์†Œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ‹์ง„ UI์— ์‹คํ–‰์„ ํ‘œ์‹œํ•˜๋„๋ก ๊ณ„์ธกํ•  ์ˆ˜ ์žˆ์–ด์š”. agent.replay()๋ฅผ ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๊ฐ€ ์‹คํ–‰๋œ ๋’ค:

from smolagents import InferenceClientModel, CodeAgent

agent = CodeAgent(tools=[], model=InferenceClientModel(), verbosity_level=0)

result = agent.run("What's the 20th Fibonacci number?")

๋งˆ์ง€๋ง‰ ์‹คํ–‰์„ ์žฌ์ƒํ•˜๋ ค๋ฉด:

agent.replay()

์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

agent.memory.get_full_steps()๋กœ ์ „์ฒด ๋‹จ๊ณ„๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”. ์Šคํ… ์ฝœ๋ฐฑ์„ ์‚ฌ์šฉํ•ด ์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ… ์ฝœ๋ฐฑ์€ ์ธ์ž์—์„œ agent ์ž์ฒด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด, ์œ„์—์„œ ๊ฐ•์กฐํ•œ ๋Œ€๋กœ ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ ์Šคํ…์ด๋“  ์ ‘๊ทผํ•˜๊ณ  ํ•„์š”ํ•˜๋ฉด ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ์›น ๋ธŒ๋ผ์šฐ์ € ์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ ๋‹จ๊ณ„์˜ ์Šคํฌ๋ฆฐ์ƒท์„ ๊ด€์ฐฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ฃ .

์ฐธ๊ณ : ์ด ์ฝ”๋“œ๋Š” ๊ฐ„๊ฒฐํ•จ์„ ์œ„ํ•ด ์ผ๋ถ€ import์™€ ๊ฐ์ฒด ์ •์˜๊ฐ€ ์ œ๊ฑฐ๋œ ๋ถˆ์™„์ „ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ๋™์ž‘ ์ฝ”๋“œ๋Š” ์›๋ณธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณด์„ธ์š”.

CodeAgent(
    tools=[WebSearchTool(), go_back, close_popups, search_item_ctrl_f],
    model=model,
    additional_authorized_imports=["helium"],
    step_callbacks=[update_screenshot],
    max_steps=20,
    verbosity_level=2,
)

์ „์ฒด ๋™์ž‘ ์˜ˆ์‹œ๋Š” ๋น„์ „ ์›น ๋ธŒ๋ผ์šฐ์ € ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์—์ด์ „ํŠธ๋ฅผ ํ•œ ๋‹จ๊ณ„์”ฉ ์‹คํ–‰ํ•˜๊ธฐ

๋ฉฐ์น ์ด ๊ฑธ๋ฆฌ๋Š” ๋„๊ตฌ ํ˜ธ์ถœ์ด ์žˆ์„ ๋•Œ ์œ ์šฉํ•ด์š”. ์—์ด์ „ํŠธ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์‹คํ–‰ํ•˜๋ฉด ๊ฐ ๋‹จ๊ณ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋„ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

from smolagents import InferenceClientModel, CodeAgent, ActionStep, TaskStep

agent = CodeAgent(tools=[], model=InferenceClientModel(), verbosity_level=1)
agent.python_executor.send_tools({**agent.tools})
print(agent.memory.system_prompt)

task = "What is the 20th Fibonacci number?"

๋” ์•Œ์•„๋ณด๊ธฐ (Learn more)