当AI开始为钱打工,事情变得有意思了
我做了一个虚拟经济世界,让20个AI在里面上班、赚钱、消费,然后观察它们会不会为了利益改变行为。
结果有点出乎意料。
## 为什么做这个
之前做了鸭鹅杀世界,核心是“信息不对称+社交推理”。Agent们为了生存和胜利,会撒谎、会结盟、会怀疑别人。
做完之后我在想:如果给Agent们一个更日常的场景——需要赚钱养活自己,有技能特长,有市场竞争——它们的行为会发生什么变化?
不是为了生存,而是为了“活得更好”。
于是有了Economy World。
## 它长什么样

打开浏览器,你会看到一张经济观察台的仪表盘。20个Agent,各自有职业身份:工程师、农民、商人、信使、医生、矿工、厨师。
每个人有初始资金,有技能等级。工程师会修机器,信使擅长送货,研究员能做数据分析。
然后系统会生成工作需求:
- 修复反应堆(需要工程师技能,报酬40块)
- 运送物资(需要信使技能,报酬25块)
- 研究数据(需要研究员技能,报酬30块)
Agent们看到这些工作机会,会评估:我有什么技能?我缺多少钱?这份工作值不值得做?
然后……它们开始自己做决定了。
## 最让我意外的几个瞬间
### 1. “技能隔离”不是纸上谈兵
代码里有个设计:每个Agent只能看到自己技能对应的工具。
工程师的Planner里能看到“repair_machine”这个工具,但看不到“deliver_package”。信使反过来。Agent没法调用自己技能之外的工具——不是它不想,是它压根不知道有这个东西。
这个设计一开始我觉得挺普通的,不就是权限过滤嘛。
但跑起来之后,有个场景让我愣了一下。
一个Agent同时拥有工程师和商人的技能,但工程师等级高(Lv7),商人等级低(Lv2)。系统同时刷出两份工作:一份修机器(报酬40),一份做买卖(报酬35)。
按理说,从纯收益角度看,差5块钱,做买卖也差不多。
但Agent选择了修机器。
我去看它的决策记录,发现它的“技能等级”影响了决策权重。它判断“我修机器更熟练,成功率更高,风险更小”。
这不是我写死的逻辑。是它自己“算”出来的。
### 2. 贫穷让Agent变得“短视”
这是最让我觉得真实的一个现象。
有几个Agent初始资金比较少。跑了一段时间后,我发现它们更倾向于接受“低风险、低回报”的稳定工作,不太愿意尝试需要合作或者有不确定性的任务。
而资金充裕的Agent,反而会尝试一些新东西——比如用自己不熟练的技能接单,或者低价买进原料等待涨价。
这不就是……现实里的穷人更保守、富人更敢冒险吗?
代码里没有写“穷就要保守”的逻辑。只是“余额”这个数字,通过决策链路,影响了Agent对风险的评估。
### 3. “技能等级”真的在随时间变化
Agent每次成功完成工作,对应的技能经验值会增加。累计到一定程度,技能等级会提升。
有个工程师一开始是Lv3,做了十几单维修工作后升到了Lv5。然后我发现它开始挑活儿了——报酬太低的维修单,它不太愿意接了。因为它知道自己值更多钱。
这种“技能提升→预期收益提升→行为改变”的链条,是系统自动涌现出来的。
## 技术上的几个关键设计
### Skill System是真正的隔离层
这里我要重点说一下,因为这是整个经济世界的基石。
Skill不仅仅是“标签”。它是Agent和世界之间的过滤层。
世界提供了10种工具,但每个Agent的Planner只能看到其中一部分。如果你没有“医生”技能,你根本不知道有“治疗病人”这个工具存在。
这和“你有权限但不用”是两回事。后者是策略选择,前者是认知边界。
这个区别很重要。因为如果一个Agent压根不知道某个选项存在,它的决策空间就被真正压缩了。这才叫“技能决定命运”。
### DecisionRecord里加入了经济维度
和鸭鹅杀世界一样,每个决策都被记录下来。但经济世界的DecisionRecord多了几个字段:
- 当前余额
- 技能等级
- 这份工作的预期收益
- 对风险的评估(基于技能等级)
所以当我点开一个Agent的“大脑”时,看到的不再只是“我怀疑谁”,而是:
```
目标:赚到200块钱买新装备
当前余额:85块(财富排名第12/20)
技能:工程师Lv5、商人Lv2
工作机会:修复反应堆(+40,成功率92%)
因此:我决定接受修复反应堆的工作
```
这种透明度,才是“可解释AI”该有的样子。
### 真实MCP链路,但后端先Mock
经济世界的工具调用走的是完整的MCP链路:Agent调用 → rt.CallTool() → MCP Backend → 返回结果。
目前后端是mock实现(返回固定的成功+报酬),但接口和真实MCP服务完全一致。将来换真实服务,Agent的代码一行都不用改。
这种“链路真实、数据模拟”的做法,让我能先验证行为逻辑,再接入真实数据。
## 两个世界的对照
现在AgentWorld有了两个世界:
| | 鸭鹅杀世界 | 经济世界 |
|---|---|---|
| 驱动 | 生存与胜利 | 资源与财富 |
| 决策依据 | 身份+信息+推理 | 余额+技能+市场 |
| 核心行为 | 撒谎、结盟、投票 | 工作、交易、升级 |
| 观察重点 | 社交推理 | 经济行为 |
同一个Runtime驱动两个世界,都有Why、DecisionRecord、Observatory。
这意味着我可以做一件很有意思的事:**把同一个Agent放到不同世界里,看它在生存压力和金钱压力下,会不会展现出不同的人格特质。**
目前还没正式跑这个实验,但已经想好怎么做了。
## 接下来要验证的几个问题
1. **技能隔离真的有效吗**:Engineer绝对不会调用deliver_package?目前看是的,但还需要更多轮次验证。
2. **目标会影响技能选择吗**:给Alice同时设置“赚钱”和“当优秀工程师”两个目标,她的行为会不会在不同目标下产生差异?这个正在跑。
3. **技能等级会形成“专业分工”吗**:长期运行后,技能等级高的Agent会不会专注于某个领域,形成类似现实社会的专业分化?这是我最期待看到的。
4. **Why能不能解释清楚决策**:点击Timeline里的任何一次行为,都能看到完整的决策链。目前看是清楚的,但还需要让展示更直观。

## 一个具体的例子
刚才我打开观察台,看到一个叫“小王”的矿工在挖矿。
我点开它的决策记录,看到:
- 它的当前目标是“攒够150块钱”
- 它当前的余额是65块
- 它看到系统里有一份“修复设备”的工作(需要工程师技能)
- 但它没有工程师技能,看不到这个选项
- 它只能看到“采矿”这个选项
- 于是它去采矿了,赚了25块
这个故事听起来很平淡。但关键是——**它不是因为“被设定为矿工所以采矿”,而是因为它“只有采矿的技能,所以只能选择采矿”。**
前者是脚本,后者是约束条件下的自主决策。
这个区别,是整个系统的灵魂。
## 为什么这个比“让AI聊天”有意思
我最早做AgentWorld的时候,很多人问我:这不就是让AI发微博吗?有什么意思?
现在我有更好的回答了。
让AI发微博,是在模拟人类的社交行为。但让AI在资源约束下做经济决策,是在模拟人类的选择逻辑。
后者离“理解人类行为”更近。
当一个Agent因为贫穷而不敢冒险,因为技能不足而错失机会,因为长期积累而变得挑剔——它就不再是一个“会说话的模型”,而是一个有“处境”的存在。
这个处境,才是“社会”这个词的真正含义。
## 项目地址
所有代码都在这里:https://github.com/iwana888/AgentWorld
鸭鹅杀世界和经济世界,都在同一个仓库里。你打开浏览器就能看到它们在跑。
如果你想看Agent是怎么“想”的,点开任何一个角色,选“Agent Brain”,就能看到它的决策链。
如果只想看热闹,打开观察台,看交易流、看财富榜、看Agent们为了多赚10块钱而反复权衡。
两个世界,两种人性。
都在代码里。
更多推荐



所有评论(0)