Показать изменения
# 1.5.1 Touhou Little Maid — Changelog
## Bug Fixes
### Maid Behavior Fixes
- Fixed: Maid stealing her own food while eating, causing the eating animation to loop indefinitely
- Fixed: Right-clicking while the maid holds an instrument from Immersive Melodies causes the instrument to drop
- Fixed: Curios accessories not dropping correctly upon maid death (by CentaureaHO)
- Fixed: Food completely disappearing after the maid finishes eating when Accessorify is installed
- Fixed: Game crash caused by an excessively long persona system prompt in AI chat
### Model & Rendering Fixes
- Fixed: Certain default model issues — the Bridal Kitsune model not rendering when at low health
### Create Mod Compatibility Fixes
- Fixed: Destroying a Create Rotating Display block dropping an extra figurine item
- Fixed: Maid riding a Create Seat not rotating with the overall structure's orientation
### Block & Item Fixes
- Fixed: Snack Cabinet not dropping its contents when broken
### Mod Compatibility Fixes
- Fixed: Curios accessory slots unable to turn pages under NeoForge 1.21.1
- Fixed: Broom hitbox abnormality when installed alongside Alex's Caves (by CentaureaHO)
- Fixed: Conflict between broom riding and Leawind's Third Person (by CentaureaHO)
### AI / Network Interface Fixes
- Fixed: SiliconFlow speech recognition returning HTTP 422 errors
- Fixed: Multiple compatibility issues when using newer models such as GPT-4.5 with the updated OpenAI API
## Performance Optimizations
- Optimized: Refactored the rendering logic for item forms, significantly reducing render time for item figurines and seats
- Optimized: Improved the display logic for maid attribute values to prevent UI display abnormalities caused by value overflow
## AI Agent Updates
The maid's AI chat functionality has been significantly refactored in this update, with systematic optimizations based on mainstream Agent architecture design principles. Currently, only the **Touhou Little Maid: Epistalove** add-on has a known compatibility crash; all other add-ons are compatible.
### Provider Support Updates
- Updated model lists for providers including Aliyun, SiliconFlow, OpenAI, and others to their latest versions
- Removed Tencent Hunyuan provider
- Added the following default providers:
- Gemini
- Grok
- OpenRouter
- GLM
- MiniMax (supports both LLM and TTS)
- KiMi
- Tencent Cloud (ASR only)
### UI Interaction Improvements
This update significantly lowers the barrier for configuring AI-related features and greatly improves ease of use.
- All AI chat-related settings have been unified into the UI panel opened by pressing **T** while facing the maid; the corresponding tabs in the maid's original GUI have been removed
- The UI panel includes: provider settings, maid persona prompt editor, chat history viewer and deleter, LLM / TTS / language options, and provider configuration modules
- The panel displays real-time cumulative Token usage
- Provider configuration now includes an authentication mechanism, with full consideration for single-player, LAN, dedicated server host, and client scenarios — server administrators no longer need to worry about key and configuration security
- Provider configuration can now be fully modified in-game without manually editing JSON config files
- The chat input box supports using the up/down arrow keys to quickly recall previous inputs for re-editing
- A "None" option has been added to TTS provider selection, allowing players to disable speech synthesis on the client side
### AI Chat Functionality Refactor
- **Prompt Optimization**
- The maid can now more accurately recognize player intent and call the correct tools
- Highly relevant contextual information is automatically injected into each conversation to improve instruction recognition efficiency
- **Conversation Robustness Improvements**
- When a large model hallucinates or incorrectly calls a tool, the system will automatically trigger a retry mechanism to guide the model to self-correct
- Message history structure is validated before each conversation to prevent HTTP 400 errors (previously triggered frequently when using models such as DeepSeek)
- If the associated maid entity no longer exists, the conversation session will be immediately terminated to prevent erroneous calls
- **Cache Hit Rate Optimization** (improving cache hit rate effectively reduces API costs and speeds up model responses)
- Conversation cache hit rate has been improved from approximately 50% to approximately 85%
- **Tool Call Adjustments**
- Added more callable tools, including: toggling the maid's sit state, Home mode, work schedule, setting attack targets, etc.
- Increased the maximum number of rounds in a tool call chain and introduced multiple circuit-breaker mechanisms to support AI combining multiple tool calls for complex operations while preventing infinite loops that could cause abnormal Token consumption
- Some game context with rich content is now fetched on-demand via the tool call mechanism, reducing baseline Token usage
- Use the command `/tlm ai_chat context` to output all currently available game context information
- Use the command `/tlm ai_chat tool` to output all currently available tool lists
- **Skill System**
- Added the Skill system: standard Skill files can be placed in a specified path within the config folder or data pack, and the system will inject them into the conversation context at the appropriate time
- A built-in default Skill is included, containing knowledge about the maid mod itself, enabling the maid to correctly answer questions about the mod
- Use the command `/tlm ai_chat skill` to output all currently loaded Skills
- **Context Compression**
- When the conversation history reaches a certain length, the system will automatically compress and summarize the history, preserving conversation continuity while effectively reducing Token usage
- **UI Feedback Improvements**
- When the maid executes a tool call, the chat bubble will refresh in real time to display the current tool call status, reducing player confusion during wait times
- Adjusted the maximum width of regular text chat bubbles to prevent overly long single lines from affecting readability
## New Content
### New Models
- Updated: K Snail model
- Added: Holy Kitsune, Elf Kitsune (Starfield), Survivor Kitsune (Rosemist), Mini Kitsune (White Polarbear), Tactical Kitsune (Sodaball Pixel)
- Added: Nian Gao Fox (Perfect Freeze)
- Added: Missing characters from Touhou Kinjokyou (FumoFumo)
- Updated: Reimu and Marisa models (CrystalSun)
### Sophisticated Backpacks Support
Added compatibility support for Sophisticated Backpacks: after placing a Sophisticated Backpack in the maid's Curios slot, the maid can interact with the backpack normally, including taking out and putting in items. (by CentaureaHO)
### Mini Maid Fairy
When a maid fairy spawns, there is now a **10%** chance to spawn a Mini Maid Fairy instead. The Mini Maid Fairy has a slightly higher flight speed than a regular maid fairy and drops double P-Points upon being killed.
## FallbackIngredient
Added the `FallbackIngredient` recipe ingredient type, used to implement differentiated crafting inputs in a multi-mod environment (the design concept is similar to the multi-mod adaptation approach of the Avaritia crafting table).
This ingredient type iterates through the `fallbacks` list in order and selects the first entry whose corresponding mod is installed as the actual crafting input, implementing logic such as "use item from mod A if installed, otherwise fall back to B".
**Usage Example:**
The following recipe demonstrates an altar recipe that uses the millstone from `kaleidoscope_cookery` if that mod is present, otherwise falls back to vanilla planks, while always requiring a diamond as a fixed ingredient:
```json
{
"type": "touhou_little_maid:altar_recipe",
"output": {
"item": "touhou_little_maid:bookshelf",
"count": 1
},
"power": 0.1,
"ingredients": [
{
// Required type parameter
"type": "touhou_little_maid:fallback_ingredient",
// Ordered list; the first entry whose mod is installed will be used as the actual input
"fallbacks": [
{
// Use the millstone from kaleidoscope_cookery if present
"modid": "kaleidoscope_cookery",
"value": {
"item": "kaleidoscope_cookery:millstone"
}
},
{
// Fallback: use vanilla planks (tag matching)
"modid": "minecraft",
"value": {
"tag": "minecraft:planks"
}
}
]
},
// Fixed ingredient: diamond (vanilla Ingredient syntax)
{
"tag": "forge:gems/diamond"
}
]
}
```