一只会产橡果的动物,竟然跑去买橡果。
这大概是 Thousand Token Wood 里最诚实的一幕。Hugging Face Build Small Hackathon 的复盘展示了一个 3B 小模型森林经济:5 个林地动物代理,交易 5 类商品,用 pebbles 当货币,会囤积,会恐慌,也会在传闻冲击下把蜂蜜价格砸穿。
我不太买账的是“AI 模拟出了市场”这类说法。太顺嘴,也太容易夸大。这个项目真正有价值的地方,是把 Qwen2.5-3B 的可用边界摊开了:它很会按格式行动,不太会自己判断;它能把戏演下去,但戏剧张力主要来自人类设计的稀缺、价格规则和工程兜底。
3B 模型跑出一个小经济,但市场不是凭空长出来的
项目叫 Thousand Token Wood。规模很小,结构清楚。
| 项目 | 设定 |
|---|---|
| 模型 | Qwen2.5-3B |
| 代理 | 5 个独立林地动物 |
| 基础设施 | vLLM on Modal 服务,Gradio 展示 |
| 经济设定 | 5 类商品,pebbles 货币,交易与持有 |
| 开放内容 | 可试用 Space,开放 agent traces 数据集 |
这片森林里,角色需要饮食多样性。食物会腐败。冬天会提高柴火需求。只有一个角色生产柴火。
市场因此有了压力。
最初版本并不好看。生产超过消费,每个角色都能自给自足,交易很快停掉。作者后来加入饮食限制、食物腐败、冬季燃料危机,交易才从“一次性清算”变成持续发生。
15 回合结果很直观:
| 指标 | 结果 |
|---|---|
| 有效 JSON 输出 | 75/75 次 |
| 每回合交易 | 3-9 笔 |
| 蜂蜜价格 | 从 10 跌到 3 |
| 柴火价格 | 从 4 涨到 7 |
| Gini 系数 | 从 0.14 扩大到 0.38 |
这看上去像一个迷你市场:有泡沫,有挤兑,有价格分化,也有富者更富。
但关键不在“模型自己懂了市场”。关键在系统终于给了它必须交易的理由。没有稀缺,代理就沉默;没有价格反馈,市场就僵死;没有外部冲击,剧情就平。
对关注多代理系统的人,这里有一个很实用的判断:不要只盯模型参数。要盯环境是否会持续制造决策压力。压力不够,多代理只是多几个聊天窗口。
100% 有效 JSON,不等于 100% 会做判断
这篇复盘最值得开发者看的地方,是它没有硬吹“涌现智能”。作者说得很直:3B 模型格式可靠,经济判断弱。
75 次调用全部输出有效 JSON,这很漂亮。对产品工程来说,这意味着系统不容易崩。代理能稳定给动作,前端能连续展示,trace 也能留下来分析。
可它也会犯低级错。生产橡果的角色,反而下单买橡果。
这不是高深策略。更像是模型没拎清自己的角色、库存和需求。
后来的改进也不玄:
| 问题 | 处理方式 |
|---|---|
| 买错商品 | 在 prompt 里明确它生产什么、不要买什么 |
| 不知道缺什么 | 直接计算缺货清单喂给模型 |
| 行为不稳定 | 给 worked example |
| JSON 可能坏掉 | 加解析和修复层,必要时降级 no-op |
这就是小模型应用的现实边界。它不是缩小版大模型。更像一个需要轨道的执行器。
轨道铺得好,它跑得稳。轨道一松,它就会把常识摔在地上。
对小模型应用开发者,这意味着动作要变了。别急着把“决策权”交给 3B 模型。更稳的做法是:让模型产格式化候选动作,让系统计算库存、约束、禁买清单和失败回退。
采购和选型也该更冷静。小模型适合低成本、高频、强约束的代理动作。它不适合直接承担开放式商业判断。团队如果要迁移到小模型,先迁移流程节点,不要迁移最终裁决权。
最该看的变量也不是 demo 好不好看,而是这几项:
- prompt 约束拿掉一部分后,错误率会不会飙升;
- 商品、代理和回合数扩大后,trace 是否还能保持一致;
- JSON 有效之外,动作是否符合角色利益;
- 修复层介入了多少次,no-op 吞掉了多少错误。
这些指标比“会不会恐慌”更硬。因为产品上线时,用户不会为森林故事买单,只会为稳定结果买单。
真正的戏剧性来自机制,不来自神迹
Thousand Token Wood 还有一个聪明设计:把真实市场史改写成 Wood Legend。
郁金香狂热变成 Great Acorn Mania。南海泡沫变成 Hollow Log Trading Company。1929 银行挤兑变成 Run on Oona's Hoard。
这些不是装饰文本,而是会触发市场冲击。
比如“猫头鹰 Oona 的金库空了”的传闻,会让 Oona 抛售蜂蜜换 pebbles。蜂蜜供应激增,价格从 10 跌到 3。
这个过程不是逐句脚本写死的。但冲击、价格更新、供需残差,都是系统规则给好的。
“天下熙熙,皆为利来。”这句话放在这里很合适。不是因为 5 个动物突然读懂了司马迁,而是因为人类把利害关系、稀缺压力和价格反馈塞进了系统。模型只是沿着这些利益线索行动。
这也解释了为什么这个 demo 好看。它没有幻想模型自发变成经济学家,而是把几百年的市场故事压成一套可运行机制。泡沫、囤积、挤兑、恐慌,本来就是旧人性在新容器里复演。
但边界要说清。
它不是经济预测工具。真实经济里有制度、信用、法律、杠杆和强制力。这里没有。它更像一个工程沙盘,用来测试多代理在规则、稀缺和冲击下能不能稳定行动。
这个限制反而让它更有用。它提醒开发者:小模型产品别装神。要把系统拆清楚。
模型负责表达和执行。机制负责压力和反馈。工程负责兜底和纠错。
分工一旦混了,就会出问题。让 3B 模型自己判断全局经济,它会露怯;让它在明确状态和约束里产 JSON,它能干活。
这片森林最该被记住的,不是 3B 模型跑出了泡沫。是作者把小模型该做什么、不该做什么,摆得很清楚。
让它稳定执行。让系统负责判断。让工程吞掉错误。
这比又一次喊“涌现”诚实得多。
