dsh-agentnoodle:AI 驅動的羣像聊天遊戲框架

DeepSeek Harness (DSH) 的理念是「一切皆插件」。在構建敘事或 RPG 體驗時,通常需要爲每個場景編寫代碼或維護複雜的狀態機。dsh-agentnoodle 提供了一種替代方案:將遊戲世界構建爲對話上下文,由 agent 動態管理。

簡介

dsh-agentnoodle 是一個由 bigharm 維護的 DSH 插件,用於 AI 驅動的羣像聊天遊戲框架。它將一個行動或一句話轉化爲場景中 2-4 個在場 NPC 的獨立回應,每條反應獨立成一條聊天室消息。

插件基於 LazyNoodle 項目改造,支持通過對話直接管理遊戲世界,無需編寫代碼即可擴展新功能或修改現有邏輯。

核心功能

  • 羣像反應:一次行動 → AI 挑選 2-4 個在場 NPC 各自回應,每條獨立渲染。
  • 多世界:每個世界獨立的世界觀 / 地點 / NPC / 角色存檔。
  • 對話建世界:無需寫代碼,直接在對話裏創建世界、生成地點與 NPC。
  • 可擴展框架:世界、地點、NPC 與新功能都可在對話裏讓 agent 添加修改。
  • 頭像插圖:每條消息顯示說話人頭像;無頭像顯示名字首字佔位圓。
  • 角色卡與世界導入:兼容 SillyTavern 角色卡(V1/V2/V3 JSON 或 PNG)與 LazyNoodle 世界目錄。
  • 本地持久化:JSON 文件存檔,AI 解鎖的新地點自動註冊進地點庫。
  • 模型無關:複用 DeepSeek Harness 的默認模型路由,無需額外 API Key。

安裝與啓用

通過命令行安裝:

dsh plugin --profile web add dsh-agentnoodle

安裝完成後,重啓 dsh web。頁面右下角會出現一個 🍜 AgentNoodle 聊天室 懸浮窗,可拖動、可最小化,不打擾主界面。

典型用法

1. 創建新世界

在對話中調用工具創建世界骨架並定義世界觀:

// 創建世界
agentnoodle_create_world(worldId, name, worldview)

// 生成內容
agentnoodle_generate_content(worldId, stage=locations) // 生成地點
agentnoodle_generate_content(worldId, stage=npcs)     // 生成 NPC

2. 導入現有數據

  • 角色卡:調用 agentnoodle_import_card,粘貼 SillyTavern JSON 或本地 PNG/JSON 路徑。
  • 世界:調用 agentnoodle_import_world,導入 LazyNoodle 風格的世界目錄。

3. 更新規則

使用 agentnoodle_update_rules(worldId, rulesText) 設定硬性約束,該規則會注入遊戲提示詞的醒目位置,內容生成(地點/NPC)也會遵守。

對話工具列表

以下工具註冊爲模型工具,agent 可直接調用:

工具 作用
agentnoodle_create_world 創建新世界
agentnoodle_update_worldview 更新世界觀文本
agentnoodle_generate_content 按世界觀生成地點、NPC 或兩者
agentnoodle_list_worlds 世界概覽,傳 worldId 查看詳情
agentnoodle_add_location 手工添加地點
agentnoodle_add_npc 手工添加 NPC(校驗地點歸屬)
agentnoodle_import_card 導入 SillyTavern 角色卡爲 NPC
agentnoodle_import_world 導入 LazyNoodle 風格世界目錄

規則與約束

  • 硬性約束:通過 agentnoodle_update_rules 添加的規則,注入提示詞醒目位置,優先於世界觀,內容生成也會遵守。
  • 軟約束:提示詞層規則(AI 大部分時候遵守)。
  • 代碼擴展:需要程序強制的機制(死亡狀態、數值系統等)屬於插件代碼擴展。

數據結構

世界數據存儲在本地 JSON 文件中,路徑默認爲 <dataDir>/worlds/<id>/。

<worldId>/
├── worldview.txt          # 世界觀設定
├── locations.json         # 地點列表
├── npcs.json              # NPC 列表
├── avatars/               # NPC 頭像 PNG(可選)
└── sessions/characters/   # 角色存檔

插件內置了默認數據(如「暮色酒館」世界),首次啓動自動播種。如需自定義,可在 profile 的 cordis.patch.yml 中配置 dataDir。

該插件允許在無需編寫代碼的情況下,通過對話構建複雜的敘事世界。更多詳情與源碼,請訪問 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜