dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
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
核心特性
tools/pre-execute 实时结算,不是人设演戏survival_status 查看完整状态与配方书;完成任务会掉落材料,survival_craft 合成,survival_eat 吃东西,survival_sleep 睡觉。一句话玩法:工作即挖矿,挖矿得材料,材料合成物品,物品解锁能力与防御;饿了吃、夜了防、够了合成;死了新会话复活,世界继续。
你是玩家,agent 是你的化身与执行者。 生存决策由你拍板:
引擎只在状态变化瞬间推送一条消息(不刷屏,恢复后重新武装):
| 事件 | 播报内容 |
|---|---|
| 🌙 入夜 | 夜幕降临提醒 + 火把/床的应对建议 |
| ☀️ 黎明战报 | 昨夜遭遇次数与击退/格挡/受伤明细(剑盾耐久消耗的账本);平安夜也有通报 |
| 🍖 饥饿 ≤ 4 | 低饥饿警告 + 吃面包指引 |
| ❤️ 生命 ≤ 4 | 血量告急警告 + 回血条件 |
| ⛏️🔭🔴 合成解锁 | 合成铁镐/望远镜/红石中继器时宣布解锁的能力 |
| ☠️ 死亡 | 死亡信息 + 掉落清单 + 复活说明 |
播报是插件来源消息,不推进游戏时间(只有真实用户消息算对话回合)。
| 数值 | 上限 | 显示 |
|---|---|---|
| 生命 ❤️ | 20(10 颗心) | 一颗满心 = 2 血,半颗心 = 1 血 |
| 饥饿 🍗 | 20(10 根鸡腿) | 一根满鸡腿 = 2 饥饿,半根 = 1 |
read / glob / grep / read_image / ask_user / todo_write / create_goal / get_goal / skill / job_list / job_output / job_kill / list_agents。| 怪物 | 效果 |
|---|---|
| 僵尸 | −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 睡觉;白天不能睡。生存模式里,高级能力需要先合成对应物品——就像没有镐子挖不了钻石。引擎在 tools/pre-execute 真实拦截(不是人设演戏):
| 工具 | 需要 | 消耗 |
|---|---|---|
subagent / subagent_fork |
铁镐 | 每次调用耐久 −1 |
web_search |
望远镜 | 永久解锁 |
workflow |
红石中继器 | 永久解锁 |
没有对应物品时调用会被拒绝,并提示所需配方。tool-ralph 不存在于本预设——命令方块是创造模式专属,生存模式不可合成(原版设定)。
在 settings.yaml 的 dsh-survival.difficulty 选择:
| 难度 | 效果 |
|---|---|
peaceful 和平 |
不刷怪;饥饿不掉血;无条件回血 |
easy 简单 |
刷怪概率 ×0.5;怪物伤害减半(最低 1) |
normal 普通 |
默认概率与伤害 |
hard 困难 |
刷怪概率 ×1.5;怪物伤害 ×2 |
hardcore 极限 |
同困难 + 死亡即删档 |
注意:与原版一致,难度不影响工具门禁——和平难度下依然需要铁镐才能用 subagent。
原版成就名,随存档永久保留:
| 成就 | 达成条件 |
|---|---|
| 钻石! | 挖到第一颗钻石 |
| 铁器时代 | 熔炼出第一块铁锭 |
| 甜甜的梦 | 在床上睡第一觉 |
| 怪猎手 | 用剑第一次击退怪物 |
${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 门禁保证):
图标来自 OpenMoji(CC BY-SA 4.0),同一图标家族、尺寸风格严格一致。
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 共同改进:
欢迎 fork 本仓库并提交 PR——修复 bug、补充测试、调整平衡性、新增玩法模块皆受欢迎。提交前请了解架构约定:引擎与工具属于预设 isolate realm(服务不发布进 root realm),宿主侧仅 @dsh-survival/hud 状态栏桥一行;跨会话存档通过宿主 storageDomain 服务完成。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。