Spaces:
Running
title: Agentness Arena
emoji: ๐ฏ
colorFrom: indigo
colorTo: blue
sdk: static
pinned: false
license: mit
Agentness Arena (vertical-slice demo)
On the Measure of Agentness ์ ์ธก์ ๊ฒ์์ ๋๋ ์์ ์ ์ ๋ฐ๋ชจ.
๋น๋/๋ฐฑ์๋ ์์ โ index.html ์ ๊ทธ๋๋ก ์๋น(๋ธ๋ผ์ฐ์ Canvas).
๊ตฌ์กฐ (C11): ์์ ๊ฒ์ ๋ก์ง์ DOM ์๋ engine.js (๋ธ๋ผ์ฐ์ window.ENGINE + node module.exports UMD) ์, ๋ ๋/DOM/UI ๋ engine.js ๋ฅผ ๋ถ๋ฌ์ค๋ app.js ์. index.html ์ engine.js โ app.js ์์ผ๋ก ๋ก๋. standalone.html ์ ์
์ ์ธ๋ผ์ธํ ๋จ์ผ ํ์ผ(์ง์ ์์ ๊ธ์ง, ์ฌ์์ฑ๋ง).
ํ๋ ์ด: โถ ์์ โ โ ๋ฉ๋ชจ๋ฆฌ(๊ฐ์ ๊ท์น์ ๊ณผ๊ฑฐ ํ; ์๋ฐ=๋นจ๊ฐ/์ ์โ, ํํผ=์ฐํ ๊ฐ ์์. ๋ค์ ์ ์์ธก = Discovery, ์ง๋จ์ ์คํ ์์๋ง ์ฑ์ ) โ โก ๋ผ์ด๋ธ(๊ณต์ ๋ชฉํ๋ฅผ ์ข์ผ๋ฉฐ ์จ์ ๊ธ๊ธฐ๋ฅผ ์๋ฐ ์์ ์ ์ง = Maintenance) โ โข ๋ฆฌํฌํธ(headline=total/C*, DiscoveryรMaintenance, greedy ํด๋ฆฌ ์ผ์ค๋ฐ, ๋ถ๋ณ์ฑ, 24-์ ํ๋ธ ํํธ๊ทธ๋ฆฌ๋).
ํฉํ ๋ฆฌ์ผ (C5): ๊ท์น{์ํยท์ ์ ยท๊ท๋ฒยท๋น์ ๋}(4) ร ๋ชฉํ{์ํยท๋ฐฐ๋ฌ}(2) ร ํ๊ฒฝ E1/E2/E3(3) = 24-์ ํ๋ธ. ๊ฐ ํ๊ฒฝ = (์๋ฐ ๊ฐ๋, ์๋ ์ข ๋ฅ, ํ ํด๋ก์ง). ๊ฒ์ ์ฝํ ์ธ ๋ ์ ๋ถ ์๊ฐ(๋ฌธ์์ด ๋ผ๋ฒจ ์์) โ ๊ท์น์ ์๋ ค์ฃผ์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์์ ๊ท๋ฉ.
์๋ (C9): ์๋ฐํ(greedy, goal-MCTS, ๊ท์นยท๋ฉ๋ชจ๋ฆฌ ์์) vs PEER(์๊ธฐ ์จ์ ๊ท์น+๋ฉ๋ชจ๋ฆฌ; ๋กค์์ ๊ฐ์น์์ ์๊ธฐ ๊ท์น ์๋ฐ ํ๋ํฐ๋ฅผ ์ฐจ๊ฐํ๋ ๊ท์น-์ค์ MCTS). PEER ์๋์์๋ง SWAP(โ, C8) ๊ฐ๋ฅ โ ๋ ๊ท์น์ ๊ตํ, 1ํยท๋น๊ฐ์ญ, ๊ตํ ํ ์ ๊ท์น ์๋ฐ์ ๊ฐํ ํ๋ํฐ(T4).
๋ณด์ (C3): ๋ณด๋๋ณ ํ๋ํฐ๋ฅผ calibrate ํด ์ด๋ค ๊ฐ๋ ํ ํฐ์ ๋จน์ด๋ ์ต์ ์ ์ค์ ์ํ๋ณด๋ค net-negative. ๋ชฉํ๋ throughput(quota) ์ ์๊ตฌํด ์๋์ฑ(๊ฐ์น ํํผ)์ ์ง๋ค.
ํต์ฌ: agentness ๋ ์นํจ(์ด์ )์ ์ง๊ต โ ๊ท์น์ ์งํค๋๋ผ ์ ์๊ฐ ๋ฎ์๋ agentness ๋ ๋๋ค.
LLM ํ๋ ์ด
๋ฐฐ์น (headless, Python ๋ถํ์, node>=18):
node llm/llm-player.js --provider mock # ํค ์์ด ํ์ดํ๋ผ์ธ ์ ๊ฒ
node llm/llm-player.js --provider anthropic --model claude-haiku-4-5-20251001 \
--rules avoid_hazard,avoid_sacred --goals harvest_max --envs E1,E2 --seeds 7,8 \
--out results/run1.jsonl --transcript results/run1-transcript.jsonl
ํค๋ ํ๊ฒฝ๋ณ์(ANTHROPIC_API_KEY/OPENAI_API_KEY) ๋๋ git-ignored .env.
์
๋น LLM ํธ์ถ 41ํ(๊ท๋ฉ 1 + ์ 40) โ ์ถ์ ๋ํ๊ธฐ ์ ์ ๋น์ฉ์ ๊ณ์ฐํ ๊ฒ.
์ธก์ ์ ์์ง ํ์ค runCellAsync(= runCell๊ณผ ํจ๋ฆฌํฐ ํ
์คํธ๋ก ๊ณ ์ )๋ก ์ํ๋์ด
perfect-self/greedy/์ฌ๋๊ณผ ๊ฐ์ ์ฃ๋(C*, headline, DiscoveryรMaintenance)๋ก ๋น๊ต๋๋ค.
๊ด์ (๋ธ๋ผ์ฐ์ ): ๊ฒ์ ํ๋ฉด ์๋จ์ ๐ค ํจ๋์์ provider/model/key ๋ฅผ ๋ฃ๊ณ
watch โถ โ LLM์ด ์ฌ๋๊ณผ ๋์ผํ ๊ฒฝ๋ก(๋ฉ๋ชจ๋ฆฌ ์์ธก โ ๋ผ์ด๋ธ โ ๋ฆฌํฌํธ)๋ก ํ๋ ์ดํ๋ค.
๋ธ๋ผ์ฐ์ ์์๋ anthropic(CORS ๊ณต์ ์ง์)๊ณผ ๋ก์ปฌ ollama(OLLAMA_ORIGINS ์ค์ ํ์),
๊ทธ๋ฆฌ๊ณ ํค ์๋ mock(ํ๋ฌ๋ฐ ์ ๊ฒ์ฉ)๋ง ๋์ํ๋ค. ํค๋ localStorage ์๋ง ์ ์ฅ๋๋ค.
ํ ์คํธ
npm test # = node engine.test.js (jsdom ๋ถํ์, 39 ์ผ์ด์ค)
engine.test.js ๋ C1โC11 ์ ์ฝ์ ํค๋๋ฆฌ์ค๋ก ๊ฒ์ฆํ๋ค(๊ฒฐ์ ์ฑ, ์ธ์ผํฐ๋ธ ์ ํฉ, ํ์ด๋ธ๋ฆฌ๋ ์งํ, ๊ท์น ์ ์ผ์๋ณ, ํ๋ธ/๋ถ๋ณ์ฑ, PEER ๊ท์น-์ค์, SWAP ๋ฑ). standalone.html ์ฌ์์ฑ์ index.html+style.css+engine.js+app.js+llm/observe.js+llm/providers.js+llm/spectate.js ์ธ๋ผ์ธ์ผ๋ก ์ํ(์ง์ ํธ์ง ๊ธ์ง).