dmsobtl/star-harness

dmsobtl★ 0TypeScript最后同步: 2026-08-17

在 GitHub 打开

一套可复用在各种游戏上的 NPC Agent 框架,基于 DeepSeek Harness(dsh)构建。

README 摘要

star-harness 一套 可复用在各种游戏上 的 NPC Agent 框架,基于 DeepSeek Harness( dsh )构建。 内置一个可玩的垂直切片: 星际大航海 ——你走进欧米茄空间站的酒吧,和一个退役走私犯谈生意。他会记得你上次干了什么,会因为你砍价而不爽,钱不够时会拒绝成交并给你替代方案。 核心是一句话: agent 做大脑,tool 做手脚,SQLite 做记忆,游戏引擎做皮囊。 想了解这套设计背后的完整推演、以及我们对未来 AI 游戏的判断,见 docs/design.md。 框架 vs 游戏是硬边界。 src/framework/ 不含任何游戏或客户端知识——没有货币名、没有地点、没有工具名、没有 three.js 。它只依赖一个 GameWorld 接口。这条边界由 tests/layering.spec.ts 机械守护:往框架里写一个 player-1 或 npc speak ,测试就红。换个游戏 = 换 src/game/ ,框架一行不动。 依赖方向单向: 游戏 → 框架 → dsh ,从不反向。 src/plugin.ts 是唯一把三者拼在一起的地方(composition root)。 1. 五分钟跑起来(不需要 API key) 打开 ,点击吧台前那个蓝色人形。 start:mock 用的是 dsh 的 dsh-llm-mock-server ——一个可编排的 OpenAI 兼容服务器。 真实的适配器、真实的 agent loop、真实的工具管线全都在跑 ,只有 provider 那一段线是假的。所以它验证的是架构,不是玩具。 world.db 作为免 seed 演示库被有意提交,因此克隆后直接 start:mock 也能跑。 npm run seed 会从 src/game/world/seed.ts 重建一份全新世界。 换成真实模型 .env 已在 .gitignore 里。dsh 通过 dsh-credentials-local 在每次请求时解析凭据,key 不会写进任何配置文件。 两种拓扑 命令 配置 用于 npm start / npm run start:mock game.cordis.yml , webRoot: './web' 浏览器客户端,一个进程跑全栈 npm run start:headless headless.cordis.yml , webRoot: '' 不挂任何客户端 ,Unity/Godot/Unreal 通过 /gh 接入 两者跑的是同一套框架与同一套帧协议;headless 拓扑里 GET / 直接 404(没有客户端),但 NPC 对话照常。这就是“框架不绑 three.js”的意思。 2. 你会看到什么 现象 背后的机制 对话逐字出现 NPC 的台词是 npc speak 工…

在 GitHub 查看完整 README →
娱乐/广告dsh-pluginagent

分类