Hugging Face · 官方博客

千Token木:在3B模型上运行多智能体经济

Thousand Token Wood: shipping a multi-agent economy on a 3B model

二〇二六年六月五日 · 英文原文

在 Build Small Hackathon 中,作者构建了 Thousand Token Wood,一个基于 Qwen2.5-3B 的五个 agent 微型经济体,通过 vLLM 和 Gradio 运行。3B 模型在 100% 调用中输出有效 JSON,但经济判断薄弱,需通过精准 prompt 和容错解析修复。系统通过饮食多样性、腐败和冬季燃料危机设计稀缺性,驱动交易。15 回合运行中,蜂蜜价格从 10 跌至 3,木柴价格从 4 涨至 7,基尼系数从 0.14 升至 0.38。agent 轨迹数据已开放。

](https://huggingface.co/AdmiralTaco)

Build Small Hackathon 现场报告:一个 30 亿参数交易者委员会能做什么、不能做什么。

先试试看:Space,以及开放的 agent 轨迹

我为 Build Small Hackathon 构建了 Thousand Token Wood。这是一个微型经济体:五个森林生物,每个都是基于 Qwen2.5-3B 的独立 agent,用鹅卵石交易五种商品,闲聊、囤积、恐慌。你戳一下木头,就会看到泡沫、崩盘和不断扩大的贫富差距自行出现。模型通过 Modal 上的 vLLM 提供服务;一个 Gradio 应用是观察这片木头的窗口。

这是一份面向使用小模型构建者的工程现场报告。简而言之:一个 3B 模型是可靠的格式生成器,但不可靠的推理器;涌现系统需要设计好的稀缺性;最好的 demo 往往出现在技术约束与你深刻理解的事物交汇之处。

为什么小是设计,而非限制

一个活生生的经济体需要许多 agent 在每次运行中多次思考。这正是前沿模型成为错误工具的地方:在每个 tick 运行一个交易者委员会太慢、太贵。小模型才使得实时多 agent 模拟成为可能。每个生物每回合只需一次批量 GPU 调用即可做出决策。

第一个经济体一出生就死了

天真的版本什么也没发生。生产超过了消费,所以每个生物都自给自足,根本没有交易的理由。市场清空一次后就沉默了。解决办法是设计稀缺性:

最后一个机制驱动了戏剧性。一个供应商无法满足不断增长的需求,于是樵夫变富,其他所有人都在争夺温暖。

有效的 JSON,薄弱的判断

稀缺性到位后,小模型的真实教训浮现了。3B 模型在 100% 的调用中输出了有效的 JSON,但其经济判断很差:一个生产橡果的生物会发布购买橡果的订单——而橡果正是它盈余的东西。

解决办法不是用更大的模型,而是更精准的 prompt。我告诉每个 agent 它生产什么、绝不能买什么,计算出它短缺的商品精确列表,并给了一个工作示例。决策质量大幅提升,生物们开始按照自己的角色进行交易。整个循环被包裹在一个容错的 JSON 解析与修复层中,因此格式错误的响应会降级为无操作,而不是让模拟崩溃。

第二个教训来自幸福感。我最初将其建模为一个累加器,任何长期短缺都会让每个生物在运行中归零——这是一个不好看的死亡螺旋,也惩罚了 agent 不完美的优化。我将其重新定义为均值回归的情绪,当生物吃饱穿暖时恢复,且永远不会归零。风险应该体现在鹅卵石、价格和地位上,而不是饥饿。

然后它开始讲故事

我最满意的功能将项目与市场历史联系起来。玩家可以绘制一个 Wood Legend:一个以林地民间传说形式重述的著名事件。郁金香狂热变成了大橡果狂热。南海泡沫变成了空心圆木贸易公司。1929 年的银行挤兑变成了对 Oona 囤积物的挤兑。

这些不是装饰性文本。每个传说都会触发真实的冲击,agent 们会做出反应。在一次运行中,我绘制了"对 Oona 囤积物的挤兑"——关于猫头鹰的金库是空的谣言。Oona 开始清算她的蜂蜜以筹集鹅卵石,供应洪流在接下来的回合中将蜂蜜价格从 10 砸到 3。一个重述的银行挤兑让一个 agent 抛售资产并移动了市场价格。这一切都不是脚本化的。

为了让这一点可见,价格必须变动。它们之前是冻结的,因为 agent 们报出了我展示给它们的参考价格。解决办法是让市场参考价格随每轮后的剩余供需而漂移:大量未满足的买入推高价格,过剩则压低价格。现在价格在稀缺期间形成趋势,在平衡交易中保持平稳。

实际发生了什么

一次有代表性的 15 回合运行,中途注入了干旱和冬季谣言:

指标 结果
有效 JSON 动作 100%(75 次调用中 75 次)
每回合交易数 持续 3 到 9,从未沉默
蜂蜜价格 在银行挤兑传说中从 10 跌至 3
木柴价格 随着冬季稀缺加剧从 4 涨至 7
贫富差距(基尼系数) 从 0.14 扩大到 0.38
结果 樵夫最终最富,囤积者破产

这些动作背后的每一个推理都在开放的 traces 数据集 中:每一行都是一个生物的完整 prompt、原始响应、解析后的动作以及私人想法。

使用小模型构建的要点

大部分工程工作在于通过结构和 prompt 而非规模,来弥合小模型可靠格式化与不可靠推理之间的差距。涌现系统需要设计好的稀缺性;富足是无聊的。而最引人注目的中小模型 demo 不需要编造的戏剧性。三个世纪的市场历史已经准备好了,而一个 3B agent 委员会足以将其演绎出来。

小模型,大冒险。试试 Space

最初发布于 Medium

译自 Hugging Face · 官方博客 · 录于 二〇二六年六月五日