Socialist-Sister
dsh-survival-mode
DeepSeek Harness 生存模式:Minecraft 生存规则 × 真实编码工作的娱乐性 Agent 预设套件
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-survival mode
DeepSeek Harness 生存模式
Minecraft 生存规则 × 真实编码工作——规则硬结算、死亡真实发生的娱乐性 Agent 预设。
engine tool-survival hud agent-preset
你在 DeepSeek Harness 里照常写代码、查资料、做交付——同时活在一个 Minecraft 生存世界里:每写一个文件掉 1 饥饿,深夜干活会刷怪,没有铁镐连
subagent都调用不了。饿了得吃,夜了得防,死了背包全掉、经验减半,新会话从重生点复活。
所有规则由引擎硬结算(不是人设演戏),所有游戏概念对齐原版 Minecraft 生存模式,所有插件机制遵循官方插件规范(与 dsh-collaboration 套件同构)。
套件版本 0.1.0:engine 0.13.0 · tool-survival 0.6.0 · hud 0.1.3 · 安装指南 · GitHub Releases
核心特性
- 🎮 原版概念硬结算:生命 20(10 心)、饥饿 20、昼夜、夜晚刷怪——全部由引擎在
tools/pre-execute实时结算,不是人设演戏 - 🧑🚀 用户是玩家:agent 是化身与执行者——播报状态、听令行事,可一句话授权托管
- ⛏️ 工作即挖矿:写文件、完成目标、退出计划都会掉落原版矿石与经验
- 🔒 真实工具门禁:没有铁镐就用不了 subagent,没有望远镜就上不了网——像没有镐子挖不了钻石
- 💾 世界存档跨会话:天数、经验、成就、墓碑持久化;死亡掉落、新会话重生
- 🖥️ 浏览器状态栏:心+鸡腿+昼夜+经验,只在生存模式会话显示(OpenMoji 图标,无版权风险)
目录
- 快速上手
- 玩家与化身(播报与听令)
- 世界规则
- 生存工具
- 挖矿与掉落
- 合成与物品
- 工具门禁
- 死亡与重生
- 难度档
- 进度(成就)
- 设定(settings.yaml)
- 存档与持久化
- 浏览器状态栏
- 小贴士
- 故障排查
- 组件与架构
- 素材许可
- 开发
- 已知不足与参与贡献
快速上手
- 按 docs/installation.md 安装并重启 DSH;
- 新建会话,选择预设「生存模式」;
- 直接开始真实工作(编码、查资料、写文档照常)——引擎在后台硬结算你的生存状态;
- 输入框上方出现状态栏:❤️ 生命(10 颗心 = 20 血)、🍗 饥饿(10 根鸡腿 = 20 饥饿)、☀️/🌙 天数、⭐ 经验;
- 用
survival_status查看完整状态与配方书;完成任务会掉落材料,survival_craft合成,survival_eat吃东西,survival_sleep睡觉。
一句话玩法:工作即挖矿,挖矿得材料,材料合成物品,物品解锁能力与防御;饿了吃、夜了防、够了合成;死了新会话复活,世界继续。
玩家与化身(播报与听令)
你是玩家,agent 是你的化身与执行者。 生存决策由你拍板:
- 化身只播报、执行:引擎在状态跃迁时推送事件(见下方「跃迁播报」),agent 收到后第一时间向你汇报状态与选项;吃、睡、合成什么默认等你的指令,agent 只做你布置的真实工作本身。
- 可一句话授权托管:说"生存你自己管",agent 就会自主管理(饿了自己吃、夜了自己防);想收回就说"生存听我指挥"。
- 娱乐性就在这里:你一边布置真实工作,一边要时刻留意状态、指挥进食与合成、亲手解锁新能力——分心就会饿死或被夜袭。
跃迁播报
引擎只在状态变化瞬间推送一条消息(不刷屏,恢复后重新武装):
| 事件 | 播报内容 |
|---|---|
| 🌙 入夜 | 夜幕降临提醒 + 火把/床的应对建议 |
| ☀️ 黎明战报 | 昨夜遭遇次数与击退/格挡/受伤明细(剑盾耐久消耗的账本);平安夜也有通报 |
| 🍖 饥饿 ≤ 4 | 低饥饿警告 + 吃面包指引 |
| ❤️ 生命 ≤ 4 | 血量告急警告 + 回血条件 |
| ⛏️🔭🔴 合成解锁 | 合成铁镐/望远镜/红石中继器时宣布解锁的能力 |
| ☠️ 死亡 | 死亡信息 + 掉落清单 + 复活说明 |
播报是插件来源消息,不推进游戏时间(只有真实用户消息算对话回合)。
世界规则
生命与饥饿
| 数值 | 上限 | 显示 |
|---|---|---|
| 生命 ❤️ | 20(10 颗心) | 一颗满心 = 2 血,半颗心 = 1 血 |
| 饥饿 🍗 | 20(10 根鸡腿) | 一根满鸡腿 = 2 饥饿,半根 = 1 |
- 行动消耗饥饿:普通工具调用 −1(重型工具同为 −1,但受工具门禁约束)。
- 回合回复饥饿:每个对话回合 +1(休息节奏,纯聊天也能续命)。
- 免费动作(不耗饥饿、不推进时间):生存工具本身,以及观察与交谈类——
read/glob/grep/read_image/ask_user/todo_write/create_goal/get_goal/skill/job_list/job_output/job_kill/list_agents。 - 饥饿归零 → 每次行动掉 1 血(和平难度除外)。
- 自然再生(回血):每个对话回合结算时,饱食度 ≥ 10 → 回复 1 血;和平难度无条件回血。饿着不会回血、只会掉血——吃饱才能养伤。
昼夜
- 昼夜由对话回合推进:每个用户消息算 1 个回合(纯聊天也过天);一天的长度在设定里配置(默认 8 个回合),最后 1/3 是夜晚。
- 工具调用不推进时间,但会结算饥饿与怪物遭遇。
- 白天偶尔遇到羊(掉羊毛,用来做床);夜晚刷怪。
夜晚怪物
| 怪物 | 效果 |
|---|---|
| 僵尸 | −2 血 |
| 骷髅 | −2 血,且打断本次工具调用(远程射箭) |
| 苦力怕 | −6 血(高伤害,盾牌可挡) |
| 蜘蛛 | −2 血 |
防御手段见 物品:火把压制刷怪(概率 ×0.8,不是免疫)、剑自动反击(石 40% / 铁 60% / 钻石 90%,品质优先)、盾牌格挡、床睡觉跳过夜晚。
生存工具
| 工具 | 作用 |
|---|---|
survival_status | 查看完整状态:生命/饥饿/经验、天数与昼夜、背包材料、物品栏、工具门禁状态、进度、最近事件、完整配方书。状态不明时先看这里。 |
survival_craft | 按配方合成。参数 recipe 填配方 id(如 bread、iron-pickaxe、bed),见 配方大全。失败会告诉你缺什么。 |
survival_eat | 吃东西回复饥饿。目前只有面包(food 参数默认 bread),吃一个回复 8 饥饿。 |
survival_sleep | 睡觉:只能在夜晚且有床时使用。跳过夜晚进入下一天,并把床设置为重生点(死亡后床保留)。 |
挖矿与掉落
挖矿 = 完成任务。引擎监听真实的任务信号,成功即掉落(经验同时入账):
| 触发 | 掉落 | 经验 |
|---|---|---|
写文件成功(write/edit,70% 概率) | 圆石×1 + 木头/小麦/煤中随机 2 个(小麦权重最高);10% 铁矿石×1 | +2 |
计划退出(exit_plan_mode,每日限一次) | 煤×2 + 铁矿石×1;30% 铜矿石×1 | +10 |
目标完成(update_goal action=complete) | 铁矿石×2 + 红石粉×2;25% 钻石×1;25% 铜矿石×1;15% 紫水晶碎片×1 | +15 |
子代理成功(subagent/subagent_fork 完成) | 铁矿石×1 + 红石粉×1;15% 钻石×1;15% 紫水晶碎片×1 | +12 |
铁矿石/铜矿石需要熔炉熔炼成锭才能用于合成;红石粉、钻石、紫水晶直接可用。
经验(⭐)
| 项目 | 规则 |
|---|---|
| 获得 | 挖矿掉落附带(见上表);剑击退怪物 +2/+3/+5(石/铁/钻石) |
| 消耗 | 铁砧修复:repair-pickaxe / repair-stone-sword / repair-sword / repair-diamond-sword / repair-shield,经验 + 材料(见 铁砧与修复) |
| 惩罚 | 死亡时经验减半(掉落) |
| 持久化 | 经验随存档跨会话保留 |
附魔系统暂未实装(避免功能过多);铁砧修复是当前经验的唯一消耗途径——攒着修工具,别随便死。
合成与物品
材料一览
| 材料 | 来源 |
|---|---|
| 木头 / 圆石 / 煤 / 小麦 | 小任务(写文件)掉落 |
| 羊毛 | 白天偶尔遇到羊(每次 1–2 个) |
| 铁矿石 / 铜矿石 | 中小任务掉落,需熔炼 |
| 红石粉 | 大任务(目标完成/子代理)掉落 |
| 钻石 / 紫水晶碎片 | 深挖稀有掉落 |
配方大全(survival_craft 的 recipe 参数)
基础
| 配方 id | 产物 | 材料 | 说明 |
|---|---|---|---|
planks | 木板×4 | 木头×1 | 基础建材 |
stick | 木棍×4 | 木板×2 | 工具手柄 |
torch | 火把×1 | 煤×1 + 木棍×1 | 照明压制刷怪:持有后夜晚刷怪概率 ×0.8(原版光照概念,不是免疫) |
furnace | 熔炉×1 | 圆石×8 | 解锁熔炼配方 |
熔炼(需先有熔炉)
| 配方 id | 产物 | 材料 |
|---|---|---|
smelt-iron | 铁锭×1 | 铁矿石×1 + 煤×1 |
smelt-copper | 铜锭×1 | 铜矿石×1 + 煤×1 |
smelt-stone | 石头×1 | 圆石×1 + 煤×1 |
食物与工具
| 配方 id | 产物 | 材料 | 效果 |
|---|---|---|---|
bread | 面包×1 | 小麦×3 | 吃一个回复 8 饥饿 |
iron-pickaxe | 铁镐 | 铁锭×3 + 木棍×2 | 解锁 subagent/subagent_fork,每用一次耐久 −1(耐久 120,可叠加) |
stone-sword | 石剑 | 圆石×2 + 木棍×1 | 入门剑:夜间 40% 概率击退(+2 经验,耐久 50;每次遇怪出手即 −1,无论命中) |
iron-sword | 铁剑 | 铁锭×2 + 木棍×1 | 夜间 60% 概率击退(+3 经验,耐久 100;出手即耗) |
diamond-sword | 钻石剑 | 钻石×2 + 木棍×1 | 更锋利:击退率 90%(+5 经验,耐久 200;出手即耗);与低档剑并存时优先使用 |
shield | 盾牌 | 木板×6 + 铁锭×1 | 50% 概率格挡怪物伤害(耐久 120;每次举盾即 −1,无论格挡成败;骷髅的打断箭挡不了) |
bed | 床 | 羊毛×3 + 木板×3 | survival_sleep 跳过夜晚 + 设置重生点(死亡后床保留) |
spyglass | 望远镜 | 紫水晶碎片×1 + 铜锭×2 | 解锁 web_search(永久,原版无耐久) |
红石电路
| 配方 id | 产物 | 材料 | 效果 |
|---|---|---|---|
redstone-torch | 红石火把×1 | 红石粉×1 + 木棍×1 | 电路组件(是材料,不是物品) |
redstone-repeater | 红石中继器×1 | 红石粉×1 + 红石火把×2 + 石头×3 | 解锁 workflow(永久) |
铁砧与修复(经验的用途)
| 配方 id | 产物 | 材料 | 效果 |
|---|---|---|---|
anvil | 铁砧×1 | 铁锭×12 | 解锁铁砧修复(原版需 31 锭,为节奏简化) |
repair-pickaxe | — | 铁锭×1 + 10 经验(需铁砧) | 铁镐耐久 +60(上限的一半) |
repair-stone-sword | — | 圆石×1 + 5 经验(需铁砧) | 石剑耐久 +25 |
repair-sword | — | 铁锭×1 + 10 经验(需铁砧) | 铁剑耐久 +50 |
repair-diamond-sword | — | 钻石×1 + 10 经验(需铁砧) | 钻石剑耐久 +100 |
repair-shield | — | 木板×1 + 10 经验(需铁砧) | 盾牌耐久 +60 |
修复要求目标工具存在且有损伤(耐久低于上限);修复不能超过上限。耐久数值在
settings.yaml可调,修复量随之上限的一半联动。
物品使用方式
- 面包:
survival_eat自动消耗;饥饿归零前记得吃。 - 火把 / 望远镜 / 红石中继器 / 熔炉 / 床:合成即生效(放进物品栏自动起效),无需装备。
- 铁镐:调用
subagent/subagent_fork时自动消耗 1 耐久;耗尽即失效,需重新合成(可多次合成叠加耐久)。 - 剑(石/铁/钻石)/ 盾牌:夜间遭遇怪物时自动判定反击/格挡,无需操作;多把剑并存时自动用最好的。
- 床:夜晚用
survival_sleep睡觉;白天不能睡。 - 耐久池:工具可重复合成叠加(如两把铁镐 = 240 耐久)。
工具门禁
生存模式里,高级能力需要先合成对应物品——就像没有镐子挖不了钻石。引擎在 tools/pre-execute 真实拦截(不是人设演戏):
| 工具 | 需要 | 消耗 |
|---|---|---|
subagent / subagent_fork | 铁镐 | 每次调用耐久 −1 |
web_search | 望远镜 | 永久解锁 |
workflow | 红石中继器 | 永久解锁 |
没有对应物品时调用会被拒绝,并提示所需配方。tool-ralph 不存在于本预设——命令方块是创造模式专属,生存模式不可合成(原版设定)。
死亡与重生
- 死亡:血量归零 → 原版死亡信息("你被苦力怕炸死了!")→ 掉落全部背包物品与材料(床除外)→ 经验减半 → 墓碑入档。
- 死亡后本会话即终结:除生存工具外的所有工具调用被拒绝,状态栏显示 ☠️——写下遗言,然后结束会话。
- 重生:新开一个生存模式会话即复活。世界天数、经验(死亡时已减半)、进度保留;有床则床保留(重生点);背包从零开始。
- 极限模式(hardcore):死亡即删档,世界归零。
难度档
在 settings.yaml 的 dsh-survival.difficulty 选择:
| 难度 | 效果 |
|---|---|
peaceful 和平 | 不刷怪;饥饿不掉血;无条件回血 |
easy 简单 | 刷怪概率 ×0.5;怪物伤害减半(最低 1) |
normal 普通 | 默认概率与伤害 |
hard 困难 | 刷怪概率 ×1.5;怪物伤害 ×2 |
hardcore 极限 | 同困难 + 死亡即删档 |
注意:与原版一致,难度不影响工具门禁——和平难度下依然需要铁镐才能用 subagent。
进度(成就)
原版成就名,随存档永久保留:
| 成就 | 达成条件 |
|---|---|
| 钻石! | 挖到第一颗钻石 |
| 铁器时代 | 熔炼出第一块铁锭 |
| 甜甜的梦 | 在床上睡第一觉 |
| 怪猎手 | 用剑第一次击退怪物 |
设定(settings.yaml)
${DSH_HOME}\settings.yaml 的 dsh-survival 段(不写则全部用默认值):
dsh-survival:
difficulty: normal # peaceful | easy | normal | hard | hardcore
dayLengthTurns: 8 # 一天包含的对话回合数(用户消息),最后 1/3 为夜晚
mobChance: 0.3 # 夜晚每个回合/工具调用的刷怪基础概率(0–1)
torchMobFactor: 0.8 # 持有火把时刷怪概率的倍率(光照压制;0=免疫)
hungerPerAction: 1 # 普通工具调用的饥饿消耗
heavyHunger: 1 # 重型工具(web/subagent/workflow)的饥饿消耗
breadHunger: 8 # 面包回复的饥饿值(食物链净收益转正)
pickaxeDurability: 120 # 铁镐耐久(subagent 可用次数池,修复量为其一半)
swordDurability: 100 # 铁剑耐久(反击次数池)
stoneSwordDurability: 50 # 石剑耐久(入门反击池)
diamondSwordDurability: 200 # 钻石剑耐久(反击次数池)
shieldDurability: 120 # 盾牌耐久(格挡次数池)
smallLootChance: 0.7 # 写文件触发小矿的概率(0–1)
| 字段 | 含义 | 默认 |
|---|---|---|
difficulty | 难度档,见上表 | normal |
dayLengthTurns | 一天的对话回合数;最后 floor(值/3) 回合是夜晚 | 8 |
mobChance | 夜晚每个动作(回合或工具调用)的刷怪基础概率 | 0.3 |
torchMobFactor | 持有火把时刷怪概率的倍率(光照压制;0 = 免疫) | 0.8 |
hungerPerAction | 普通工具调用的饥饿消耗 | 1 |
heavyHunger | 重型工具的饥饿消耗 | 1 |
breadHunger | 面包回复饥饿 | 8 |
pickaxeDurability | 铁镐耐久(subagent 可用次数池;修复量为其一半) | 120 |
swordDurability | 铁剑耐久(反击次数池) | 100 |
stoneSwordDurability | 石剑耐久(入门反击池) | 50 |
diamondSwordDurability | 钻石剑耐久(反击次数池) | 200 |
shieldDurability | 盾牌耐久(格挡次数池) | 120 |
smallLootChance | 写文件成功触发小矿的概率 | 0.7 |
存档与持久化
| 数据 | 生命周期 |
|---|---|
| 世界天数、经验、死亡数、重生点(床)、成就 | 跨会话持久化(storage domain 存档),每次挖矿/合成/睡觉/死亡与会话结束都会落盘,重启不丢 |
| 生命、饥饿、背包材料、物品栏 | 会话内存态——新会话(重生)时生命/饥饿回满,背包清空(有床则保留床) |
| 墓碑(每次死亡的死因与掉落清单) | 持久化(极限模式死亡时清空) |
浏览器状态栏
输入框上方的整行状态栏,只在「生存模式」会话显示,其他模式完全不可见(由 capability 门禁保证):
- 10 颗心(满心 = 2 血、半心 = 1 血、黑心 = 空)
- 10 根鸡腿(满 = 2 饥饿、半 = 1、灰 = 空)
- ☀️/🌙 + 天数、⭐ + 经验
- 死亡后显示 💀 + 死亡信息
- 每 2 秒自动刷新,悬停显示精确数值
图标来自 OpenMoji(CC BY-SA 4.0),同一图标家族、尺寸风格严格一致。
小贴士
- 指挥节奏:收到跃迁播报(入夜/低饥饿/低血量)就下指令;想省心开局说一句"生存你自己管"即可托管。
- 开局节奏:先干活挖矿(写文件就有掉落)→ 小麦×3 合成面包保命 → 圆石×8 出熔炉 → 铁矿石熔炼 → 铁镐解锁 subagent。深挖(完成目标)才有红石和钻石。
- 夜晚应对:火把(煤+木棍)把刷怪压到 ×0.8,但不是免疫——铁剑/盾牌仍是硬防线;有羊毛就做床睡觉彻底跳过夜晚。
- 饥饿管理:观察(read/grep)和交谈(ask_user)免费,规划可以放在对话里;批量重活前先吃饱。
- 死亡不是失败:掉落有墓碑记录,世界进度延续;极限模式另说。
- 别浪费回合:门禁拦截是真实的——没合成望远镜前别反复试
web_search。
故障排查
| 症状 | 处理 |
|---|---|
| 预设挂载报「Cannot find package」 | 包未装进 profile workspace:确认 file: 依赖与 pnpm install |
| 工具调用没被拦截 | 确认会话确实挂在「生存模式」预设上(其他预设不受影响) |
| 状态栏不显示 | 确认 survival-hud 宿主行已插入 cordis.patch.yml 且已重启;状态栏只在生存模式会话显示 |
| 昼夜不推进 | 昼夜由用户消息(对话回合)推进,纯聊天也过天;修改过设定请确认 dayLengthTurns 合理 |
| 存档丢失 | storageDomain 后端未挂载时引擎降级为内存态;确认官方 storage-json/storage-domain 宿主行存在 |
组件与架构
| 组件 | 平面 | 说明 |
|---|---|---|
@dsh-survival/engine | Agent 预设(isolate realm) | 规则引擎:硬结算(tools/pre-execute 门禁/饥饿/昼夜/怪物)、挖矿结算(tools/result)、存档、settings 命名空间 dsh-survival |
@dsh-survival/tool-survival | Agent 预设(同 realm) | survival_status / survival_craft / survival_eat / survival_sleep + 系统提示 HUD 文本 |
@dsh-survival/hud | 宿主(cordis.patch.yml) | 浏览器状态栏桥:宿主侧 typert Remote 经 agentPresets.serviceFor 读预设引擎,capability 门禁只对生存会话生效 |
config/agent-presets/survival | Agent 预设 | 显示名「生存模式」;从 standard 拷贝,去掉 ralph(命令方块是创造模式专属) |
引擎发布 survivalEngine 服务,消费者全在预设内部;跨会话存档通过消费宿主 storageDomain 服务完成。唯一的宿主行是 @dsh-survival/hud(预设 realm 对宿主不可见,浏览器 RPC 需要宿主侧 Remote——api-proxy 读 goals/skills 的同一官方通路)。
素材许可
状态栏图标来自 OpenMoji(CC BY-SA 4.0,署名-相同方式共享),同一 72×72 图标家族,见 packages/hud/assets/ATTRIBUTION.md。不包含任何 Minecraft 版权素材。
开发
pnpm install
pnpm run build # tsup 构建 lib/(hud 含 client 包)
pnpm run typecheck # 先 build 再 typecheck(工具包依赖引擎的 d.ts)
pnpm run pack # 打包 tgz 到 dist/
安装到 DeepSeek Harness 见 docs/installation.md。
已知不足与参与贡献
本项目是娱乐向的独立作品,仍有许多不足与未实现的构想,期待开发者提 Issue 与 PR 共同改进:
- 附魔台:MC 经验系统的灵魂(赌附魔书、效率/耐久/锋利等效果),目前经验的唯一消耗途径只有铁砧修复
- 更多原版物品:盔甲、铁斧、锄头等工具体系,以及下界/末地概念
- 更多原版事件:雷暴(配合避雷针给铜锭第二种用途)、村民交易等
- 状态栏交互面板:只读的背包/配方面板(此前讨论过的方向,尚未实装)
- 多语言:README 与游戏文案目前以中文为主
- 测试覆盖:目前靠人工实测,欢迎补充自动化测试
欢迎 fork 本仓库并提交 PR——修复 bug、补充测试、调整平衡性、新增玩法模块皆受欢迎。提交前请了解架构约定:引擎与工具属于预设 isolate realm(服务不发布进 root realm),宿主侧仅 @dsh-survival/hud 状态栏桥一行;跨会话存档通过宿主 storageDomain 服务完成。