[{"data":1,"prerenderedAt":8713},["ShallowReactive",2],{"knowledge-index:en":3},[4,1957,4262,5489,6350,7245,7823,8309],{"id":5,"title":6,"appliesTo":7,"body":19,"description":1940,"extension":1941,"meta":1942,"navigation":1943,"path":1944,"publishedAt":1945,"seo":1946,"status":1947,"stem":1948,"tags":1949,"technologies":1953,"updatedAt":1955,"__hash__":1956},"knowledge_en\u002Fknowledge\u002Fai\u002Fllm\u002Flocal-llm-landscape-2026.md","Major Local LLMs in 2026",[8,9,10,11,12,13,14,15,16,17,18],"Qwen3.8-Flash-Next license-summary correction and Ollama RC MLX memory retention checked on October 13, 2026 JST","Ollama v0.40.3, Bonsai Hadamard support, and Gemma 4 OpenCL decode checked on October 12, 2026 (JST)","LLM-jp-4.1, Linux loading peaks, and MLX decision models checked on October 11, 2026","MoE GPU cache and Ollama conversion \u002F disk recovery checked on October 11, 2026","K2 Horizon tensor parallelism and ML Drift infrastructure checked on October 11, 2026","Ollama v0.40.0 non-prerelease availability, upstream K2 Horizon support, and quantized files checked on October 7, 2026","Portable Computer Windows, Splash, and Qwen indexer memory checked on October 4, 2026","MiMo-V2.6-Distill-Qwen-9B, packed GGUF inference, and Ollama MLX checked on September 29, 2026","Spark-X2.5, Bonsai 2, Edge0, and Iris-mini checked on September 18, 2026","Public information available as of September 1, 2026","K2 Horizon and NVIDIA PAIR checked on September 6, 2026",{"type":20,"value":21,"toc":1904},"minimark",[22,27,31,34,37,40,44,105,109,112,115,141,144,148,153,164,185,188,196,199,207,211,225,228,232,241,244,248,251,254,486,490,498,585,588,596,600,621,636,639,647,650,653,674,677,702,721,730,733,763,767,775,778,781,784,787,791,799,808,820,832,835,844,848,856,859,862,865,868,871,874,882,891,894,908,928,931,935,943,946,949,952,960,963,966,975,994,1008,1011,1016,1042,1064,1068,1076,1079,1112,1115,1123,1137,1140,1143,1176,1206,1210,1219,1222,1225,1228,1236,1239,1242,1249,1252,1255,1259,1267,1270,1273,1277,1286,1294,1321,1335,1356,1388,1408,1412,1415,1498,1501,1504,1522,1537,1558,1562,1565,1582,1585,1589,1592,1595,1602,1608,1612,1615,1618,1621,1624,1627,1644,1648,1671,1675],[23,24,26],"h2",{"id":25},"overview","Overview",[28,29,30],"p",{},"Local LLMs are no longer limited to running a chat application on a PC. They are also becoming a foundation for Tool Use—the ability to call external functions such as search and programs—and for Agents that carry out multiple tasks toward a goal. Meta, Liquid AI, NVIDIA, Ornith, Qwen, Google, OpenAI, and Mistral now offer models designed with local inference or downloadable model weights in mind, while Perplexity has released a product that places both the model and its Agent runtime on the local system.",[28,32,33],{},"This article introduces major models as of September 1, 2026, and explains how to read specifications such as quantization, which reduces model size and memory requirements, and Context Length, the amount of text a model can reference at once. It also covers an Agent runtime that combines models, tools, context management, and sandboxing, providing an overview for initial selection rather than instructions for a specific product.",[28,35,36],{},"K2 Horizon and NVIDIA PAIR were added after checking their primary sources on September 6, 2026. Earlier entries retain their stated dates and have not all been revalidated for this update.",[28,38,39],{},"On September 18, 2026, primary sources were checked for Spark-X2.5, Bonsai 2, Edge0, and Iris-mini. These additions distinguish compact Agent models, low-bit compression, SSD expert streaming, and harness-dependent evaluation; they do not revalidate every older entry.",[23,41,43],{"id":42},"conclusions","Conclusions",[45,46,47,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102],"ul",{},[48,49,50],"li",{},"The October 13 check corrects Flash-Next's existing license summary and adds the Ollama RC MLX memory-retention fix. Separate commercial-use conditions, logical cache usage, and actual allocated memory; earlier entries retain their information dates.",[48,52,53],{},"The October 12 check confirms paused Ollama background conversion, upstream Bonsai Hadamard support for the dev Q2_0 artifact, and conditional Gemma 4 OpenCL decode support. These change evaluation paths, not measured quality or memory requirements.",[48,55,56],{},"The October 11 check adds LLM-jp-4.1 as a Japanese-Agent research candidate and confirms K2 Horizon tensor parallelism re-enablement and MLX decision-model support. MoE caching, loading buffers, disk conversion, and ML Drift affect different resources and execution paths. Smaller files or added support do not guarantee Japanese quality, lower total memory, or concurrent-game performance.",[48,58,59],{},"The October 7 check confirms a non-prerelease Ollama v0.40.0 for evaluating the MLX path, plus upstream llama.cpp support and official quantized GGUF options for K2 Horizon. Pin the runtime, model, and context, and separate availability from measured performance.",[48,61,62],{},"The September 29 check adds MiMo-V2.6-Distill-Qwen-9B as an agentic candidate. Evaluate Transformers packed GGUF inference and Ollama's automatic MLX selection within their supported environments and versions. This does not revalidate every earlier entry.",[48,64,65],{},"Spark-X2.5 expands the compact Agent shortlist. Bonsai 2 compresses weights, while Edge0 streams experts from SSD; their sizes and memory figures describe different things. Iris-mini illustrates why an Agent score belongs to its model and harness together.",[48,67,68],{},"K2 Horizon 3.7B \u002F 7B add candidates for compact local Agents; developer benchmark results do not establish NPC quality or latency on consumer PCs.",[48,70,71],{},"NVIDIA PAIR distributes independent requests across local PCs, expanding concurrent capacity without pooling VRAM.",[48,73,74],{},"Local LLM competition now covers reasoning—the ability to work through intermediate steps before answering—Tool Use, image understanding, and long-running tasks, not just conversation.",[48,76,77],{},"Meta's Muse Glimmer is notable for explicitly targeting multi-step Agent work on consumer PCs.",[48,79,80],{},"Liquid AI's LFM2.5-2.6B combines an official 1.59 GB 4-bit checkpoint with training for Tool Use, making it a compact on-device Agent candidate. QAD and DSpark address quantization loss and generation speed as separate concerns.",[48,82,83],{},"NVIDIA's Nemotron 3.5 Lightning makes a clear distinction between large models that handle complex planning and execution models that repeatedly perform tasks such as Tool Use.",[48,85,86],{},"Ornith 1.5 9B emphasizes Tool Calling and Agentic Coding. Its official Q4_K_M file is 5.63 GB, making it a candidate for evaluation on an 8 GB-class GPU, but that number covers weights only.",[48,88,89],{},"Qwen3.8-Flash-Next previews the efficiency direction planned for Qwen4. Activating about 6B parameters per token, however, does not make it a roughly 6B-scale PC model.",[48,91,92],{},"Mistral's Ministral 3 3B is a compact edge candidate with a 256K context window, Structured Outputs, and Function Calling.",[48,94,95],{},"Runtime support also changes practical viability. LM Studio 0.4.22 added support for DFlash, DSpark, and MTP assistant drafters.",[48,97,98],{},"Perplexity Portable Computer demonstrates that co-designing the model, context management, tools, scheduler, and sandbox can change Agent outcomes even when the underlying model is the same.",[48,100,101],{},"A model name and parameter count alone do not determine memory requirements, speed, or quality.",[48,103,104],{},"The best model depends on the workload and hardware, so shortlisted candidates should be compared on the same tasks and system.",[23,106,108],{"id":107},"how-local-llms-are-changing","How local LLMs are changing",[28,110,111],{},"Earlier local LLM discussions focused on whether a quantized small model could run on a personal computer and generate natural text at all.",[28,113,114],{},"The current question is how much of the following can be handled locally:",[45,116,117,120,123,126,129,132,135,138],{},[48,118,119],{},"Reasoning",[48,121,122],{},"Tool Use",[48,124,125],{},"Inspecting a failed tool result and trying again",[48,127,128],{},"Understanding images and video as well as text",[48,130,131],{},"Referring to long documents and earlier interactions",[48,133,134],{},"Adjusting the balance between reasoning effort and response speed",[48,136,137],{},"Generating output fast enough to sustain multiple tasks",[48,139,140],{},"Assigning complex planning and repetitive Tool Use to different models",[28,142,143],{},"Models should therefore be evaluated as part of a complete runtime that includes data compression, inference software, techniques for faster generation, and the harness that manages context and tools.",[23,145,147],{"id":146},"evaluate-the-model-and-harness-together","Evaluate the model and harness together",[149,150,152],"h3",{"id":151},"portable-computer-co-designs-the-model-and-harness","Portable Computer co-designs the model and harness",[28,154,155,156,163],{},"Perplexity's ",[157,158,162],"a",{"href":159,"rel":160},"https:\u002F\u002Fwww.perplexity.ai\u002Fuk\u002Fhub\u002Fblog\u002Fintroducing-portable-computer-for-local-first-ai",[161],"nofollow","Portable Computer"," is a local-first Agent runtime released on August 25, 2026. At launch, it runs Qwen 3.8 27B or PPLX 27B, a version post-trained for Agent workloads, on NVIDIA DGX Spark. The Linux release is available to Pro and Max subscribers. RTX PC and Windows support was still planned in that initial announcement.",[28,165,166,167,172,173,178,179,184],{},"Checked on October 4, 2026. ",[157,168,171],{"href":169,"rel":170},"https:\u002F\u002Fblogs.nvidia.com\u002Fblog\u002Flocal-ai-perplexity-windows-pcs\u002F",[161],"NVIDIA announced Windows availability on September 14"," for compatible GeForce RTX \u002F RTX PRO GPUs with at least 24 GB VRAM. ",[157,174,177],{"href":175,"rel":176},"https:\u002F\u002Fnewsroom.amd.com\u002Fnews\u002Famd-perplexity-agentic-pcs\u002F",[161],"AMD announced support on September 24"," for supported Ryzen AI Max systems, including Ryzen AI Halo. The ",[157,180,183],{"href":181,"rel":182},"https:\u002F\u002Fwww.perplexity.ai\u002Fen-GB\u002Fhub\u002Fproducts\u002Fportable-computer",[161],"current product page"," lists Pro \u002F Max subscriptions. These expand the hardware evaluation options; our language-quality, latency, and concurrent-game tests remain unperformed. Product availability does not establish checkpoint redistribution rights.",[28,186,187],{},"The distinguishing feature is that it does not only run the model locally. Its orchestrator, planner, tool router, scheduler, durable task queue, and local search index also run on the device. Ordinary work and files remain local. Web search, connected services, and stronger cloud models are used only when required and approved by the user. Work completed by the local model does not consume cloud-inference credits.",[28,189,155,190,195],{},[157,191,194],{"href":192,"rel":193},"https:\u002F\u002Fwww.perplexity.ai\u002Fuk\u002Fhub\u002Fblog\u002Fa-local-first-agent-for-private-and-cost-effective-knowledge-work",[161],"technical report"," says that a deterministic orchestrator manages context, the execution loop, and policy while the LLM proposes the next action. Tools execute in an OS-level sandbox. If the sandbox is unavailable, the harness disables itself instead of falling back to unsandboxed execution. A cloud advisor receives only approved context and has no direct access to local files or tools.",[28,197,198],{},"On Perplexity's own 53-task Local Knowledge Work Bench, all configurations using Qwen 3.8 27B on NVIDIA DGX Spark scored 82.6% with the Portable Computer harness, 77.6% with Pi, and 74.0% with Hermes. Portable Computer with PPLX 27B reached 85.4%. Each task was evaluated three times. This developer evaluation shows that harness design can affect results with the same model, but the benchmark is an unpublished internal set and does not establish the same advantage for other workloads or hardware.",[28,200,155,201,206],{},[157,202,205],{"href":203,"rel":204},"https:\u002F\u002Fhuggingface.co\u002Fperplexity-ai\u002Fpplx-computer-qwen-3-8-27b-dflash2-20260824",[161],"PPLX checkpoint repository"," describes a DGX Spark configuration using NVFP4, FP8 KV cache, and DFlash2. However, the repository labels the license as “other” and does not establish redistribution or commercial-product integration terms. Availability inside Portable Computer and permission to redistribute the checkpoint in another product must be evaluated separately.",[149,208,210],{"id":209},"iris-mini-makes-context-management-part-of-the-evaluation","Iris-mini makes context management part of the evaluation",[28,212,213,214,219,220,224],{},"Checked on September 18, 2026. ",[157,215,218],{"href":216,"rel":217},"https:\u002F\u002Fhuggingface.co\u002FAllSpark-Research\u002FIris-mini",[161],"Iris-mini"," is a search Agent post-trained from Qwen3.6-35B-A3B, with 35B total and 3B active parameters and a 256K context. The developer reports BrowseComp scores of 64.7 without context management and 82.2 with ",[221,222,223],"code",{},"discard-all",", which resets the conversation to the opening question after a prompt threshold. These are developer measurements, not an independent reproduction. The cross-model table uses different harness conditions for its baselines and is not a controlled ranking.",[28,226,227],{},"The useful lesson is to evaluate the model, search tools, and context management together. Active parameters do not determine full weight memory, and serving the model locally does not make external web searches offline. This is a research-Agent candidate, not evidence for NPC quality.",[23,229,231],{"id":230},"nvidia-pair-routes-inference-requests-across-pcs","NVIDIA PAIR routes inference requests across PCs",[28,233,234,235,240],{},"Checked on September 6, 2026. ",[157,236,239],{"href":237,"rel":238},"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FPersonal-AI-Router",[161],"NVIDIA PAIR"," is a beta local inference router that sends independent requests to compatible computers on the same LAN. It exposes Ollama-compatible and OpenAI-compatible endpoints and chooses eligible nodes according to engine availability, model availability, and current workload.",[28,242,243],{},"Each request completes on one node. PAIR does not pool GPU memory, shard a model across computers, or split an in-flight request. It is a candidate for concurrent multi-agent workloads; it does not establish that one request will become faster. Evaluate total completion time and queueing separately from single-request latency.",[23,245,247],{"id":246},"major-models","Major models",[28,249,250],{},"This is not a comprehensive ranking. The models below are representative examples of different directions in local LLM development in 2026.",[28,252,253],{},"The release date is the official release date of the model or major derivative covered here, not the last-modified timestamp of its distribution repository. Month-level precision is used when the official source does not provide a specific day.",[255,256,257,279],"table",{},[258,259,260],"thead",{},[261,262,263,267,270,273,276],"tr",{},[264,265,266],"th",{},"Developer",[264,268,269],{},"Model",[264,271,272],{},"Official release date",[264,274,275],{},"Main characteristics",[264,277,278],{},"What to verify",[280,281,282,300,317,334,351,368,385,402,419,436,453,470],"tbody",{},[261,283,284,288,291,294,297],{},[285,286,287],"td",{},"Meta",[285,289,290],{},"Muse Glimmer 30B",[285,292,293],{},"2026-08-10",[285,295,296],{},"Agents, Tool Use, recovery after failure, image input, faster generation",[285,298,299],{},"Quantized weights are not the only memory requirement; temporary state also matters",[261,301,302,305,308,311,314],{},[285,303,304],{},"XHToken",[285,306,307],{},"Spark-X2.5 4B \u002F 1.7B",[285,309,310],{},"2026-09-01",[285,312,313],{},"Compact Agents, Tool Calling, up to 1M context",[285,315,316],{},"Developer scores use thinking mode; validate installed runtime and task latency",[261,318,319,322,325,328,331],{},[285,320,321],{},"IFM",[285,323,324],{},"K2 Horizon 3.7B \u002F 7B",[285,326,327],{},"2026-09-03",[285,329,330],{},"Dense models with 512K context, coding and Agent evaluations",[285,332,333],{},"Core-size labels; verify runtime support, Japanese quality, and latency",[261,335,336,339,342,345,348],{},[285,337,338],{},"NII \u002F LLM-jp",[285,340,341],{},"LLM-jp-4.1 8B",[285,343,344],{},"2026-09-28",[285,346,347],{},"Japanese-oriented research model with Tool Calling, 65,536-token context",[285,349,350],{},"Not intended for direct production use; pin parser and template",[261,352,353,356,359,362,365],{},[285,354,355],{},"Liquid AI",[285,357,358],{},"LFM2.5-2.6B",[285,360,361],{},"2026-08-04 (model) \u002F 08-19 (QAD) \u002F 08-20 (DSpark)",[285,363,364],{},"Compact on-device Agent, Tool Use, 128K context, QAD, and DSpark",[285,366,367],{},"Published quality and speed results use specific setups; test QAD and DSpark separately",[261,369,370,373,376,379,382],{},[285,371,372],{},"NVIDIA",[285,374,375],{},"Nemotron 3.5 Lightning 30B-A3B",[285,377,378],{},"2026-08-11",[285,380,381],{},"High-frequency Agent execution such as Tool Use and validation, reasoning",[285,383,384],{},"About 3B parameters are active per token, but the full model contains about 30B",[261,386,387,390,393,396,399],{},[285,388,389],{},"Ornith",[285,391,392],{},"Ornith 1.5 9B \u002F 35B-A3B",[285,394,395],{},"2026-08 (1.5; official announcement gives month only)",[285,397,398],{},"Tool Calling, Agentic Coding, reasoning, and 262,144-token context",[285,400,401],{},"Developer benchmarks cover coding and terminal tasks, not NPC quality or PC speed",[261,403,404,407,410,413,416],{},[285,405,406],{},"Qwen",[285,408,409],{},"Qwen3.8-27B \u002F Flash-Next",[285,411,412],{},"2026-08-14 (27B) \u002F 08-26 (Flash-Next)",[285,414,415],{},"A dense 27B model and a 125B-A6B MoE preview of the Qwen4 architecture",[285,417,418],{},"Flash-Next activates about 6B per token but still has a large full-weight footprint",[261,420,421,424,427,430,433],{},[285,422,423],{},"Google",[285,425,426],{},"Gemma 4",[285,428,429],{},"2026-03-31 (four initial variants) \u002F 06-03 (12B)",[285,431,432],{},"Multiple models with different sizes and architectures for devices and PCs",[285,434,435],{},"Evaluate the specific model, not just the family name",[261,437,438,441,444,447,450],{},[285,439,440],{},"OpenAI",[285,442,443],{},"gpt-oss-20b \u002F 120b",[285,445,446],{},"2025-08-05",[285,448,449],{},"Downloadable weights and an emphasis on reasoning",[285,451,452],{},"These differ from cloud models delivered through the OpenAI API",[261,454,455,458,461,464,467],{},[285,456,457],{},"Mistral",[285,459,460],{},"Ministral 3 3B",[285,462,463],{},"2025-12-02",[285,465,466],{},"Compact edge model, text and image input, 256K context, Function Calling",[285,468,469],{},"Validate language quality and Tool Use success for the actual workload",[261,471,472,474,477,480,483],{},[285,473,457],{},[285,475,476],{},"Mistral Small 4",[285,478,479],{},"2026-03-16",[285,481,482],{},"Reasoning, coding, Agents, and image input in one model",[285,484,485],{},"Fewer active parameters do not remove the need to hold the full model",[149,487,489],{"id":488},"mimo-v26-distill-qwen-9b","MiMo-V2.6-Distill-Qwen-9B",[28,491,492,493,497],{},"Checked on September 29, 2026. Xiaomi's ",[157,494,489],{"href":495,"rel":496},"https:\u002F\u002Fhuggingface.co\u002FXiaomiMiMo\u002FMiMo-V2.6-Distill-Qwen-9B",[161]," is an agentic model produced by supervised fine-tuning of Qwen3.5-9B on MiMo-generated data. It adds a candidate for evaluating coding, tool use, and multi-step work.",[255,499,500,516],{},[258,501,502],{},[261,503,504,507,510,513],{},[264,505,506],{},"Xiaomi evaluation",[264,508,509],{},"Metric",[264,511,512],{},"Original Qwen3.5-9B",[264,514,515],{},"MiMo derivative",[280,517,518,532,545,559,572],{},[261,519,520,523,526,529],{},[285,521,522],{},"SWE-bench Verified",[285,524,525],{},"avg@3",[285,527,528],{},"60.0",[285,530,531],{},"61.1",[261,533,534,537,539,542],{},[285,535,536],{},"SWE-bench Pro",[285,538,525],{},[285,540,541],{},"32.0",[285,543,544],{},"44.6",[261,546,547,550,553,556],{},[285,548,549],{},"AutomationBench v1.0.6",[285,551,552],{},"avg@1",[285,554,555],{},"5.0",[285,557,558],{},"30.3",[261,560,561,564,566,569],{},[285,562,563],{},"Terminal Bench 2.1",[285,565,552],{},[285,567,568],{},"27.0",[285,570,571],{},"37.1",[261,573,574,577,579,582],{},[285,575,576],{},"Toolathlon-Verified",[285,578,552],{},[285,580,581],{},"25.9",[285,583,584],{},"35.2",[28,586,587],{},"These are developer evaluations, not independent reproductions or evidence of Japanese NPC quality. Gains vary by task. The official quickstart recommends a recent SGLang build with Qwen3.5 support and the supplied MiMo v2.6 chat template. For another runtime, check template and tool-call handling as well as weight format. Quantized file size alone does not establish practical operation on an 8, 12, or 16 GB GPU; measure context, runtime memory, latency, and concurrent game load.",[28,589,590,591,595],{},"This model generates dialogue or tool calls, whereas other approaches only select among candidates. The ",[157,592,594],{"href":593},"\u002Fen\u002Fknowledge\u002Fai\u002Fagents\u002Frepository-centered-agent-harness","agent harness article"," compares Kev, SemIf, Laya, and Tev1.",[149,597,599],{"id":598},"llm-jp-41-8b-is-a-research-candidate-for-japanese-agents","LLM-jp-4.1 8B is a research candidate for Japanese Agents",[28,601,602,603,608,609,614,615,620],{},"Checked on October 11, 2026. NII's ",[157,604,607],{"href":605,"rel":606},"https:\u002F\u002Fllm-jp.nii.ac.jp\u002Fblog\u002Fllm-jp-4-1\u002F",[161],"September 28 announcement"," releases LLM-jp-4.1 with Tool Calling and official quantized files. The ",[157,610,613],{"href":611,"rel":612},"https:\u002F\u002Fhuggingface.co\u002Fllm-jp\u002Fllm-jp-4.1-8b-thinking",[161],"8B card"," specifies 8.59B total parameters, 65,536-token context, and Apache 2.0. The ",[157,616,619],{"href":617,"rel":618},"https:\u002F\u002Fhuggingface.co\u002Fllm-jp\u002Fllm-jp-4.1-8b-thinking-gguf\u002Ftree\u002Fmain",[161],"official Q4_K_M GGUF"," is 5.5 GB of weights, not total RAM \u002F VRAM; its repository modification date is not the model release date.",[28,622,623,624,629,630,635],{},"The October 1 prerelease ",[157,625,628],{"href":626,"rel":627},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11320",[161],"llama.cpp b11320"," includes ",[157,631,634],{"href":632,"rel":633},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29681",[161],"PR #29681",", a dedicated Harmony parser for LLM-jp-4.1's spacing and parallel-tool-call delimiters. Use the matching template and tokenizer; ordinary gpt-oss parsing or LLM-jp-4.0 support is not equivalent. Developer parser \u002F schema tests are not our measurements. The card describes research-and-development models not intended for direct production use. Short Japanese tool tasks, reasoning separation, schema validity, completion time, and total memory are evaluation candidates; Japanese success rates, NPC quality, and concurrent-game performance remain unmeasured. Verify exact artifact, runtime, and redistribution terms before adoption.",[149,637,307],{"id":638},"spark-x25-4b-17b",[28,640,213,641,646],{},[157,642,645],{"href":643,"rel":644},"https:\u002F\u002Fgithub.com\u002FXHToken\u002FSpark-X2.5",[161],"Spark-X2.5"," adds 4B and 1.7B options for compact Agents. The developer's release log dates the model launch to September 1, llama.cpp support to September 6, LM Studio support to September 8, and Ollama support to September 15. These are developer-announced support dates; verify the installed engine, chat template, and Tool Call parser before evaluation.",[28,648,649],{},"The developer reports BFCL-v4 65.1 and MCP-Atlas 54.6 for 4B, but all its evaluations use thinking mode. These scores do not establish non-thinking quality, Japanese NPC dialogue, or low response latency. Native context up to 1M tokens is a capacity limit, not a memory budget. Begin with the context and output budget required by the task, and compare intent accuracy and total response time.",[149,651,324],{"id":652},"k2-horizon-37b-7b",[28,654,655,656,661,662,667,668,673],{},"Checked on September 6, 2026. IFM's ",[157,657,660],{"href":658,"rel":659},"https:\u002F\u002Fifm.ai\u002Fblog\u002Fk2\u002F",[161],"K2 Horizon family",", released on September 3, adds compact Agent candidates. The ",[157,663,666],{"href":664,"rel":665},"https:\u002F\u002Fhuggingface.co\u002FIFM\u002FK2-Horizon-3.7B",[161],"3.7B"," and ",[157,669,672],{"href":670,"rel":671},"https:\u002F\u002Fhuggingface.co\u002FIFM\u002FK2-Horizon-7B",[161],"7B"," model cards describe dense, core-size models with a native 524,288-token context. Core-size labels alone should not be used to estimate full checkpoint or runtime memory.",[28,675,676],{},"The developer reports SWE-bench Verified scores of 68.6 and 70.6 respectively. However, its evaluation guidance uses high reasoning effort and allows at least 32,768 output tokens. The 3.7B model scores 50.9 on BFCL v4 versus 55.7 for Qwen3.5-4B, so it is not uniformly ahead in Tool Use. These results support shortlisting, not claims about low-latency NPC dialogue, Japanese quality, or quantized PC performance.",[28,678,679,680,685,686,691,692,697,698,701],{},"The September 6 check identified BF16 files in the ",[157,681,684],{"href":682,"rel":683},"https:\u002F\u002Fhuggingface.co\u002FIFM\u002FK2-Horizon-3.7B-GGUF",[161],"official 3.7B GGUF repository"," and the IFM fork as an evaluation path. The October 7, 2026 check confirms that the prerelease ",[157,687,690],{"href":688,"rel":689},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11454",[161],"llama.cpp b11454",", published October 6 at 20:20 UTC (October 7 at 05:20 JST), adds K2 Horizon dense \u002F MoVA support, conversion and loading, tokenization, reasoning, and tool calls. This implementation is newer than the model card's still-pending upstream-PR guidance. However, the ",[157,693,696],{"href":694,"rel":695},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11454\u002Fsrc\u002Fllama-arch.cpp",[161],"final code in that build"," disables tensor parallelism (",[221,699,700],{},"-sm tensor",") for K2 Horizon.",[28,703,704,705,710,711,716,717,720],{},"As of October 7, official files include a 3.16 GB ",[157,706,709],{"href":707,"rel":708},"https:\u002F\u002Fhuggingface.co\u002FIFM\u002FK2-Horizon-3.7B-GGUF\u002Ftree\u002Fmain",[161],"3.7B Q4_K_M"," and a 5.59 GB ",[157,712,715],{"href":713,"rel":714},"https:\u002F\u002Fhuggingface.co\u002FIFM\u002FK2-Horizon-7B-GGUF\u002Ftree\u002Fmain",[161],"7B Q4_K_M",". The 3.7B file is named ",[221,718,719],{},"K2-Horizon-4B-Q4_K_M.gguf",". The quantized files' first publication dates are unconfirmed and remain separate from the original models' September 3 release. These are weight-file sizes, excluding KV cache, runtime allocations, and game rendering. Evaluate the context actually needed instead of assuming the full 512K fits a consumer GPU.",[28,722,723,724,729],{},"The official GGUF card's quantization evaluation covers non-agentic tasks; do not transfer the original models' Agent scores to Q4. Pin the runtime, exact GGUF, and chat template, then compare short Japanese tool tasks, reasoning separation, schemas, timeouts and fallback, total memory, and completion latency. We have not tested each artifact, integration into Ollama \u002F LM Studio, or concurrent-game performance. Distinguish the model cards' Apache-2.0 labels from ",[157,725,728],{"href":726,"rel":727},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11454\u002FLICENSE",[161],"llama.cpp's MIT license",", and check the original model LICENSE and distribution conditions before product bundling. We could not retrieve the original model LICENSE in this check.",[28,731,732],{},"IFM describes open training resources, but its announcement includes future releases and distinguishes training data from construction recipes. Avoid treating all resources as already released. It also discloses a 7B run that downloaded SWE-bench answers and inflated its score to 82. That run is not evidence of software-engineering performance; the model card reports 70.6. Transparency and task performance should be assessed separately.",[28,734,735,736,741,742,744,745,750,751,756,757,762],{},"The October 11, 2026 check confirms that prerelease ",[157,737,740],{"href":738,"rel":739},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11528",[161],"llama.cpp b11528",", published October 9 at 14:53 UTC (23:53 JST), re-enables K2 Horizon's ",[221,743,700],{},". ",[157,746,749],{"href":747,"rel":748},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F30217",[161],"PR #30217"," fixes host tensor-view handling and an assertion with partial offload plus tensor parallelism. The ",[157,752,755],{"href":753,"rel":754},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11528\u002Fsrc\u002Fllama-arch.cpp",[161],"versioned code"," confirms the change; retain the b11454 history above. The ",[157,758,761],{"href":759,"rel":760},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11552\u002Ftools\u002Fserver\u002FREADME.md",[161],"server documentation"," still labels tensor parallelism EXPERIMENTAL. It requires supported multiple GPUs, a compatible GGUF, and RAM \u002F VRAM for weights, KV cache, and runtime allocations. Compare startup, completion, prefill \u002F decode, and total memory against layer splitting or a single GPU with identical GGUF, context, and inputs. Availability proves neither faster inference nor lower total memory. We have not tested each artifact, Japanese quality, or adoption by Ollama \u002F LM Studio; check model and runtime redistribution terms separately.",[149,764,766],{"id":765},"meta-muse-glimmer-30b","Meta Muse Glimmer 30B",[28,768,769,770,774],{},"Meta's ",[157,771,290],{"href":772,"rel":773},"https:\u002F\u002Fhuggingface.co\u002Fmeta-models\u002FMuse-Glimmer-30B\u002Fblob\u002Fmain\u002FREADME.md",[161]," combines a Dense language model of about 29.6 billion parameters with an image encoder. Its stated use cases include Agents, Tool Use, reasoning, and retrying after failures.",[28,776,777],{},"The model card describes quantizing the language model weights to below 20 GB and targets 24 GB or 32 GB-class configurations that also account for the KV cache used to retain recent input, the image encoder, and a smaller helper model for predicting upcoming tokens.",[28,779,780],{},"That helper enables speculative decoding, a technique that generates multiple candidate tokens ahead of time to improve output speed without intentionally changing the answer.",[28,782,783],{},"Meta's involvement is interesting for more than the release of another set of model weights. The company presents Agents that repeatedly use tools on a personal computer as an explicit product use case.",[28,785,786],{},"However, 24 GB or 32 GB does not guarantee the same speed on every system. Requirements and performance change with the quantization format, Context Length, inference software, and number of concurrent requests.",[149,788,790],{"id":789},"liquid-ai-lfm25-26b","Liquid AI LFM2.5-2.6B",[28,792,793,794,798],{},"Liquid AI's ",[157,795,358],{"href":796,"rel":797},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002FLFM2.5-2.6B",[161]," is a text model for on-device Agents released on August 4, 2026. It has approximately 2.69 billion parameters, a Context Length of 131,072 tokens, and covers 16 languages including Japanese. It is post-trained for Tool Use and multi-step workloads, while the official model card does not recommend it for demanding agentic coding or knowledge-heavy tasks.",[28,800,801,802,807],{},"The ",[157,803,806],{"href":804,"rel":805},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002FLFM2.5-2.6B-GGUF\u002Ftree\u002Fmain",[161],"official GGUF repository"," lists both the standard Q4_0 file and the QAD Q4_0 file added on August 19, 2026, at approximately 1.59 GB, with Q4_K_M at approximately 1.67 GB. Quantization-Aware Distillation, or QAD, transfers knowledge from a high-precision teacher to a 4-bit student to reduce quantization loss. Across an evaluation of four model sizes including 2.6B, Liquid AI reports that QAD recovered 97% of the average accuracy lost when moving from BF16 to ordinary Q4_0. This does not mean that the 2.6B model alone achieves 97% of BF16 performance on every workload.",[28,809,810,815,816,819],{},[157,811,814],{"href":812,"rel":813},"https:\u002F\u002Fwww.liquid.ai\u002Fblog\u002Flfm2.5-dspark",[161],"DSpark",", released on August 20, 2026, uses a 328M draft model to propose upcoming tokens for verification by the main model. In Liquid AI's M4 Max evaluation with FP16 GGUF weights, ",[221,817,818],{},"llama.cpp",", and temperature 0, average 2.6B generation speed increased from 61 to 139 tokens per second. The company also reports a 57% average reduction in Function Calling latency across multi-tool scenarios. The design preserves output under the published temperature-0 conditions, but those figures were not measured with the QAD Q4_0 checkpoint.",[28,821,822,823,825,826,831],{},"DSpark shipped with integrations for ",[221,824,818],{}," and SGLang. ",[157,827,830],{"href":828,"rel":829},"https:\u002F\u002Flmstudio.ai\u002Fchangelog\u002Flmstudio\u002Flmstudio-v0.4.22",[161],"LM Studio 0.4.22",", released on August 28, 2026, added official support for DFlash, DSpark, and MTP assistant drafters and requires llama.cpp engine 2.29.1 or newer. This makes compatible draft models easier to evaluate through a GUI or local server. The official LFM2.5-2.6B DSpark GGUF repository lists the Q4_K_M draft at about 200 MB.",[28,833,834],{},"This does not mean that LM Studio will always make LFM2.5-2.6B 2.27 times faster. LM Studio notes that speculative decoding can become slower when the draft model is not fast enough or its suggestions are accepted too infrequently. The approximately 1.59 GB target weight file and approximately 200 MB draft file also exclude KV cache, runtime overhead, and other applications. LM Studio is useful as a prototyping environment, but it is not automatically the runtime that should be shipped with a product.",[28,836,837,838,843],{},"The model uses the LFM Open License v1.0. Liquid AI's ",[157,839,842],{"href":840,"rel":841},"https:\u002F\u002Fdocs.liquid.ai\u002Flfm\u002Fhelp\u002Fmodel-license",[161],"official summary"," states that commercial use is free for companies below US$10 million in annual revenue and requires a paid license above that threshold. Its small weights and Tool Use focus make it a candidate for evaluating on-device intent selection and short tool calls, but they are not measurements of game coexistence, Japanese output quality, or failure rate.",[149,845,847],{"id":846},"nvidia-nemotron-35-lightning-30b-a3b","NVIDIA Nemotron 3.5 Lightning 30B-A3B",[28,849,850,851,855],{},"NVIDIA's ",[157,852,375],{"href":853,"rel":854},"https:\u002F\u002Fhuggingface.co\u002Fnvidia\u002FNVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16",[161]," is a Mixture-of-Experts (MoE) model released on August 11, 2026. It has about 30 billion parameters in total and uses about 3 billion for each token. It supports reasoning and Tool Use, with a maximum stated Context Length of 1,000,000 tokens.",[28,857,858],{},"Its defining characteristic is an explicit focus on the execution layer rather than acting as a universal model for every task. This layer repeatedly performs Tool Use, validates results, and delegates work to subagents. NVIDIA describes an architecture in which a larger reasoning model handles complex planning while Nemotron 3.5 Lightning carries out repetitive execution.",[28,860,861],{},"NVIDIA reports about 85% accuracy on PinchBench, a benchmark for Agent execution, and says the model completes 10,000 tasks about 30% faster than Qwen3.6 35B-A3B at what it describes as similar accuracy. In the same official evaluation table, however, it scores below Qwen3.6 35B-A3B on SWE-bench Verified and Terminal-Bench 2.1. It should therefore be evaluated for a defined execution role, balancing speed and task success, rather than treated as a universal replacement for demanding reasoning or coding models.",[28,863,864],{},"Local runtimes including llama.cpp, Ollama, and LM Studio are documented. About 3 billion Active Parameters describes the computation used for a token; it does not mean the model has the storage footprint of a 3B model. As of August 21, 2026, the GGUF repository linked by the official model card lists an approximately 22.5 GB NVFP4 file and an approximately 25.4 GB Q4_K_M file. KV cache usage also grows with Context Length, so deployments that share a GPU with games or other workloads must measure total available memory rather than model file size alone.",[28,866,867],{},"The maximum 1,000,000-token Context Length is also not a default that every personal computer can use. In the official BF16 deployment examples, one H100 has a validated Context Length of 256,000 tokens, while the 1,000,000-token configurations require larger systems. Tests should limit the context to what the workload actually needs.",[28,869,870],{},"The model card describes the model as ready for commercial use under the OpenMDW 1.1 license. Before adoption, review the terms for the model, the selected quantized weights, and the inference software together.",[149,872,392],{"id":873},"ornith-15-9b-35b-a3b",[28,875,876,881],{},[157,877,880],{"href":878,"rel":879},"https:\u002F\u002Fhuggingface.co\u002Fornith-ai\u002FOrnith-1.5-9B",[161],"Ornith 1.5 9B"," is a Dense model that uses all of its approximately 9 billion parameters. Its maximum Context Length is 262,144 tokens, and its stated focus includes reasoning, Tool Calling, and Agentic Coding. It is released under the MIT license and positioned by the developer for single-GPU use and quantized edge deployments.",[28,883,884,885,890],{},"In the official ",[157,886,889],{"href":887,"rel":888},"https:\u002F\u002Fhuggingface.co\u002Fornith-ai\u002FOrnith-1.5-9B-GGUF",[161],"9B GGUF distribution",", Q4_K_M is 5.63 GB and Q5_K_M is 6.47 GB. The Q4_K_M file size makes an 8 GB-class GPU a reasonable evaluation target, but it excludes the inference runtime, KV cache, inputs, CPU-offloaded state, and rendering memory used by a concurrently running game. Do not conclude that the model can remain on the same 8 GB GPU as a game merely because its weights are 5.63 GB; measure free VRAM while the game is running at the required Context Length.",[28,892,893],{},"The developer reports five-run averages of 70.6 on SWE-bench Verified and, on Terminal-Bench 2.1, 47.0 with the Claude Code Harness and 46.2 with the Terminus-2 Harness. The Terminal-Bench 2.1 evaluation conditions include a 128,000-token context, 32 CPU cores, 48 GB of RAM, and a four-hour timeout. These are developer evaluations of coding and terminal operation. They do not measure speed on a typical PC, NPC dialogue quality, persona consistency, or real-time response latency in a game.",[28,895,801,896,901,902,907],{},[157,897,900],{"href":898,"rel":899},"https:\u002F\u002Fhuggingface.co\u002Fornith-ai\u002FOrnith-1.5-35B-A3B",[161],"35B-A3B version"," is an MoE model with approximately 35 billion total parameters and 3 billion active per token. Its developer-reported five-run averages are 79.0 on SWE-bench Verified and 68.5 on Terminal-Bench 2.1 with the Claude Code Harness, but Q4_K_M in the ",[157,903,906],{"href":904,"rel":905},"https:\u002F\u002Fhuggingface.co\u002Fornith-ai\u002FOrnith-1.5-35B-A3B-GGUF",[161],"official GGUF distribution"," is 21.7 GB. Low Active Parameters do not make its weights suitable for sharing an 8 GB-class GPU with a game.",[28,909,910,911,667,914,917,918,923,924,927],{},"As of August 22, 2026, the ",[221,912,913],{},"ornith:9b",[221,915,916],{},"ornith:35b"," entries in ",[157,919,922],{"href":920,"rel":921},"https:\u002F\u002Follama.com\u002Flibrary\u002Fornith",[161],"Ollama's official library"," are still described as Ornith 1.0. When evaluating 1.5, do not identify the version from those generic tags alone. Specify the 1.5 distribution and quantization explicitly, such as the official ",[221,925,926],{},"hf.co\u002Fornith-ai\u002FOrnith-1.5-9B-GGUF"," repository documented on the GGUF page.",[28,929,930],{},"The 9B model is a reasonable validation candidate for designs that assign high-level decisions and Tool Calling to a small model, but this is an inference from its features and size. An NPC evaluation still needs to test whether it selects a schema-constrained action from game state, whether a validator can reject invalid output, whether it preserves a persona, and whether it meets the latency target.",[149,932,934],{"id":933},"qwen38-27b-qwen38-flash-next","Qwen3.8-27B \u002F Qwen3.8-Flash-Next",[28,936,937,942],{},[157,938,941],{"href":939,"rel":940},"https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3.8-27B",[161],"Qwen3.8-27B"," is a Dense model with about 27 billion parameters. It handles images and video as well as text, supports adjustable reasoning effort, and emphasizes coding, research, and long-running work.",[28,944,945],{},"Its standard Context Length is described as 262,144 tokens, with extension up to 1,000,000 tokens. A token is a unit into which text is divided for model processing.",[28,947,948],{},"The maximum is not always necessary. Longer Context Length increases KV cache use and the time required to read the initial input, known as Prefill, and may introduce irrelevant older information. Limit it to what the workload needs.",[28,950,951],{},"The official model card also publishes benchmark results, but those values depend on the developer's chosen harness and conditions. They should not be compared directly with figures published under a different developer's setup.",[28,953,954,959],{},[157,955,958],{"href":956,"rel":957},"https:\u002F\u002Fqwen.ai\u002Fblog?id=qwen3.8-flash-next",[161],"Qwen3.8-Flash-Next",", released on August 26, 2026, is a multimodal MoE model that previews the architecture planned for Qwen4. Its main model has about 125 billion parameters and activates about 6 billion per token. It also includes about 51 billion parameters of N-gram Embedding and about 4 billion for Multi-Token Prediction, or MTP. Native Context Length is 262,144 tokens and can be extended to 1,000,000 with YaRN.",[28,961,962],{},"Qwen Sparse Attention, or QSA, reduces long-context computation by selecting candidate context at micro-block granularity. N-gram Embedding uses recent token patterns to look up entries in a large table, adding capacity with little extra computation. The table is designed to reside in host memory and be prefetched while GPU computation continues. The locally relevant development is therefore not that Flash-Next is already lightweight, but that it separates the trade-offs among computation, GPU memory, and model capacity.",[28,964,965],{},"In Qwen's own evaluation table, Flash-Next moves only slightly above Qwen3.8-27B on SWE-bench Pro, from 61.7 to 62.5, while DeepSWE 1.1 rises from 42.2 to 58.7, Toolathlon Verified from 67.1 to 73.5, and JobBench from 33.4 to 55.7. These results support the stated emphasis on Agents and Tool Use, but they are developer-published evaluations rather than third-party reproductions or performance measurements on ordinary PCs.",[28,967,968,969,974],{},"The approximately 6 billion Active Parameters should not be read as a 6B-class hardware requirement. The third-party ",[157,970,973],{"href":971,"rel":972},"https:\u002F\u002Fhuggingface.co\u002Funsloth\u002FQwen3.8-Flash-Next-GGUF\u002Ftree\u002Fmain\u002FUD-IQ1_S",[161],"Unsloth GGUF distribution"," lists even its aggressively compressed UD-IQ1_S files at approximately 72.5 GB at publication time. The official repository provides paths for Transformers, llama.cpp, SGLang, vLLM, and TokenSpeed, but this is a newly released architecture. Runtime version, image support, Tool Calling, and the selected quantization need separate verification. For now, it is better treated as an evaluation target for systems with large memory capacity than as a resident model for a typical gaming PC.",[28,976,977,978,983,984,987,988,993],{},"Checked on October 4, 2026. The October 3 prerelease ",[157,979,982],{"href":980,"rel":981},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11372",[161],"llama.cpp b11372"," reduces indexer intermediate allocations in the ",[221,985,986],{},"qwen4exp"," path. In ",[157,989,992],{"href":990,"rel":991},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29825",[161],"PR #29825",", the author reports compute buffers of 6056 → 3748 MiB on CUDA at 128K context, with the N-gram table in RAM, and 6224 → 3924 MiB on Metal at 64K. These are configuration-specific implementation measurements, not Qwen hardware specifications or a halving of total RAM \u002F VRAM including weights and KV cache. For an existing large-memory evaluation, pin the runtime, quantization, context, batch \u002F ubatch, and backend; measure temporary allocations, total memory, prefill, and decode separately. We have not reproduced the results or verified downstream Ollama \u002F LM Studio integration. The consumer-PC conclusion above remains unchanged.",[28,995,996,997,1002,1003,1007],{},"Checked on October 13, 2026 JST. This corrects the existing summary against Flash-Next's ",[157,998,1001],{"href":999,"rel":1000},"https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3.8-Flash-Next\u002Fblob\u002Fmain\u002FLICENSE",[161],"Qwen Community License 1.0","; it is not an announcement of changed license terms. Clause 1 requires prominent model-name display for commercial products or services exceeding 100 million monthly active users or US$20 million monthly revenue. Under clause 2, if the licensee or an affiliate conducts a Model as a Service \u002F AI Work Assistant business, the licensee must obtain a separate license ",[1004,1005,1006],"strong",{},"before any commercial use of the model or derivatives",". The condition is not limited to use in those products. An exception covers qualifying internal use that does not make the model, outputs, or underlying capabilities available to third parties. Check the original business definitions and exclusions; we do not determine legal applicability to an individual business or game feature. These terms differ from Qwen3.8-27B's Apache-2.0 license.",[28,1009,1010],{},"Qwen3.8-27B and Flash-Next are therefore not direct replacements in the current shortlist. The former is a comparatively smaller Dense model, while the latter is a large-scale preview for evaluating the efficiency direction of Qwen4. If this architecture later reaches smaller models, its quality and resource use should be measured again rather than inferred from Flash-Next alone.",[1012,1013,1015],"h4",{"id":1014},"gpu-expert-caching-keeps-host-weight-requirements","GPU expert caching keeps host-weight requirements",[28,1017,1018,1019,1024,1025,744,1030,1035,1036,1041],{},"Checked on October 11, 2026. Prerelease ",[157,1020,1023],{"href":1021,"rel":1022},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11480",[161],"llama.cpp b11480",", published October 8 at 01:36 UTC (10:36 JST), includes the host-expert GPU cache from ",[157,1026,1029],{"href":1027,"rel":1028},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29887",[161],"PR #29887",[157,1031,1034],{"href":1032,"rel":1033},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11507",[161],"b11507",", published that day at 15:27 UTC (October 9 at 00:27 JST), adds multiple-GPU support from ",[157,1037,1040],{"href":1038,"rel":1039},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F30112",[161],"PR #30112",". This reuses experts in GPU cache; it neither compresses the checkpoint nor replaces host RAM with Edge0-style SSD streaming.",[28,1043,801,1044,1049,1050,1053,1054,1059,1060,1063],{},[157,1045,1048],{"href":1046,"rel":1047},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11507\u002Fcommon\u002Farg.cpp",[161],"b11507 argument definition"," disables ",[221,1051,1052],{},"--moe-cache-mib"," by default. The ",[157,1055,1058],{"href":1056,"rel":1057},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11507\u002Fsrc\u002Fllama-moe-cache.cpp",[161],"final implementation"," uses the cache for small batches of up to 32 tokens, rejects tensor parallelism, and splits the total budget according to ",[221,1061,1062],{},"--tensor-split"," or free memory. Do not reuse a PR example as a budget per GPU. The author's single-GPU results use Qwen3.8-Flash-Next Q4_0 (93.7 GiB), EPYC 7742 \u002F 16 cores, PCIe 4.0 x16, 32K context, and no MTP. They do not establish consumer-PC or concurrent-game performance. For large-memory offload evaluations, retain enough host RAM for weights and runtime allocations and GPU headroom for cache, then compare disabled \u002F enabled cold and warm prefill \u002F decode, transfers, total RAM \u002F VRAM, and rendering load. Japanese quality, p95 \u002F p99, and adoption by Ollama \u002F LM Studio remain untested by us; runtime MIT and model terms remain separate.",[1012,1065,1067],{"id":1066},"ternary-bonsai-2-27b-low-bit-weights-require-a-matching-runtime","Ternary Bonsai 2 27B: low-bit weights require a matching runtime",[28,1069,213,1070,1075],{},[157,1071,1074],{"href":1072,"rel":1073},"https:\u002F\u002Fhuggingface.co\u002Fprism-ml\u002FTernary-Bonsai-2-27B-gguf",[161],"Ternary Bonsai 2 27B"," is derived from Qwen3.8-27B. Its language weights occupy 5.95 GB in PTQ1_0 or 7.21 GB in PQ2_0; image input uses a separate optional projector of about 0.63 GB. These are file sizes, not total runtime VRAM. For these PTQ1_0 \u002F PQ2_0 artifacts, the model card requires PrismML's llama.cpp fork with matching ternary and Hadamard-transform support; ordinary GGUF support is insufficient.",[28,1077,1078],{},"PrismML reports 84.78 versus FP16's 86.32 averaged over 14 thinking-mode benchmarks, or about 98.2% of that baseline average. This is not a guarantee of retaining 98.2% of capability on every task. Its batch-1, depth-0, text-only llama-bench TG128 results use different packings: RTX 4090 reaches 91.1 tok\u002Fs with PTQ1_0, while RTX 5090 reaches 129.9 and M5 Pro 28.1 with PQ2_0. Do not combine the smallest file and every platform's fastest result into one configuration. NPC quality and performance while rendering a game remain unverified.",[28,1080,1081,1082,1087,1088,1093,1094,1099,1100,1105,1106,1111],{},"Checked on October 12, 2026 (JST). Prerelease ",[157,1083,1086],{"href":1084,"rel":1085},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11556",[161],"llama.cpp b11556",", published October 11, includes upstream Hadamard support from ",[157,1089,1092],{"href":1090,"rel":1091},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29600",[161],"PR #29600",". The evaluation artifact is the official ",[157,1095,1098],{"href":1096,"rel":1097},"https:\u002F\u002Fhuggingface.co\u002Fprism-ml\u002FTernary-Bonsai-2-27B-gguf-dev\u002Ftree\u002Fmain",[161],"dev Q2_0 GGUF, 7.63 GB",". This does not establish upstream support for the 5.95 GB PTQ1_0 or 7.21 GB PQ2_0 files above; ",[157,1101,1104],{"href":1102,"rel":1103},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29672",[161],"PTQ1_0 PR #29672"," remains open at this check. The ",[157,1107,1110],{"href":1108,"rel":1109},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11556\u002Fsrc\u002Fllama-adapter.cpp#L337-L340",[161],"versioned adapter code"," rejects LoRA targeting Hadamard-folded weights. Pin the exact artifact and runtime, and budget separately for weights, KV cache, runtime allocations, and the game. File size is not required RAM. Japanese quality, quantization quality, and game performance remain untested by us; runtime support does not grant model redistribution rights.",[149,1113,426],{"id":1114},"gemma-4",[28,1116,1117,1118,1122],{},"Google's ",[157,1119,426],{"href":1120,"rel":1121},"https:\u002F\u002Fai.google.dev\u002Fgemma\u002Fdocs\u002Fcore",[161]," is a family with several configurations for different hardware targets rather than a single model.",[45,1124,1125,1128,1131,1134],{},[48,1126,1127],{},"2B and 4B-class models for smaller devices",[48,1129,1130],{},"A unified model of about 12B parameters",[48,1132,1133],{},"An MoE model with about 26B total parameters that activates only part of its experts for each token",[48,1135,1136],{},"A Dense model with about 31B parameters",[28,1138,1139],{},"The family covers Tool Use, reasoning, image input, and multiple languages across devices from small hardware to PCs. The useful question is therefore not simply whether “Gemma 4 runs,” but which checkpoint, precision, and runtime are being evaluated.",[28,1141,1142],{},"Smaller models offer advantages in memory use and response time but do not guarantee the same quality as larger models. Verify instruction following, natural output in the required language, and correct Tool Use.",[28,1144,1145,1146,1151,1152,1157,1158,1163,1164,1169,1170,1175],{},"Checked on October 11, 2026. Google's ",[157,1147,1150],{"href":1148,"rel":1149},"https:\u002F\u002Fdevelopers.googleblog.com\u002Fml-drift-next-gen-gpu-aiml-inference-at-the-edge\u002F",[161],"October 8 ML Drift announcement"," opens LiteRT's GPU foundation as a standalone C++ library, adding an in-app GPU-inference path rather than a new Gemma model or a complete game SDK. The ",[157,1153,1156],{"href":1154,"rel":1155},"https:\u002F\u002Fgithub.com\u002Fgoogle-ai-edge\u002Fml-drift\u002Fblob\u002F7c58cf0ec5276287b4d341bdfc96ef0fc66360af\u002FREADME.md",[161],"pinned README"," lists OpenCL \u002F Metal \u002F WebGPU \u002F OpenGL ES. There are no standalone ",[157,1159,1162],{"href":1160,"rel":1161},"https:\u002F\u002Fgithub.com\u002Fgoogle-ai-edge\u002Fml-drift\u002Freleases",[161],"distribution releases"," at the check date; ",[157,1165,1168],{"href":1166,"rel":1167},"https:\u002F\u002Fdevelopers.google.com\u002Fedge\u002Flitert\u002Fnext\u002Fcpp_sdk",[161],"LiteRT C++ SDK binaries"," are separate. Desktop LLM results are a preview; “up to 12% lower memory overhead” does not mean 12% less total memory. Pin supported model formats, SDK, and backend, then measure cold initialization, prefill \u002F decode, total memory, and rendering contention. Ordinary GGUF replacement, Japanese quality, tool use, and game performance remain unverified. Check ",[157,1171,1174],{"href":1172,"rel":1173},"https:\u002F\u002Fgithub.com\u002Fgoogle-ai-edge\u002Fml-drift\u002Fblob\u002F7c58cf0ec5276287b4d341bdfc96ef0fc66360af\u002FLICENSE",[161],"Apache 2.0",", model, and dependency terms separately.",[28,1177,1081,1178,1183,1184,1189,1190,1195,1196,1199,1200,1205],{},[157,1179,1182],{"href":1180,"rel":1181},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11559",[161],"llama.cpp b11559",", published October 11 at 19:14 UTC (October 12 at 04:14 JST), includes ",[157,1185,1188],{"href":1186,"rel":1187},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F30266",[161],"PR #30266"," for Gemma 4 E2B \u002F E4B OpenCL Flash Attention decode with head dimension DK512. This updates the runtime, not the model. The ",[157,1191,1194],{"href":1192,"rel":1193},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11559\u002Fggml\u002Fsrc\u002Fggml-opencl\u002Fggml-opencl.cpp#L9476-L9506",[161],"versioned eligibility checks"," require Adreno, F32 queries \u002F F16 KV, a single query position, GQA 4 or 8, and successful kernel initialization; ",[221,1197,1198],{},"GGML_OPENCL_FA_DK512_DECODE=0"," disables this path. A7x mixed-type kernels are excluded because of compiler crashes. The ",[157,1201,1204],{"href":1202,"rel":1203},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11559\u002Fdocs\u002Fbackend\u002FOPENCL.md",[161],"OpenCL guide"," also warns that Flash Attention does not always improve performance. Pin the device, driver, GGUF, and context, and measure prefill \u002F decode, thermal behavior, total memory, rendering contention, and fallback. We have not tested these, and this is not a speedup guarantee for every GPU.",[149,1207,1209],{"id":1208},"openai-gpt-oss","OpenAI gpt-oss",[28,1211,1212,1213,1218],{},"OpenAI's ",[157,1214,1217],{"href":1215,"rel":1216},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fmodels\u002Fall",[161],"gpt-oss-20b and gpt-oss-120b"," are reasoning-focused models with downloadable weights under the Apache 2.0 license. They run on computers, servers, or compatible hosting services managed by the user.",[28,1220,1221],{},"They differ from cloud models delivered through the OpenAI API in execution location, update process, hardware requirements, and operational responsibility. Do not group them together solely because they are OpenAI models.",[28,1223,1224],{},"The resource requirements of the 20b and 120b versions differ substantially. Record the exact model and compression format rather than evaluating only at the family level.",[149,1226,460],{"id":1227},"ministral-3-3b",[28,1229,1230,1231,1235],{},"Mistral's ",[157,1232,460],{"href":1233,"rel":1234},"https:\u002F\u002Fdocs.mistral.ai\u002Fmodels\u002Fministral-3-3b-25-12",[161],", released on December 2, 2025, is a compact model designed for edge deployment. Mistral lists it as a 3B model with text and image input, a 256,000-token context window, Structured Outputs, Function Calling, downloadable weights, and the Apache 2.0 license.",[28,1237,1238],{},"Its size makes it easier to shortlist for on-device evaluation. It does not guarantee natural output in a required language, consistent character behavior, correct Tool selection, or acceptable latency. Runtime memory including the vision encoder and KV cache also cannot be inferred from a quantized weight file alone.",[149,1240,476],{"id":1241},"mistral-small-4",[28,1243,1244,1248],{},[157,1245,476],{"href":1246,"rel":1247},"https:\u002F\u002Fmistral.ai\u002Fnews\u002Fmistral-small-4\u002F",[161]," combines reasoning, coding, Agents, and image input in a single MoE model.",[28,1250,1251],{},"Its official documentation describes about 119 billion total parameters and about 6 billion Active Parameters per token. Active Parameters are useful for understanding computation, but the memory and download size required to hold the full model are not equivalent to those of a 6B model.",[28,1253,1254],{},"Availability, deprecation, and distribution status can also change. Check the current model, lifecycle status, and license at the time of adoption rather than continuing to use an older candidate without review.",[23,1256,1258],{"id":1257},"edge0-streams-experts-from-ssd","Edge0 streams experts from SSD",[28,1260,213,1261,1266],{},[157,1262,1265],{"href":1263,"rel":1264},"https:\u002F\u002Fgithub.com\u002FEdge0-AI\u002FEdge0",[161],"Edge0"," combines SSD expert streaming, Recover-LoRA, and a prerouter that predicts which experts to load. For its Qwen3.6-based 35B-A3B preview, the developer reports about 23 GB of stored weights and 2.9 GiB of peak active memory. Unlike Bonsai's compressed resident weights, this approach changes which experts are loaded at a given time.",[28,1268,1269],{},"The reported 14.9–17.7 tok\u002Fs uses a Mac mini M4 Pro with 24 GB memory, roughly 3.3K input tokens, 10 warmup steps, and 200 timed output tokens over two runs. Active memory is not total system RAM including the OS and page cache; the warm prefill measurement explicitly uses resident page-cache data. It does not show that a 3 GB computer can run the model. Storage, cache state, and long-context KV growth must be measured separately.",[28,1271,1272],{},"The current backend is Apple Silicon with MLX; CUDA is on the roadmap. Ordinary Ollama or LM Studio GGUF loading does not reproduce this streaming pipeline. The OpenAI-compatible server provides an integration boundary, but establishes neither Windows support nor suitability for game NPCs. Evaluate cold\u002Fwarm behavior and storage contention alongside quality and latency.",[23,1274,1276],{"id":1275},"pin-versions-when-evaluating-apple-silicon-runtimes","Pin versions when evaluating Apple Silicon runtimes",[28,1278,1279,1280,1285],{},"Checked on September 29, 2026. Hugging Face's ",[157,1281,1284],{"href":1282,"rel":1283},"https:\u002F\u002Fhuggingface.co\u002Fblog\u002Ftransformers-llama-cpp-quants",[161],"GGUF execution update for Transformers"," adds a packed inference path that retains quantized weights instead of expanding them. This differs from the earlier dequantizing import path. Initial support is MPS-only and focuses on Qwen3.5 dense and MoE architectures, including compatible Qwen3.8 checkpoints. Padding and batching have limitations; this does not imply support for every GGUF or GPU, or arbitrary fine-tuning with weights kept quantized. Treat it as an option for Python-based experiments and check the runtime version and supported model.",[28,1287,1288,1293],{},[157,1289,1292],{"href":1290,"rel":1291},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.40.0-rc0",[161],"Ollama v0.40.0-rc0"," automatically routes supported architectures to MLX on Apple Silicon. It was a prerelease at the September 29 check. The change applies to supported models, not every model or Windows \u002F NVIDIA execution. Do not present earlier MLX benchmarks as the speedup of this RC; compare with fixed context, cache conditions, and concurrency.",[28,1295,1296,1297,1302,1303,1308,1309,1312,1313,1316,1317,1320],{},"The October 7, 2026 check confirms that ",[157,1298,1301],{"href":1299,"rel":1300},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.40.0",[161],"Ollama v0.40.0"," is available as a non-prerelease. Its ",[157,1304,1307],{"href":1305,"rel":1306},"https:\u002F\u002Fapi.github.com\u002Frepos\u002Follama\u002Follama\u002Freleases\u002Ftags\u002Fv0.40.0",[161],"official metadata"," sets ",[221,1310,1311],{},"prerelease"," to ",[221,1314,1315],{},"false",", so evaluating the MLX path no longer requires choosing an RC. The release entry retains a September 25 ",[221,1318,1319],{},"published_at",", while the current macOS assets were created October 6 at 18:27 UTC (October 7 at 03:27 JST); neither establishes the exact transition time. October 7 is our availability-check date.",[28,1322,801,1323,1328,1329,1334],{},[157,1324,1327],{"href":1325,"rel":1326},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002F0d0720e51fb2fd9aa58781c3d720c06d720c2e7b\u002Fdocs\u002Fmacos.mdx",[161],"pinned macOS requirements"," specify macOS 14 or later. The MLX path requires supported Apple Silicon hardware and models, with sufficient unified memory; check model terms separately from ",[157,1330,1333],{"href":1331,"rel":1332},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002F0d0720e51fb2fd9aa58781c3d720c06d720c2e7b\u002FLICENSE",[161],"Ollama's MIT license",". Compare RC and non-prerelease cold \u002F warm responses using the same model, context, cache conditions, and concurrency. Availability alone does not establish improvements in Japanese quality, total memory, p95 \u002F p99 latency, or concurrent-game performance; we have not measured these.",[28,1336,1337,1338,1343,1344,1349,1350,1355],{},"Checked on October 13, 2026 JST. Prerelease ",[157,1339,1342],{"href":1340,"rel":1341},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.40.4-rc0",[161],"Ollama v0.40.4-rc0",", published October 12 at 19:00:12 UTC (October 13 at 04:00:12 JST), includes the MLX memory-retention fix in ",[157,1345,1348],{"href":1346,"rel":1347},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18955",[161],"PR #18955",". A recurrent state restored after speculative rollback could retain a view into a larger buffer. ",[157,1351,1354],{"href":1352,"rel":1353},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002Fv0.40.4-rc0\u002Fmlxrunner\u002Fprefix_cache.go#L584-L617",[161],"Request-close compaction"," detaches the needed state before retaining it in the prefix cache. This does not compress weights or establish a benefit for every model. Compare runtime versions with the same model, digest, context, speculative settings, and request sequence; distinguish logical cache usage, actual allocated memory, swap, and latency. We have not reproduced the fix or measured memory savings, Japanese quality, or concurrent-game performance.",[28,1357,1358,1359,1362,1363,1368,1369,1374,1375,1378,1379,1382,1383,1387],{},"Checked on October 11, 2026. ",[157,1360,1301],{"href":1299,"rel":1361},[161]," also incorporates ",[157,1364,1367],{"href":1365,"rel":1366},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18701",[161],"MLX decision-model support"," for Nimble, Tev1, Clef, and Clef Flash. RC selection is no longer required to evaluate this path. The ",[157,1370,1373],{"href":1371,"rel":1372},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002Fv0.40.2\u002Fdocs\u002Fcapabilities\u002Fdecision.mdx",[161],"v0.40.2 decision documentation"," describes ",[221,1376,1377],{},"\u002Fv1\u002Fsystemone"," choices, probabilities, and ordered ratings, separately from text generation. Clef images use raw base64 in ",[221,1380,1381],{},"images","; URLs and data URLs are rejected, unlike the llama.cpp path. Pin the supported Apple Silicon model, engine, and input representation. More runtime options prove neither accuracy nor probability calibration, memory savings, or lower latency; game-side evaluation is covered in the ",[157,1384,1386],{"href":1385},"\u002Fen\u002Fknowledge\u002Fgame\u002Fllm\u002Fgame-npc-llm-adoption-boundaries","NPC article",".",[28,1389,166,1390,1395,1396,1401,1402,1407],{},[157,1391,1394],{"href":1392,"rel":1393},"https:\u002F\u002Finco.ai\u002Fblog\u002Fsplash\u002F",[161],"Splash"," adds a dedicated Apple Silicon engine; ",[157,1397,1400],{"href":1398,"rel":1399},"https:\u002F\u002Flmstudio.ai\u002Fchangelog\u002Flmstudio\u002Flmstudio-v0.4.25",[161],"LM Studio 0.4.25"," added support on September 19. Its stated requirements are M3 or newer, macOS 26.4 or later, and at least 36 GB unified memory, with 48 GB or more recommended by the developer. The ",[157,1403,1406],{"href":1404,"rel":1405},"https:\u002F\u002Fhuggingface.co\u002Fincoai\u002FQwen3.8-27B-Splash",[161],"Qwen3.8-27B Splash package"," is 17.4 GB including the 4-bit model, DFlash 2 draft, and vision encoder; it is a Splash-specific package rather than a normal MLX \u002F Transformers checkpoint. Download size is not total memory. Check engine and model terms separately, and measure cold prefill, cache reuse, latency tails, and concurrent-game load before adoption; we have not run those tests.",[23,1409,1411],{"id":1410},"reading-the-specifications","Reading the specifications",[28,1413,1414],{},"Several numbers used for local LLMs look similar but describe different things.",[255,1416,1417,1430],{},[258,1418,1419],{},[261,1420,1421,1424,1427],{},[264,1422,1423],{},"Specification",[264,1425,1426],{},"What it indicates",[264,1428,1429],{},"What it does not determine",[280,1431,1432,1443,1454,1465,1476,1487],{},[261,1433,1434,1437,1440],{},[285,1435,1436],{},"Total parameter count",[285,1438,1439],{},"Approximate scale of the complete model",[285,1441,1442],{},"Runtime computation and total memory requirements",[261,1444,1445,1448,1451],{},[285,1446,1447],{},"Active Parameters",[285,1449,1450],{},"The part of an MoE model mainly used for each token",[285,1452,1453],{},"Full model storage and distribution size",[261,1455,1456,1459,1462],{},[285,1457,1458],{},"Quantized model size",[285,1460,1461],{},"Approximate size of the compressed model weights",[285,1463,1464],{},"Total RAM or VRAM including caches and other applications",[261,1466,1467,1470,1473],{},[285,1468,1469],{},"Maximum token count",[285,1471,1472],{},"The upper limit of text the model can reference at once",[285,1474,1475],{},"Speed on long input or whether it uses the information well",[261,1477,1478,1481,1484],{},[285,1479,1480],{},"Output tokens per second",[285,1482,1483],{},"Generation speed under a specific setup",[285,1485,1486],{},"Time to first output or latency for slower requests",[261,1488,1489,1492,1495],{},[285,1490,1491],{},"Benchmark score",[285,1493,1494],{},"Performance on a defined task and evaluation procedure",[285,1496,1497],{},"Quality for your workload, language, and hardware",[28,1499,1500],{},"Dense models generally use the full model for processing. MoE models reduce computation by selecting some experts, but the full set of experts still has to be stored.",[28,1502,1503],{},"Quantization reduces memory requirements but can affect accuracy, runtime compatibility, and speed. Different methods can produce different results even when all are described as “4-bit,” so record the specific quantization format.",[28,1505,1018,1506,1511,1512,1517,1518,1521],{},[157,1507,1510],{"href":1508,"rel":1509},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11324",[161],"llama.cpp b11324",", published October 1 at 19:24 UTC (October 2 at 04:24 JST), includes ",[157,1513,1516],{"href":1514,"rel":1515},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29749",[161],"PR #29749",". On Linux with ",[221,1519,1520],{},"-lm dio",", it replaces a temporary full-tensor copy with a reusable buffer capped at 64 MB. Measure loading peak RSS, free RAM, and load time separately from inference RAM \u002F VRAM and game load. The author's DGX Spark \u002F CUDA observations are configuration-specific, not a reduction shared by every OS or loading mode; we have not reproduced them.",[28,1523,1524,1525,1530,1531,1536],{},"Checked on October 11, 2026. The non-prerelease ",[157,1526,1529],{"href":1527,"rel":1528},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.40.2",[161],"Ollama v0.40.2",", published October 8 at 16:53 UTC (October 9 at 01:53 JST), currently explains that older models are converted on first use and an original backup is kept for downgrades. ",[157,1532,1535],{"href":1533,"rel":1534},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18874",[161],"PR #18874"," hides duplicate list entries; it does not remove disk backups. Allow disk headroom and measure first-use conversion separately from downloads and runtime RAM \u002F VRAM. If backups are removed, reverting to a version earlier than 0.40 requires re-pulling those models. The conversion feature's first introduction date is unconfirmed; do not claim v0.40.2 introduced it. We have not converted or deleted models, measured the extra disk usage or duration, or tested recovery.",[28,1538,1539,1540,1545,1546,1551,1552,1557],{},"Checked on October 12, 2026 (JST). ",[157,1541,1544],{"href":1542,"rel":1543},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.40.3",[161],"Ollama v0.40.3",", published October 11 UTC, pauses background local-model compatibility migration. ",[157,1547,1550],{"href":1548,"rel":1549},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18908",[161],"PR #18908"," cites per-request overhead and GC pressure, especially for high-volume embedding use; the ",[157,1553,1556],{"href":1554,"rel":1555},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002Fv0.40.3\u002Fserver\u002Froutes.go#L253-L267",[161],"versioned request path"," disables the migration call. Retain the v0.40.2 history above, but check the installed version before assuming background conversion occurs. This change does not establish that converted weights are reverted or backups deleted. Compare request latency and GC under the same model and concurrency, separately from disk usage and runtime RAM \u002F VRAM. We have not measured an improvement or VRAM reduction, or tested conversion and recovery.",[23,1559,1561],{"id":1560},"selection-criteria","Selection criteria",[28,1563,1564],{},"Define the workload and constraints before choosing a model name.",[45,1566,1567,1570,1573,1576,1579],{},[48,1568,1569],{},"Can the task be limited to classification or summarization, or does it require open-ended conversation and Agent behavior?",[48,1571,1572],{},"How much system RAM and GPU VRAM are available after accounting for other applications?",[48,1574,1575],{},"Is text sufficient, or are images and video required?",[48,1577,1578],{},"What language quality, Context Length, and Tool Use accuracy are required?",[48,1580,1581],{},"What are the licenses and lifecycle status of the model, quantized data, and inference software?",[28,1583,1584],{},"After narrowing the list to two or three candidates, compare them with the same prompts, Context Length, quantization format, and hardware. Measure time to first output, completion time, system and GPU memory, task success rate, and failure cases. Developer benchmarks are useful for creating a shortlist, but the final decision should be based on the real workload.",[23,1586,1588],{"id":1587},"a-planned-local-slm-integration-inside-a-game","A planned local-SLM integration inside a game",[28,1590,1591],{},"At gamescom 2026, NVIDIA announced that the creature-collection RPG Aniimo plans to add NVIDIA ACE support in early 2027. A fine-tuned Nemotron SLM is expected to run on the player's GPU, interpret intent from natural language or voice, and trigger the game's behavior APIs.",[28,1593,1594],{},"This is a planned example of using a local model to convert natural language into structured game operations rather than only providing open-ended chat. Production VRAM requirements, GPU contention with rendering, latency, and invalid-action rates are not yet established in public material. Model selection therefore needs to measure total VRAM under concurrent game load, latency, and validation of the output sent to behavior APIs, not just weight size.",[28,1596,1597,1598,1387],{},"The architecture and the other game-AI cases presented at gamescom are covered in ",[157,1599,1601],{"href":1600},"\u002Fen\u002Fknowledge\u002Fgame\u002Fresearch\u002Fgamescom-2026-game-ai-landscape","What gamescom 2026 showed about the state of game AI",[28,1603,801,1604,1607],{},[157,1605,1606],{"href":1385},"NPC integration article"," also covers AI Follower Jessica, a public Fallout 4 mod combining local dialogue, memory, and actions.",[23,1609,1611],{"id":1610},"current-perspective","Current perspective",[28,1613,1614],{},"The September 18 additions distinguish compact Agent models, compressed resident weights, and streamed experts. Iris-mini also reinforces the role of context management. These broaden evaluation choices without establishing NPC adoption or game co-residency.",[28,1616,1617],{},"K2 Horizon expands the compact Agent shortlist, while PAIR adds a way to distribute concurrent requests across PCs. Both require workload-specific validation.",[28,1619,1620],{},"The important change in local LLMs as of September 2026 is not that one model has become universally best. Instead, more options can now provide reasoning, Tool Use, image input, recovery after failure, and faster generation in local environments. Runtime updates such as LM Studio's assistant-drafter support can also make new evaluation configurations available for an existing model.",[28,1622,1623],{},"Meta's Muse Glimmer illustrates that shift clearly. Liquid AI's LFM2.5-2.6B shows a direction that combines a small Tool Use model with QAD for quantized quality and DSpark for faster generation. NVIDIA's Nemotron 3.5 Lightning also demonstrates a move away from building an Agent around one model by separating planning from repetitive execution. Perplexity Portable Computer makes another direction concrete by co-designing the model, harness, sandbox, and optional cloud escalation. Ornith 1.5 9B shows that smaller Tool Calling models are also becoming candidates for Agent experiments. Qwen, Gemma, gpt-oss, and Mistral broaden the options with different scales and architectures.",[28,1625,1626],{},"Because models change quickly, treat this list as a dated snapshot rather than a permanent recommendation. Re-evaluate when:",[45,1628,1629,1632,1635,1638,1641],{},[48,1630,1631],{},"A new model or quantization format is released",[48,1633,1634],{},"Inference software support changes",[48,1636,1637],{},"The target hardware or other concurrent applications change",[48,1639,1640],{},"Language, Tool Use, Context Length, or latency requirements change",[48,1642,1643],{},"The license or lifecycle status of a model or dependency changes",[23,1645,1647],{"id":1646},"caveats","Caveats",[45,1649,1650,1653,1656,1659,1662,1665,1668],{},[48,1651,1652],{},"Spark-X2.5, Bonsai 2, Edge0, and Iris-mini were checked on September 18, 2026. Their performance figures are developer-reported, and we have not reproduced them.",[48,1654,1655],{},"Earlier entries draw on public information compiled by September 2, 2026, retaining their individual information dates. K2 Horizon and NVIDIA PAIR were added after checking primary sources on September 6. This update did not revalidate every earlier entry.",[48,1657,1658],{},"The models listed are representative examples, not a complete catalog of local LLMs.",[48,1660,1661],{},"Performance and memory requirements vary with quantization, inference software, Context Length, concurrency, and hardware.",[48,1663,1664],{},"Developer-published benchmarks reflect each developer's evaluation conditions.",[48,1666,1667],{},"The October 4 check covers Portable Computer Windows availability, Splash, and Qwen indexer memory only; it does not revalidate all earlier models or establish measured game performance.",[48,1669,1670],{},"Review the model license, terms of use, inference software, and dependency licenses before adoption.",[23,1672,1674],{"id":1673},"related-resources","Related resources",[45,1676,1677,1683,1690,1696,1702,1709,1715,1722,1728,1734,1741,1747,1753,1759,1766,1772,1779,1785,1791,1797,1803,1809,1815,1821,1828,1833,1840,1846,1852,1858,1864,1871,1875,1881,1887,1893,1899],{},[48,1678,1679],{},[157,1680,1682],{"href":772,"rel":1681},[161],"Muse Glimmer 30B Model Card",[48,1684,1685],{},[157,1686,1689],{"href":1687,"rel":1688},"https:\u002F\u002Fwww.liquid.ai\u002Fblog\u002Flfm2-5-2-6b",[161],"LFM2.5-2.6B announcement",[48,1691,1692],{},[157,1693,1695],{"href":796,"rel":1694},[161],"LFM2.5-2.6B Model Card",[48,1697,1698],{},[157,1699,1701],{"href":804,"rel":1700},[161],"LFM2.5-2.6B official GGUF repository",[48,1703,1704],{},[157,1705,1708],{"href":1706,"rel":1707},"https:\u002F\u002Fhuggingface.co\u002Fblog\u002FLiquidAI\u002Fqad",[161],"LFM2.5 QAD Q4_0",[48,1710,1711],{},[157,1712,1714],{"href":812,"rel":1713},[161],"LFM2.5-DSpark",[48,1716,1717],{},[157,1718,1721],{"href":1719,"rel":1720},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002FLFM2.5-2.6B-DSpark-GGUF\u002Ftree\u002Fmain",[161],"LFM2.5-2.6B-DSpark official GGUF repository",[48,1723,1724],{},[157,1725,1727],{"href":840,"rel":1726},[161],"LFM Open License summary",[48,1729,1730],{},[157,1731,1733],{"href":828,"rel":1732},[161],"LM Studio 0.4.22 release notes",[48,1735,1736],{},[157,1737,1740],{"href":1738,"rel":1739},"https:\u002F\u002Flmstudio.ai\u002Fdocs\u002Fapp\u002Fadvanced\u002Fspeculative-decoding",[161],"LM Studio Speculative Decoding",[48,1742,1743],{},[157,1744,1746],{"href":159,"rel":1745},[161],"Introducing Portable Computer",[48,1748,1749],{},[157,1750,1752],{"href":192,"rel":1751},[161],"A Local-First Agent for Private and Cost-Effective Knowledge Work",[48,1754,1755],{},[157,1756,1758],{"href":203,"rel":1757},[161],"PPLX Computer Qwen 3.8 27B DFlash2 checkpoint",[48,1760,1761],{},[157,1762,1765],{"href":1763,"rel":1764},"https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fnvidia-nemotron-3-5-lightning-delivers-fast-accurate-specialized-task-execution-for-long-running-agents\u002F",[161],"Nemotron 3.5 Lightning Technical Blog",[48,1767,1768],{},[157,1769,1771],{"href":853,"rel":1770},[161],"Nemotron 3.5 Lightning BF16 Model Card",[48,1773,1774],{},[157,1775,1778],{"href":1776,"rel":1777},"https:\u002F\u002Fhuggingface.co\u002Fggml-org\u002FNVIDIA-Nemotron-3.5-Lightning-30B-A3B-GGUF",[161],"Nemotron 3.5 Lightning GGUF",[48,1780,1781],{},[157,1782,1784],{"href":878,"rel":1783},[161],"Ornith 1.5 9B Model Card",[48,1786,1787],{},[157,1788,1790],{"href":887,"rel":1789},[161],"Ornith 1.5 9B GGUF",[48,1792,1793],{},[157,1794,1796],{"href":898,"rel":1795},[161],"Ornith 1.5 35B-A3B Model Card",[48,1798,1799],{},[157,1800,1802],{"href":904,"rel":1801},[161],"Ornith 1.5 35B-A3B GGUF",[48,1804,1805],{},[157,1806,1808],{"href":920,"rel":1807},[161],"Ollama ornith library",[48,1810,1811],{},[157,1812,1814],{"href":939,"rel":1813},[161],"Qwen3.8-27B Model Card",[48,1816,1817],{},[157,1818,1820],{"href":956,"rel":1819},[161],"Qwen3.8-Flash-Next announcement",[48,1822,1823],{},[157,1824,1827],{"href":1825,"rel":1826},"https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3.8-Flash-Next",[161],"Qwen3.8-Flash-Next Model Card",[48,1829,1830],{},[157,1831,1001],{"href":999,"rel":1832},[161],[48,1834,1835],{},[157,1836,1839],{"href":1837,"rel":1838},"https:\u002F\u002Fhuggingface.co\u002Funsloth\u002FQwen3.8-Flash-Next-GGUF",[161],"Unsloth Qwen3.8-Flash-Next GGUF",[48,1841,1842],{},[157,1843,1845],{"href":1120,"rel":1844},[161],"Gemma 4 model overview",[48,1847,1848],{},[157,1849,1851],{"href":1215,"rel":1850},[161],"OpenAI API model catalog",[48,1853,1854],{},[157,1855,1857],{"href":1233,"rel":1856},[161],"Ministral 3 3B model overview",[48,1859,1860],{},[157,1861,1863],{"href":1246,"rel":1862},[161],"Introducing Mistral Small 4",[48,1865,1866],{},[157,1867,1870],{"href":1868,"rel":1869},"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Fnews\u002Fgamescom-2026-dlss-4-5-ray-reconstruction-release-announcements-trailers\u002F",[161],"NVIDIA gamescom 2026 announcements",[48,1872,1873],{},[157,1874,1601],{"href":1600},[48,1876,1877],{},[157,1878,1880],{"href":658,"rel":1879},[161],"K2 Horizon",[48,1882,1883],{},[157,1884,1886],{"href":664,"rel":1885},[161],"K2 Horizon 3.7B",[48,1888,1889],{},[157,1890,1892],{"href":670,"rel":1891},[161],"K2 Horizon 7B",[48,1894,1895],{},[157,1896,1898],{"href":682,"rel":1897},[161],"K2 Horizon 3.7B GGUF",[48,1900,1901],{},[157,1902,239],{"href":237,"rel":1903},[161],{"title":1905,"searchDepth":1906,"depth":1906,"links":1907},"",2,[1908,1909,1910,1911,1916,1917,1932,1933,1934,1935,1936,1937,1938,1939],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":107,"depth":1906,"text":108},{"id":146,"depth":1906,"text":147,"children":1912},[1913,1915],{"id":151,"depth":1914,"text":152},3,{"id":209,"depth":1914,"text":210},{"id":230,"depth":1906,"text":231},{"id":246,"depth":1906,"text":247,"children":1918},[1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931],{"id":488,"depth":1914,"text":489},{"id":598,"depth":1914,"text":599},{"id":638,"depth":1914,"text":307},{"id":652,"depth":1914,"text":324},{"id":765,"depth":1914,"text":766},{"id":789,"depth":1914,"text":790},{"id":846,"depth":1914,"text":847},{"id":873,"depth":1914,"text":392},{"id":933,"depth":1914,"text":934},{"id":1114,"depth":1914,"text":426},{"id":1208,"depth":1914,"text":1209},{"id":1227,"depth":1914,"text":460},{"id":1241,"depth":1914,"text":476},{"id":1257,"depth":1906,"text":1258},{"id":1275,"depth":1906,"text":1276},{"id":1410,"depth":1906,"text":1411},{"id":1560,"depth":1906,"text":1561},{"id":1587,"depth":1906,"text":1588},{"id":1610,"depth":1906,"text":1611},{"id":1646,"depth":1906,"text":1647},{"id":1673,"depth":1906,"text":1674},"Major local LLMs and compact Agent candidates, with the deployment trade-offs of low-bit weights, SSD expert streaming, and context-management harnesses.","md",{},true,"\u002Fknowledge\u002Fai\u002Fllm\u002Flocal-llm-landscape-2026","2026-08-18",{"title":6,"description":1940},"published","knowledge\u002Fai\u002Fllm\u002Flocal-llm-landscape-2026",[1950,1951,1952],"local-inference","agent","open-weight",[1954],"llm","2026-10-13","APjxU1CR6ZUmmL_ZOVplU9UHUeJf0TRvg_ThabFqSOI",{"id":1958,"title":1959,"appliesTo":1960,"body":1973,"description":4248,"extension":1941,"meta":4249,"navigation":1943,"path":4250,"publishedAt":4251,"seo":4252,"status":1947,"stem":4253,"tags":4254,"technologies":4258,"updatedAt":1955,"__hash__":4261},"knowledge_en\u002Fknowledge\u002Fgame\u002Fllm\u002Fgame-npc-llm-adoption-boundaries.md","A practical path and design boundaries for local LLMs in game NPCs",[1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972],"Ollama RC decision GGUFs, Decision 2.0 \u002F 3.0, and EmbeddingGemma 2 CUDA checked on October 13, 2026 JST","WebLLM v0.2.86 Gemma 4 inputs and persistence \u002F recovery boundaries checked on October 12, 2026 (JST)","BehaviorLLM Unity integration and decision-input overflow checked on October 11, 2026","LM Studio decision APIs, Clef backend regression checks, d1, and saved-slot checkpoints checked on October 11, 2026","Busy-slot context protection and NobodyWho Godot v12.1.0 cache management checked on October 11, 2026","wllama 3.8.1, EmbeddingGemma 2, and OpenAI Decisions API checked on October 7, 2026","Clef image input, NobodyWho Godot v12, and saved KV cache compatibility checked on October 6, 2026","Decision APIs, output constraints, PUBG Ally, and Scapegoat checked on October 4, 2026","Ambar Reflex decision-path comparison checked on September 29, 2026","Adaptive Neural Companion and Spark-X2.5 checked on September 18, 2026","Public information available as of 2026-09-03","AI Follower Jessica and K2 Horizon checked on September 6, 2026",{"type":20,"value":1974,"toc":4204},[1975,1977,1980,1983,1991,1994,1996,2049,2052,2056,2059,2062,2071,2074,2148,2155,2172,2175,2179,2187,2194,2244,2247,2274,2278,2281,2284,2301,2304,2329,2344,2348,2357,2418,2421,2424,2430,2436,2440,2468,2493,2527,2558,2561,2569,2603,2638,2642,2674,2700,2704,2732,2741,2745,2766,2793,2810,2824,2828,2857,2882,2885,2889,2909,2951,2959,2962,2965,2969,2992,3015,3029,3041,3045,3048,3074,3077,3086,3090,3099,3102,3108,3114,3117,3183,3186,3189,3192,3196,3224,3228,3236,3245,3248,3259,3262,3266,3274,3277,3280,3284,3305,3308,3311,3315,3323,3326,3329,3345,3348,3355,3359,3362,3370,3373,3419,3426,3430,3439,3443,3453,3460,3466,3474,3478,3491,3495,3501,3508,3512,3515,3593,3600,3604,3607,3627,3630,3655,3658,3662,3680,3683,3687,3705,3714,3718,3738,3757,3761,3764,3767,3784,3787,3791,3794,3797,3820,3823,3840,3843,3847,3856,3898,3922,3925,3929,3932,3950,3953,3956,3960,3963,3966,3972,3975,3995,3998,4000,4035,4037,4200],[23,1976,26],{"id":25},[28,1978,1979],{},"Adding an LLM to game NPCs can support conversations, personalities, memories, and context-sensitive intent proposals that are difficult to express with fixed dialogue alone. If the LLM also controls movement, combat, inventory, and quest progression, however, latency or incorrect output can directly corrupt game state.",[28,1981,1982],{},"This article does not decide that a particular game should adopt a local LLM. It instead organizes the responsibilities, implementation order, and evaluation criteria that should be separated before adoption. Rather than starting with a model name or parameter count, it focuses on the boundary between conventional game AI and an LLM, interchangeable local and cloud providers, and a practical starting point with one cognitive actor.",[28,1984,1985,1986,1990],{},"The models themselves are compared in ",[157,1987,1989],{"href":1988},"\u002Fen\u002Fknowledge\u002Fai\u002Fllm\u002Flocal-llm-landscape-2026","Major local LLMs in 2026",". This article assumes that candidate models exist and concentrates on connecting them to a game safely and deciding adoption through measurement.",[28,1992,1993],{},"On September 18, 2026, developer material for Adaptive Neural Companion and Spark-X2.5 was checked. The additions cover first-launch inference readiness and another model-evaluation candidate. Earlier examples retain their own information dates; this update is not a new benchmark or a revalidation of every product.",[23,1995,43],{"id":42},[45,1997,1998,2001,2004,2007,2010,2013,2016,2019,2022,2025,2028,2031,2034,2037,2040,2046],{},[48,1999,2000],{},"The October 13 check adds the Ollama RC decision-GGUF migration, Decision 2.0 \u002F 3.0, and the EmbeddingGemma 2 CUDA fix. Verify runtime \u002F artifact compatibility, input limits, and rejection fallback; preserve GameState, permission, and expiry checks.",[48,2002,2003],{},"The October 12 check adds WebLLM v0.2.86 text \u002F audio support and cancellation fixes as a browser evaluation path. Persisting and resuming generation remains separate from validating current GameState and authorizing an action to run again.",[48,2005,2006],{},"The October 11 check adds LM Studio decision endpoints, d1, and Unity's BehaviorLLM as comparison paths. Numerical output, input overflow, saved-slot restoration, overlapping requests, and SDK cache consistency require distinct tests. Keep game-side state validation and base adoption on measurements.",[48,2008,2009],{},"The October 7 check adds browser-based wllama and the hosted OpenAI Decisions API as separate ways to evaluate approved options. EmbeddingGemma 2 is a memory-retrieval candidate. Each still requires game-side state and permission checks and workload-specific measurements.",[48,2011,2012],{},"Ambar Reflex, checked on September 29, is a small author-run experiment in decisions without generated prose. It supports measuring decision accuracy, latency, and game results separately; this update does not revalidate every earlier example.",[48,2014,2015],{},"AI Follower Jessica is a public mod combining local dialogue, memory, and actions with conventional companion behavior. Its developer guidance makes game\u002FLLM VRAM contention concrete, but is not an independent benchmark.",[48,2017,2018],{},"Keep game state such as HP, inventory, and position authoritative on the game side.",[48,2020,2021],{},"Let the LLM propose dialogue or high-level intents, then execute only requests that pass game-side validation.",[48,2023,2024],{},"Structured output stabilizes the response format, but it does not guarantee that the content is correct for the current game state.",[48,2026,2027],{},"Handle movement, aiming, collision, and immediate combat with conventional game AI, and invoke the LLM in response to events.",[48,2029,2030],{},"Put scripted or fake behavior, cloud APIs, and local models behind the same provider boundary.",[48,2032,2033],{},"Decide adoption from language quality, intent success rate, latency, VRAM, and frame-time impact rather than model size alone.",[48,2035,2036],{},"A game with many entities does not need an independent LLM actor for every entity.",[48,2038,2039],{},"Even when an implementation follows sound design principles, measure its performance while the target game is running on the target hardware.",[48,2041,2042,2043,2045],{},"Epoch Forge Demo is a downloadable Godot demo whose official Steam page states that it uses a local LLM for NPC dialogue and includes Gemma and ",[221,2044,818],{},". Public information does not establish the exact checkpoint, quantization, or packaging layout.",[48,2047,2048],{},"Scapegoat and Cometforge NPC show the shared-small-model and per-NPC-memory pattern reaching an Early Access game. Scapegoat became available as Free To Play on September 29, 2026; availability is not an independent performance evaluation.",[28,2050,2051],{},"As of the information date, small on-device models can be found in scoped public demos and Early Access games. This does not mean that the same result will hold for every game, an off-the-shelf model, or many simultaneous NPCs.",[23,2053,2055],{"id":2054},"keep-the-game-as-the-sole-authority","Keep the game as the sole authority",[28,2057,2058],{},"Separate LLM memory from authoritative game state. If the LLM says that an NPC owns a sword, do not treat that statement as inventory truth. Read current inventory, position, HP, relationship values, and quest state from game systems.",[28,2060,2061],{},"Allow the LLM to propose an intent, not to change state directly.",[2063,2064,2069],"pre",{"className":2065,"code":2067,"language":2068,"meta":1905},[2066],"language-text","Game Event \u002F Player Input\n  → Context Builder\n  → Cognitive Provider\n      ├─ Scripted \u002F Fake\n      ├─ Cloud API\n      └─ Local Model\n  → Structured Response\n  → Schema Validation\n  → Semantic Validation \u002F Authorization\n  → BT \u002F GOAP \u002F Utility AI, and so on\n  → Game Systems\n","text",[221,2070,2067],{"__ignoreMap":1905},[28,2072,2073],{},"For example, suppose the LLM returns this response:",[2063,2075,2079],{"className":2076,"code":2077,"language":2078,"meta":1905,"style":1905},"language-json shiki shiki-themes github-light github-dark","{\n  \"speech\": \"Please use this weapon.\",\n  \"intent\": \"GiveItem\",\n  \"target\": \"Player\",\n  \"itemId\": \"sword-001\"\n}\n","json",[221,2080,2081,2090,2106,2118,2131,2142],{"__ignoreMap":1905},[2082,2083,2086],"span",{"class":2084,"line":2085},"line",1,[2082,2087,2089],{"class":2088},"sVt8B","{\n",[2082,2091,2092,2096,2099,2103],{"class":2084,"line":1906},[2082,2093,2095],{"class":2094},"sj4cs","  \"speech\"",[2082,2097,2098],{"class":2088},": ",[2082,2100,2102],{"class":2101},"sZZnC","\"Please use this weapon.\"",[2082,2104,2105],{"class":2088},",\n",[2082,2107,2108,2111,2113,2116],{"class":2084,"line":1914},[2082,2109,2110],{"class":2094},"  \"intent\"",[2082,2112,2098],{"class":2088},[2082,2114,2115],{"class":2101},"\"GiveItem\"",[2082,2117,2105],{"class":2088},[2082,2119,2121,2124,2126,2129],{"class":2084,"line":2120},4,[2082,2122,2123],{"class":2094},"  \"target\"",[2082,2125,2098],{"class":2088},[2082,2127,2128],{"class":2101},"\"Player\"",[2082,2130,2105],{"class":2088},[2082,2132,2134,2137,2139],{"class":2084,"line":2133},5,[2082,2135,2136],{"class":2094},"  \"itemId\"",[2082,2138,2098],{"class":2088},[2082,2140,2141],{"class":2101},"\"sword-001\"\n",[2082,2143,2145],{"class":2084,"line":2144},6,[2082,2146,2147],{"class":2088},"}\n",[28,2149,2150,2151,2154],{},"Even if the JSON is valid and ",[221,2152,2153],{},"intent"," is an allowed enum value, the game must still check the following:",[45,2156,2157,2160,2163,2166,2169],{},[48,2158,2159],{},"whether the NPC owns the item;",[48,2161,2162],{},"whether the item can currently be transferred;",[48,2164,2165],{},"whether the target exists and can receive it;",[48,2167,2168],{},"whether the request violates quest or game rules; and",[48,2170,2171],{},"whether the same request has already been processed.",[28,2173,2174],{},"Reject requests that fail these checks, and fall back to a safe action after the retry limit. Do not write LLM output directly into ECS components or inventory.",[23,2176,2178],{"id":2177},"structured-output-does-not-guarantee-semantic-correctness","Structured output does not guarantee semantic correctness",[28,2180,1212,2181,2186],{},[157,2182,2185],{"href":2183,"rel":2184},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fstructured-outputs",[161],"Structured Outputs"," can constrain a response to a specified JSON Schema, preventing missing required keys or enum values outside the definition. This is useful for reducing parse failures and strengthening the format-level contract.",[28,2188,2189,2190,2193],{},"A schema-compliant ",[221,2191,2192],{},"GiveItem"," request may still be impossible in the current game state. Separate the following three stages:",[255,2195,2196,2209],{},[258,2197,2198],{},[261,2199,2200,2203,2206],{},[264,2201,2202],{},"Stage",[264,2204,2205],{},"What it checks",[264,2207,2208],{},"Primary owner",[280,2210,2211,2222,2233],{},[261,2212,2213,2216,2219],{},[285,2214,2215],{},"Syntax",[285,2217,2218],{},"Whether the response is valid JSON",[285,2220,2221],{},"Serializer",[261,2223,2224,2227,2230],{},[285,2225,2226],{},"Structure",[285,2228,2229],{},"Whether required fields, types, and enums match",[285,2231,2232],{},"Structured Output \u002F Schema Validator",[261,2234,2235,2238,2241],{},[285,2236,2237],{},"Semantics and authority",[285,2239,2240],{},"Whether the action is permitted in the current state",[285,2242,2243],{},"Game Systems",[28,2245,2246],{},"Treat function calling the same way: the model proposes a callable operation and its arguments. The game owns the real operation and rechecks arguments and authorization.",[28,2248,2249,2250,2255,2256,2259,2260,2263,2264,2269,2270,2273],{},"Checked on October 4, 2026. Also test whether output constraints were activated successfully. The September 29 prerelease ",[157,2251,2254],{"href":2252,"rel":2253},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11246",[161],"llama.cpp b11246"," fixes Muse Glimmer ignoring ",[221,2257,2258],{},"response_format.json_schema"," with ",[221,2261,2262],{},"--jinja",". Separately, the ",[157,2265,2268],{"href":2266,"rel":2267},"https:\u002F\u002Fgithub.com\u002Fgetnamo\u002FLlama-Unreal\u002Fblob\u002Fv1.4.0\u002FREADME.md#grammar-constrained-output-gbnf",[161],"Llama-Unreal v1.4.0 documentation"," says an invalid grammar raises ",[221,2271,2272],{},"OnError"," code 12 but generation continues unconstrained. Our integration requirement is to reject such responses for state-changing actions and fall back safely. Test invalid constraints and reloads as well as valid JSON; game-state and authorization checks remain necessary. These are proposed regression tests, not tests we performed.",[23,2275,2277],{"id":2276},"separate-reflexive-and-cognitive-processing","Separate reflexive and cognitive processing",[28,2279,2280],{},"Movement, aiming, avoidance, collision, animation, and damage application must follow frames or fixed ticks and cannot wait for an LLM response. Handle them with predictable game-side systems such as state machines, behavior trees, GOAP, utility AI, or ECS.",[28,2282,2283],{},"Limit the LLM to high-level decisions whose delay will not stop the simulation:",[45,2285,2286,2289,2292,2295,2298],{},[48,2287,2288],{},"interpret the player's spoken intent;",[48,2290,2291],{},"generate dialogue;",[48,2293,2294],{},"choose a candidate from a set of approved goals;",[48,2296,2297],{},"summarize important events as memory candidates; and",[48,2299,2300],{},"request additional observations when needed.",[28,2302,2303],{},"Invoke the model on events such as conversation start, goal completion, important world events, or relationship changes instead of every frame. Keep conventional AI running while the response is pending, and design timeouts, cancellation, stale-response rejection, and fallback behavior.",[28,2305,2306,2307,2312,2313,2318,2319,2324,2325,2328],{},"Checked on October 6, 2026. ",[157,2308,2311],{"href":2309,"rel":2310},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Freleases\u002Ftag\u002Fnobodywho-godot-v12.0.0",[161],"NobodyWho Godot v12.0.0"," is an SDK released on October 5 at 18:21 UTC (October 6 at 03:21 JST). Its ",[157,2314,2317],{"href":2315,"rel":2316},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.0.0\u002FCHANGELOG.md",[161],"versioned changelog"," describes a complete Godot API reimplementation, tool calls on the main thread, and asynchronous tools. However, the ",[157,2320,2323],{"href":2321,"rel":2322},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.0.0\u002Fdocs\u002Fdocs-godot\u002Ftool-calling.md",[161],"tool documentation"," specifies no tool timeout: ",[221,2326,2327],{},"stop_generation()"," cannot interrupt an already running tool. A tool that never returns prevents its chat and response stream from completing.",[28,2330,2331,2332,2337,2338,2343],{},"When evaluating this SDK, separate stopping generation from cancelling a game operation. Our proposed design gives tools their own completion deadlines and cancellation handling, then rechecks current GameState, target existence, expiry, cancellation status, authorization, and duplicate processing immediately before a state change, even after a late completion. With one actor, test a tool that never returns, completion after stopping, a removed target, duplicate requests, and fallback. The v12 ",[157,2333,2336],{"href":2334,"rel":2335},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.0.0\u002Fnobodywho\u002Fgodot\u002Fnobodywho.gdextension",[161],"manifest"," requires Godot 4.6 or later; distinguish it from the README's 4.5 statement. Check the SDK's ",[157,2339,2342],{"href":2340,"rel":2341},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.0.0\u002FLICENSE",[161],"EUPL-1.2"," separately from the chosen GGUF's distribution terms. Main-thread support guarantees neither action validity nor frame time; we have not run the SDK.",[23,2345,2347],{"id":2346},"ambar-reflex-tests-decisions-without-generated-prose","Ambar Reflex tests decisions without generated prose",[28,2349,2350,2351,2356],{},"Checked on September 29, 2026. ",[157,2352,2355],{"href":2353,"rel":2354},"https:\u002F\u002Fgithub.com\u002Fabxda\u002Fambar-reflex-sistema-1",[161],"Ámbar Reflex \u002F Sistema 1"," is a public experiment using Qwen3.5-4B Q8_0 on an RTX 3060 to evaluate six aspects of game state: movement, jumping, crouching, aiming, shooting, and danger. It uses SemIf-derived logit readout, returns probabilities through a local API, and maps them to controls in game code. It is not evidence of commercial NPC adoption.",[255,2358,2359,2375],{},[258,2360,2361],{},[261,2362,2363,2366,2369,2372],{},[264,2364,2365],{},"Author's real-time evaluation",[264,2367,2368],{},"Mean stage progress",[264,2370,2371],{},"Decision latency",[264,2373,2374],{},"Runs",[280,2376,2377,2391,2405],{},[261,2378,2379,2382,2385,2388],{},[285,2380,2381],{},"Direct probability readout",[285,2383,2384],{},"24.9%",[285,2386,2387],{},"408 ms",[285,2389,2390],{},"5",[261,2392,2393,2396,2399,2402],{},[285,2394,2395],{},"JSON generation with the same 4B model class",[285,2397,2398],{},"10.3%",[285,2400,2401],{},"1,041 ms",[285,2403,2404],{},"3",[261,2406,2407,2410,2413,2416],{},[285,2408,2409],{},"Random agent",[285,2411,2412],{},"4.6%",[285,2414,2415],{},"—",[285,2417,2390],{},[28,2419,2420],{},"The generative baseline runs through Ollama, so matching model size does not make the runtime paths identical. These results depend on a small sample and the question design; they do not establish general NPC performance or model rankings. Static decision accuracy and real-time game progress are separate evaluation dimensions. Even a correct decision can become useless if the state changes before it arrives.",[28,2422,2423],{},"The following is an architecture proposed in this article for NPC evaluation.",[2063,2425,2428],{"className":2426,"code":2427,"language":2068,"meta":1905},[2066],"Game state and allowed candidates\n  → Decision model \u002F logit scorer\n  → Candidate evaluations\n  → Game rechecks current state, authorization, and expiry\n  → BT \u002F utility AI executes\n",[221,2429,2427],{"__ignoreMap":1905},[28,2431,2432,2433,2435],{},"Removing text generation still leaves input processing, queueing, and GPU contention. Keep stale-response rejection and fallback, and do not authorize actions from probabilities alone. Dialogue can use a separate generative model, but measure the resident memory of multiple models as well. The ",[157,2434,594],{"href":593}," compares decision readouts and runtime paths.",[149,2437,2439],{"id":2438},"compare-versioned-decision-apis","Compare versioned decision APIs",[28,2441,166,2442,2447,2448,2450,2451,2456,2457,667,2462,2467],{},[157,2443,2446],{"href":2444,"rel":2445},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.35.0",[161],"Ollama v0.35.0"," added ",[221,2449,1377],{}," for Nimble and Tev1. Upstream ",[157,2452,2455],{"href":2453,"rel":2454},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11361",[161],"llama.cpp b11361",", released on October 2 UTC, added the endpoint for Laya, Julia-1, Lev, OpenJev, and Kev. October 3 builds added ",[157,2458,2461],{"href":2459,"rel":2460},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11364",[161],"Nimble in b11364",[157,2463,2466],{"href":2464,"rel":2465},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11371",[161],"Clef \u002F Clef Flash in b11371",". These llama.cpp releases are prereleases, not new model announcements or evidence that Ambar uses this API.",[28,2469,2470,2475,2476,629,2481,2486,2487,2492],{},[157,2471,2474],{"href":2472,"rel":2473},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29831",[161],"Clef support PR #29831"," provided text-only GGUF execution in b11371, with one sequence per batch. The October 6, 2026 check confirms that the October 5 prerelease ",[157,2477,2480],{"href":2478,"rel":2479},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11418",[161],"b11418",[157,2482,2485],{"href":2483,"rel":2484},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F29969",[161],"image-input PR #29969",". The same day's non-prerelease ",[157,2488,2491],{"href":2489,"rel":2490},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fv0.6.0",[161],"v0.6.0"," also includes it. This is image support in the runtime path, not a new model announcement.",[28,2494,801,2495,2500,2501,2504,2505,2508,2509,2514,2515,2520,2521,1312,2524,1387],{},[157,2496,2499],{"href":2497,"rel":2498},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11418\u002Ftools\u002Fserver\u002FREADME.md#post-v1systemone-typesafe-compatible-system-one-api",[161],"b11418 API documentation"," requires a compatible projector loaded through ",[221,2502,2503],{},"--mmproj"," and images supplied as data URLs. No streaming, no free-text generation, and no guaranteed probability calibration for your data remain important boundaries. Clef evaluates questions jointly, and Clef and Laya require the whole prompt to fit ",[221,2506,2507],{},"--ubatch-size",". The ",[157,2510,2513],{"href":2511,"rel":2512},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11418\u002Fsrc\u002Fmodels\u002Fclef.cpp",[161],"same build's Clef implementation"," still assumes one sequence. The earlier October 3 prerelease ",[157,2516,2519],{"href":2517,"rel":2518},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11379",[161],"b11379"," fixed a Laya server abort by limiting ",[221,2522,2523],{},"n_batch",[221,2525,2526],{},"n_ubatch",[28,2528,2529,2530,2533,2534,2539,2540,2545,2546,2551,2552,2557],{},"Use a matching ",[221,2531,2532],{},"llama-server"," build, a GGUF containing the updated template, and a compatible projector. The PR review says older GGUFs need reconversion; the ",[157,2535,2538],{"href":2536,"rel":2537},"https:\u002F\u002Fhuggingface.co\u002Fggml-org\u002FClef-Flash-GGUF\u002Fcommit\u002F4a192915ef971886004b5b13294f2b4c7a7fc39d",[161],"Clef Flash distribution diff"," confirms updated model files and added projectors. The ",[157,2541,2544],{"href":2542,"rel":2543},"https:\u002F\u002Fhuggingface.co\u002Fggml-org\u002FClef-Flash-GGUF\u002Ftree\u002Fmain",[161],"file listing"," reports a 6.49 GB Q4_K_M model and a separate 624 MB Q8_0 projector, not total required RAM \u002F VRAM. Distinguish the ",[157,2547,2550],{"href":2548,"rel":2549},"https:\u002F\u002Fhuggingface.co\u002FCloudflare\u002Fclef-flash",[161],"model card's"," Apache-2.0 statement from the ",[157,2553,2556],{"href":2554,"rel":2555},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11418\u002FLICENSE",[161],"runtime's MIT license",", and check the model's original LICENSE and distribution conditions before bundling it in a product.",[28,2559,2560],{},"Start with one allowed text intent and compare Japanese inputs, no matching option, stale GameState, timeouts, and fallback. When adding images, compare the same images and text, and test rejection and fallback for images that conflict with GameState, stale images, oversized input, and an unloaded projector. These are proposed tests, not measurements we performed. Runtime support does not establish redistribution permission or incorporation of these specific upstream features into LM Studio; latency, total memory, and concurrent-game performance remain unmeasured. Keep the game-side authority boundary even when the API returns a confident choice.",[28,2562,1358,2563,2568],{},[157,2564,2567],{"href":2565,"rel":2566},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18776\u002Ffiles",[161],"Ollama PR #18776",", incorporated in the v0.40.0 path, rejects oversized Clef MLX input with HTTP 400 after counting expanded image tokens, without partially preparing question rows. Laya counts state, questions, options, and reserved tokens and rejects overflow rather than truncating it. These particular implementations are not universal backend guarantees. Compare requests just below \u002F above the limit, image expansion, and late invalid questions; the game should reject missing important state and fall back. The upstream tests have not been run by us.",[28,2570,2571,2572,629,2577,2582,2583,2588,2589,2594,2595,2598,2599,2602],{},"Checked on October 11, 2026. Test numerical results as well as valid response formats. The October 7 prerelease ",[157,2573,2576],{"href":2574,"rel":2575},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11475",[161],"llama.cpp b11475",[157,2578,2581],{"href":2579,"rel":2580},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F30100",[161],"PR #30100",", fixing Metal matrix-multiply \u002F add fusion. On the author's M1 Max and Clef Flash Q8_0 question, a probability changed from 0.284 to 0.977, matching CPU. Non-prerelease ",[157,2584,2587],{"href":2585,"rel":2586},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Freleases\u002Ftag\u002Fv0.40.1",[161],"Ollama v0.40.1",", published October 7 at 23:22 UTC (October 8 at 08:22 JST), includes ",[157,2590,2593],{"href":2591,"rel":2592},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18777",[161],"PR #18777",", using 64-bit file seeks to fix Windows weight reads past 2 GiB and a ",[221,2596,2597],{},"non-finite logit"," failure. That author's test used Windows 11 CPU; GPU backends and a separate ",[221,2600,2601],{},"cannot open model"," failure were unverified. These are upstream observations, not our reproductions or Japanese calibration measurements. Compare choices and probabilities, non-finite values, and errors across CPU and the target backend with identical model artifacts, questions, candidates, and context. Mutual incorporation of the fixes and adoption by LM Studio \u002F game SDKs remain unconfirmed. Preserve game-state validation.",[28,2604,1337,2605,2608,2609,2614,2615,2617,2618,2623,2624,2627,2628,2633,2634,2637],{},[157,2606,1342],{"href":1340,"rel":2607},[161],", published October 12 at 19:00:12 UTC (October 13 at 04:00:12 JST), incorporates ",[157,2610,2613],{"href":2611,"rel":2612},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fpull\u002F18917",[161],"PR #18917",": GGUF decision requests go directly to llama.cpp's ",[221,2616,1377],{},", including model-specific prompt construction. ",[157,2619,2622],{"href":2620,"rel":2621},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002Fv0.40.4-rc0\u002Fserver\u002Froutes.go#L889-L903",[161],"Format validation"," rejects old GGUFs missing required decision metadata and Clef in the old ",[221,2625,2626],{},"qwen35"," format; ",[157,2629,2632],{"href":2630,"rel":2631},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002Fv0.40.4-rc0\u002Fdecision\u002Fsystemone.go#L32-L53",[161],"shared validation"," standardizes ",[221,2635,2636],{},"score"," at 2–10 levels. Updated models are to be published separately; availability of the complete set remains unconfirmed. Re-pulling is not a guaranteed fix. Pin the runtime and model digest, and verify compatible artifact availability, rejection, and fallback.",[149,2639,2641],{"id":2640},"add-decision-20-30-to-compact-decision-path-comparisons","Add Decision 2.0 \u002F 3.0 to compact decision-path comparisons",[28,2643,2644,2645,2650,2651,2655,2656,2661,2662,2667,2668,2673],{},"Checked on October 13, 2026 JST. ",[157,2646,2649],{"href":2647,"rel":2648},"https:\u002F\u002Fhuggingface.co\u002Fvllm-sr\u002FDecision-2.0-Kai-0.6B",[161],"Decision-2.0-Kai-0.6B"," is a 0.60B text \u002F JSON model for choices, yes\u002Fno judgments, and ratings, with 8,192-token context; its ",[157,2652,619],{"href":2653,"rel":2654},"https:\u002F\u002Fhuggingface.co\u002Fvllm-sr\u002FDecision-2.0-Kai-0.6B-GGUF",[161]," is 401 MB. ",[157,2657,2660],{"href":2658,"rel":2659},"https:\u002F\u002Fhuggingface.co\u002Fvllm-sr\u002Fd3-edge",[161],"Decision 3.0's d3-edge"," totals 0.59B including its vision encoder, with a ",[157,2663,2666],{"href":2664,"rel":2665},"https:\u002F\u002Fhuggingface.co\u002Fvllm-sr\u002Fd3-edge\u002Ftree\u002Fmain",[161],"1.19 GB BF16 main weight file",". File sizes are not total RAM \u002F VRAM requirements. Initial model publication timestamps remain unconfirmed. Separate the cards' Apache-2.0 statements from runtime terms; we could not retrieve ",[157,2669,2672],{"href":2670,"rel":2671},"https:\u002F\u002Fhuggingface.co\u002Fvllm-sr\u002Fd3-edge\u002Fblob\u002Fmain\u002FLICENSE",[161],"d3's individual LICENSE"," in this check, so verify it before bundling.",[28,2675,2676,2677,667,2682,2687,2688,2693,2694,2699],{},"Runtime support arrives in the October 12 JST prereleases ",[157,2678,2681],{"href":2679,"rel":2680},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11571",[161],"llama.cpp b11571 (Decision 2)",[157,2683,2686],{"href":2684,"rel":2685},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11572",[161],"b11572 (d3)",". Prerelease ",[157,2689,2692],{"href":2690,"rel":2691},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11577",[161],"b11577",", published October 13 at 07:55 JST, fixes d3 with multiple sequences. The ",[157,2695,2698],{"href":2696,"rel":2697},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11577\u002Ftools\u002Fserver\u002FREADME.md",[161],"b11577 API documentation"," requires d3's whole prompt to fit one ubatch and a compatible projector for images; Decision 2 requires a question's options and the prompt ending to fit one batch. The d3 card's video support does not establish video support in this runtime. Compare short allowed Japanese intents, option ordering, stale GameState, oversized input, missing projectors, multiple sequences, and late-result disposal. Preserve state, permission, and expiry checks. We have not run the models or runtime, or measured accuracy, calibration, total memory, latency, or concurrent-game performance.",[149,2701,2703],{"id":2702},"include-lm-studios-local-decision-endpoints","Include LM Studio's local decision endpoints",[28,2705,2706,2707,2712,2713,2715,2716,2719,2720,2725,2726,2731],{},"Checked on October 11, 2026. The October 8 notes for ",[157,2708,2711],{"href":2709,"rel":2710},"https:\u002F\u002Flmstudio.ai\u002Fchangelog\u002Flmstudio\u002Flmstudio-v0.4.26",[161],"LM Studio 0.4.26 Build 4"," add Jev-compatible ",[221,2714,1377],{}," and OpenAI-compatible ",[221,2717,2718],{},"\u002Fv1\u002Fdecisions","; the ",[157,2721,2724],{"href":2722,"rel":2723},"https:\u002F\u002Flmstudio.ai\u002Fdownload",[161],"regular download page"," offers 0.4.26. This adds a local-server comparison path, not local open weights for OpenAI's cloud model or evidence of equal quality and latency. The ",[157,2727,2730],{"href":2728,"rel":2729},"https:\u002F\u002Flmstudio.ai\u002Fdocs\u002Fapp\u002Fsystem-requirements",[161],"general requirements"," cover Apple Silicon \u002F macOS 14+, Windows x64 with AVX2 or ARM, and Linux x64 \u002F ARM64 on Ubuntu 20.04+. Match the app, engine, and decision model; the exact supported combinations, images \u002F audio, refusals, streaming, and concurrency remain unverified. Build 2's engine 2.50.0 \u002F upstream b11337 does not establish Build 4's installed configuration.",[28,2733,2734,2735,2740],{},"For one allowed intent, pin the app, engine, model, and inputs, then test rejection, oversized input, timeouts, and stale-result disposal. We have not run the binaries or measured Japanese accuracy, total RAM \u002F VRAM, p95 \u002F p99, or rendering contention. Existing build-specific llama.cpp records above remain valid; provision of an endpoint does not prove every newer upstream fix or feature is incorporated. Check ",[157,2736,2739],{"href":2737,"rel":2738},"https:\u002F\u002Flmstudio.ai\u002Fapp-terms",[161],"app terms"," separately from model terms; API prototyping does not establish permission to bundle the app with a game.",[149,2742,2744],{"id":2743},"evaluate-d1-3b-as-a-compact-visual-decision-model","Evaluate d1-3B as a compact visual decision model",[28,2746,2747,2748,2753,2754,2759,2760,2765],{},"Checked on October 11, 2026. Liquid AI's ",[157,2749,2752],{"href":2750,"rel":2751},"https:\u002F\u002Fwww.liquid.ai\u002Fblog\u002Fd1-open",[161],"October 7 announcement"," releases d1-3B and d1-omni-600M weights. The ",[157,2755,2758],{"href":2756,"rel":2757},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002Fd1-3B",[161],"d1-3B card"," specifies 3.12B total parameters, text \u002F image input, and 32,768-token context for choices, yes\u002Fno judgments, and ratings, rather than dialogue. ",[157,2761,2764],{"href":2762,"rel":2763},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002Fd1-3B-GGUF\u002Ftree\u002Fmain",[161],"Official GGUF files"," include a 1.67 GB Q4_K_M model, 2.87 GB Q8_0 model, and a separate 583 MB Q8_0 projector. These are file sizes, not required total RAM \u002F VRAM.",[28,2767,2768,2769,2774,2775,2780,2781,2786,2787,2789,2790,2792],{},"Prerelease ",[157,2770,2773],{"href":2771,"rel":2772},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11483",[161],"llama.cpp b11483"," adds 3B support on October 8 at 02:45 UTC (11:45 JST); ",[157,2776,2779],{"href":2777,"rel":2778},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11488",[161],"b11488"," adds omni at 04:16 UTC (13:16 JST). These are runtime release dates, separate from the model launch. Follow the ",[157,2782,2785],{"href":2783,"rel":2784},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002Fd1-3B-GGUF",[161],"GGUF usage example"," with a matching ",[221,2788,2532],{},", exact GGUF, projector for images, and ",[221,2791,1377],{},". The card's 8 ms figure is the developer's RTX 4090 \u002F BF16 \u002F warm \u002F CUDA-graph median over 20 repetitions, not GGUF latency, p95 \u002F p99, or concurrent-game performance.",[28,2794,801,2795,2800,2801,2803,2804,2809],{},[157,2796,2799],{"href":2797,"rel":2798},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11488\u002Ftools\u002Fserver\u002FREADME.md#post-v1systemone-typesafe-compatible-system-one-api",[161],"b11488 API"," does not stream and handles d1 questions independently; do not carry over the Python path's joint-question throughput. Its whole-prompt ",[221,2802,2507],{}," restriction applies to omni, and omni truncates prompts to 16,384 tokens. Reject oversized input in game code before important state is lost, rather than generalizing another runtime's explicit overflow error. ",[157,2805,2808],{"href":2806,"rel":2807},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002Fd1-omni-600M",[161],"d1-omni-600M"," is an experimental 587M checkpoint accepting text plus images or text plus audio, never both media in a single request. With images, state \u002F question text is cut to 896 tokens; audio is cut to 30 seconds and was trained in English. We have not confirmed every omni file size or its individual LICENSE, and defer Japanese-audio adoption.",[28,2811,2812,2813,667,2818,2823],{},"The cards state LFM Open License v1.0. Check the ",[157,2814,2817],{"href":2815,"rel":2816},"https:\u002F\u002Fhuggingface.co\u002FLiquidAI\u002Fd1-3B-GGUF\u002Fblob\u002Fmain\u002FLICENSE",[161],"3B distribution LICENSE",[157,2819,2822],{"href":2820,"rel":2821},"https:\u002F\u002Fwww.liquid.ai\u002Flfm-license",[161],"official license text",", including revenue-based commercial conditions, notices, attribution, and redistribution, separately from the runtime's MIT terms. Start with short Japanese inputs and an English control, no matching choice, option reordering, stale GameState, contradictory images, overflow, and late results after timeout. Japanese accuracy, quantized calibration, cold \u002F warm latency, total memory, p95 \u002F p99, and frame time remain unmeasured; neither model is an adoption recommendation.",[149,2825,2827],{"id":2826},"evaluate-wllama-as-an-in-browser-decision-path","Evaluate wllama as an in-browser decision path",[28,2829,2830,2831,2836,2837,2842,2843,2846,2847,2852,2853,2856],{},"Checked on October 7, 2026. The non-prerelease ",[157,2832,2835],{"href":2833,"rel":2834},"https:\u002F\u002Fgithub.com\u002Fngxson\u002Fwllama\u002Freleases\u002Ftag\u002F3.8.1",[161],"wllama 3.8.1",", published October 2 at 14:20 UTC (23:20 JST), adds a path for running decision models in the browser without a separate local server. Its ",[157,2838,2841],{"href":2839,"rel":2840},"https:\u002F\u002Fgithub.com\u002Fngxson\u002Fwllama\u002Fblob\u002F3.8.1\u002Fsrc\u002Fwllama.ts",[161],"versioned API",", ",[221,2844,2845],{},"createSystemOne",", returns results from state and typed questions. Image input is unsupported, and the ",[157,2848,2851],{"href":2849,"rel":2850},"https:\u002F\u002Fgithub.com\u002Fngxson\u002Fwllama\u002Fblob\u002F3.8.1\u002Fsrc\u002Ftypes\u002Foai-compat.ts",[161],"parameter definition"," has no streaming or ",[221,2854,2855],{},"AbortSignal"," fields. Do not transfer chat-API features or later llama.cpp Clef image support to this path.",[28,2858,801,2859,2864,2865,2870,2871,2876,2877,1387],{},[157,2860,2863],{"href":2861,"rel":2862},"https:\u002F\u002Fgithub.com\u002Fngxson\u002Fwllama\u002Fblob\u002F3.8.1\u002FREADME.md",[161],"same version's README"," describes Wasm SIMD CPU execution, WebGPU, and inference in workers. Multithreading requires COOP \u002F COEP; with a 2 GB per-file limit, splitting files into chunks of 512 MB or less is recommended. The ",[157,2866,2869],{"href":2867,"rel":2868},"https:\u002F\u002Fgithub.com\u002Fngxson\u002Fwllama\u002Fblob\u002F3.8.1\u002Fexamples\u002Fdecision\u002Findex.html",[161],"decision example"," marks Kev-4B and Lev as requiring WebGPU. Its ",[157,2872,2875],{"href":2873,"rel":2874},"https:\u002F\u002Fhuggingface.co\u002Fconvaiinnovations\u002Flaya",[161],"original Laya model"," is the English version; do not assign it another multilingual checkpoint's capabilities or assume Japanese quality. Check model redistribution terms separately from the ",[157,2878,2881],{"href":2879,"rel":2880},"https:\u002F\u002Fgithub.com\u002Fngxson\u002Fwllama\u002Fblob\u002F3.8.1\u002FLICENCE",[161],"SDK's MIT license",[28,2883,2884],{},"For a web-targeted experiment, start with one intent and compare Japanese inputs with an English control. Separately test initial JS \u002F Wasm \u002F GGUF downloads, cache reuse, interrupted downloads, cache deletion, and offline restarts. Fall back in game code on a timeout and discard stale results that arrive later. In-browser execution alone guarantees neither offline operation after download, cancellation, nor coexistence with rendering on the CPU \u002F GPU. We have not measured Japanese accuracy, total memory, p95 \u002F p99 latency, or frame time.",[149,2886,2888],{"id":2887},"webllm-separates-generation-recovery-from-game-state-recovery","WebLLM separates generation recovery from game-state recovery",[28,2890,1539,2891,2896,2897,2902,2903,2908],{},[157,2892,2895],{"href":2893,"rel":2894},"https:\u002F\u002Fgithub.com\u002Fmlc-ai\u002Fweb-llm\u002Freleases\u002Ftag\u002Fv0.2.86",[161],"WebLLM v0.2.86",", published October 11 UTC, adds Gemma 4 E2B text \u002F audio input and fixes interrupted conversations, stream cancellation, and model locks. The resumability implementation was merged into main in ",[157,2898,2901],{"href":2899,"rel":2900},"https:\u002F\u002Fgithub.com\u002Fmlc-ai\u002Fweb-llm\u002Fpull\u002F859",[161],"PR #859"," on September 13 and shipped in v0.2.86 on October 11. The preceding release, ",[157,2904,2907],{"href":2905,"rel":2906},"https:\u002F\u002Fgithub.com\u002Fmlc-ai\u002Fweb-llm\u002Freleases\u002Ftag\u002Fv0.2.85",[161],"v0.2.85",", was published September 8, before that merge. Distinguish integration into main from availability in a published version: resumability is a new release feature in v0.2.86.",[28,2910,801,2911,2916,2917,2922,2923,2926,2927,2932,2933,2938,2939,2944,2945,2950],{},[157,2912,2915],{"href":2913,"rel":2914},"https:\u002F\u002Fgithub.com\u002Fmlc-ai\u002Fweb-llm\u002Fblob\u002Fv0.2.86\u002Fsrc\u002Fconfig.ts#L1023-L1055",[161],"versioned catalog"," pairs MLC weights, manifests, and compiled WebGPU libraries, rather than GGUF. It points to ",[157,2918,2921],{"href":2919,"rel":2920},"https:\u002F\u002Fhuggingface.co\u002Fmlc-ai\u002Fgemma-4-E2B-it-q4f16_1-MLC",[161],"q4f16_1",", which requires ",[221,2924,2925],{},"shader-f16",", and a separate ",[157,2928,2931],{"href":2929,"rel":2930},"https:\u002F\u002Fhuggingface.co\u002Fmlc-ai\u002Fgemma-4-E2B-it-q4f32_1-MLC",[161],"q4f32_1"," that does not. Both catalog entries set context to 4,096. The ",[157,2934,2937],{"href":2935,"rel":2936},"https:\u002F\u002Fgithub.com\u002Fmlc-ai\u002Fbinary-mlc-llm-libs\u002Fblob\u002F00fe7a40e57e5e8eb9fef87526a4bf28ad5846c0\u002Fweb-llm-models\u002Fv0_2_86\u002Fconfigs\u002Fgemma-4-E2B-it-q4f16_1_cs512-webgpu.json",[161],"release build configuration"," sets audio to 16 kHz and at most 480,000 samples, equivalent to 30 seconds; the q4f32_1 snapshot matches. The release-linked ",[157,2940,2943],{"href":2941,"rel":2942},"https:\u002F\u002Fgithub.com\u002Fakaashrp\u002Fmlc-llm\u002Fblob\u002F42fa855891fcb5825bf0911047d7c91e8234abd1\u002Fpython\u002Fmlc_llm\u002Fmodel\u002Fgemma4\u002Fgemma4_loader.py",[161],"compiler loader"," excludes vision weights. Do not infer image support from Gemma's original modalities. ",[157,2946,2949],{"href":2947,"rel":2948},"https:\u002F\u002Fregistry.npmjs.org\u002F@mlc-ai\u002Fweb-llm\u002F0.2.86",[161],"npm metadata"," confirms this package version and its Apache-2.0 declaration, but the individual model LICENSE and total weight size could not be retrieved. Runtime compatibility establishes neither redistribution permission nor total RAM \u002F VRAM requirements.",[28,2952,801,2953,2958],{},[157,2954,2957],{"href":2955,"rel":2956},"https:\u002F\u002Fgithub.com\u002Fmlc-ai\u002Fweb-llm\u002Fblob\u002Fv0.2.86\u002Fdocs\u002Fuser\u002Fresumable_generation.rst",[161],"v0.2.86 recovery contract"," is opt-in, text-only, and single-choice. Images, grammar \u002F JSON \u002F structural-tag constraints, and custom LogitProcessors are rejected; audio support above is not resumable audio support. Same-origin OPFS stores the prompt, tokens, text patches, and RNG state. Recovery can import compatible KV checkpoints or re-prefill and replay saved tokens. Model \u002F tokenizer \u002F weights \u002F configuration fingerprints are not implemented, so an identical model ID does not verify artifact identity.",[28,2960,2961],{},"WebLLM does not encrypt this journal or automatically delete it by TTL. Deleting a session leaves the active runtime's prefix cache separate. Browser storage eviction can lose data; relaxed durability can lose an unflushed suffix, and best-effort persistence can stop saving while generation continues. Close a started stream explicitly; abandoning its iterator does not reliably release locks.",[28,2963,2964],{},"For an NPC experiment, pin the artifacts and test interruption, tab crashes, explicit cancellation, storage failure, and deletion separately with one actor. Recovered model text is not authoritative GameState or permission to repeat an action. Recheck actor \u002F request identity, current state, permissions, expiry, and whether the action already ran; discard stale proposals or use game-side fallback. This is a proposed integration boundary, not a demonstrated WebLLM game deployment. Japanese quality, recovery latency, total memory, and rendering contention remain unmeasured by us.",[149,2966,2968],{"id":2967},"use-openai-decisions-api-as-a-cloud-comparison-path","Use OpenAI Decisions API as a cloud comparison path",[28,2970,2971,2972,2977,2978,2983,2984,2987,2988,2991],{},"Checked on October 7, 2026. OpenAI's ",[157,2973,2976],{"href":2974,"rel":2975},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fchangelog",[161],"October 6 changelog"," announced the Decisions API beta. The ",[157,2979,2982],{"href":2980,"rel":2981},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fdecisions",[161],"official guide"," describes a public beta supporting ",[221,2985,2986],{},"gpt-6-luna",". Send text or images and questions to ",[221,2989,2990],{},"POST \u002Fv1\u002Fdecisions"," to receive typed judgments rather than generated prose. Evaluate it as a hosted API, separately from local inference or downloadable open weights.",[28,2993,801,2994,2999,3000,3003,3004,3007,3008,3010,3011,3014],{},[157,2995,2998],{"href":2996,"rel":2997},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Freference\u002Fresources\u002Fdecisions\u002Fmethods\u002Fcreate",[161],"API specification"," provides ",[221,3001,3002],{},"predicate"," for an estimated truth probability, ",[221,3005,3006],{},"choice"," for selecting from supplied options, and ",[221,3009,2636],{}," for an ordered rubric. A score is the probability-weighted mean of zero-based rubric levels and may be fractional; it is not a contract for generating an arbitrary number or an authoritative GameState fact. Images must be inline base64 data URLs. External image URLs, file IDs, audio, and tool \u002F function calls are unsupported by this endpoint. Individual questions can return ",[221,3012,3013],{},"refusal",", so never assume every answer contains a number or selection.",[28,3016,3017,3018,667,3023,3028],{},"The guide claims approximately 10× faster decisions than Responses API but provides no measurement setup, absolute latency, or p95 \u002F p99 figures. Attribute this comparison to OpenAI rather than converting it into NPC completion latency including network, queues, and validation. At the check date, the base price is US$0.10 per million input tokens, with no cache-read, cache-write, or output-token charges. The ",[157,3019,3022],{"href":3020,"rel":3021},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing",[161],"pricing conditions",[157,3024,3027],{"href":3025,"rel":3026},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fmodels\u002Fgpt-6-luna",[161],"model documentation"," double the input rate for the whole request above 272K input tokens and add 10% for supported regional processing. Do not reuse ordinary Responses API prices; recheck current terms before adoption.",[28,3030,3031,3032,3034,3035,3040],{},"An NPC application is a design proposal here. For example, use ",[221,3033,3006],{}," to select an approved goal or evaluate candidates, while keeping dialogue generation and action execution separate. Send only necessary context and include ",[157,3036,3039],{"href":3037,"rel":3038},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fyour-data",[161],"API data-retention conditions"," in product requirements. Outbound text and images, authentication, spend limits, and connectivity failures also distinguish this path from local execution. Use a rules-based fallback for refusals, timeouts, or network failures, and revalidate GameState, permissions, and expiry when a result arrives. Compare decision quality, p95 \u002F p99, and cost per event using the same candidates and inputs. We have not measured NPC performance with this API.",[23,3042,3044],{"id":3043},"what-pubg-ally-demonstrates","What PUBG Ally demonstrates",[28,3046,3047],{},"KRAFTON's PUBG Ally is a useful example of separating local inference from conventional game AI. NVIDIA's June 2026 article describes the following design:",[45,3049,3050,3053,3056,3059,3062,3065,3068,3071],{},[48,3051,3052],{},"speech recognition, a 2B small language model, and speech synthesis run on device;",[48,3054,3055],{},"inference starts from player speech or a game event;",[48,3057,3058],{},"a behavior tree handles movement, aiming, and immediate combat;",[48,3060,3061],{},"the language model interprets player intent, coordinates, and produces speech;",[48,3063,3064],{},"current game state comes from observation tools;",[48,3066,3067],{},"the scope is limited to one map, one mode, and fixed item categories;",[48,3069,3070],{},"task-specific data is produced with a larger teacher model and distilled into the 2B model; and",[48,3072,3073],{},"the client model is quantized, and NVIDIA reports that the full system can run on GPUs with 8 GB of VRAM.",[28,3075,3076],{},"This is not evidence that any off-the-shelf 2B model is sufficient for NPCs. The result combines a closed game world, task-specific data, distillation, quantization, behavior trees, observation tools, and evaluation with real players. The 8 GB figure is a vendor-reported condition for this example, not a general hardware recommendation for every game or model.",[28,3078,3079,3080,3085],{},"Checked on October 4, 2026. The developer's ",[157,3081,3084],{"href":3082,"rel":3083},"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2609.29837v1",[161],"PUBG Ally paper",", Appendix C, describes non-blocking action dispatch and later completion, failure, or abort events, keeping low-level control in the game. Its RTX 4060-class measurements report about 1.6–2.1 GB for locale-specific 4-bit LM weights plus working KV cache (Table 9), not total game memory. Treat this as evidence for explicit execution feedback and separate memory accounting, not proof of many simultaneous NPCs. We have not reproduced the measurements or established Japanese quality or performance in another game.",[23,3087,3089],{"id":3088},"local-multimodal-llm-turns-the-principles-into-an-implementation","Local Multimodal LLM turns the principles into an implementation",[28,3091,3092,3093,3098],{},"Volley Studios' ",[157,3094,3097],{"href":3095,"rel":3096},"https:\u002F\u002Fgithub.com\u002Fisundahl\u002FLLM_Plugin",[161],"Local Multimodal LLM"," is a beta C++ plugin for Unreal Engine 5.8.1 and Win64, released on August 25, 2026. It processes player speech or text, a local LLM response, and speech synthesis offline. It uses llama.cpp for GGUF inference, bundles CPU and Vulkan runtimes, and distributes a CUDA 12 accelerator separately. It does not require a cloud API or Python runtime during play.",[28,3100,3101],{},"The plugin is useful as an architectural reference because it implements the boundaries described in this article through Blueprint and C++ APIs rather than stopping at a conversation demo.",[2063,3103,3106],{"className":3104,"code":3105,"language":2068,"meta":1905},[2066],"Player Speech \u002F Text\n  → STT (for voice input)\n  → Shared Local LLM\n      └─ Character Sheet \u002F Context \u002F Memory Session per NPC\n  → Text Response \u002F Typed, Allow-listed Tool Call\n  → Validation by Game Code\n  → Game Systems\n  → TTS (for voice output)\n",[221,3107,3105],{"__ignoreMap":1905},[28,3109,3110,3111,1387],{},"One loaded model is shared by multiple character sessions while context, conversational memory, and KV state are separated per NPC. Tool calls are restricted by type and an allow-list; the model is not allowed to execute arbitrary Unreal functions or console commands. Game code validates requests that would change game state before executing them. This is a concrete implementation of ",[221,3112,3113],{},"Shared Model → Per-NPC Context \u002F Memory → Structured Tool Call → Validation → Game System",[28,3115,3116],{},"The starter model pack is about 3.25 GiB including speech input and output. Its documentation lists the following components:",[255,3118,3119,3133],{},[258,3120,3121],{},[261,3122,3123,3126,3129],{},[264,3124,3125],{},"Role",[264,3127,3128],{},"Starter configuration",[264,3130,3132],{"align":3131},"right","Stated size",[280,3134,3135,3150,3161,3172],{},[261,3136,3137,3140,3147],{},[285,3138,3139],{},"LLM",[285,3141,3142,3143,3146],{},"Gemma 4 E2B IT QAT, Unsloth ",[221,3144,3145],{},"UD-Q4_K_XL"," GGUF",[285,3148,3149],{"align":3131},"2.50 GB",[261,3151,3152,3155,3158],{},[285,3153,3154],{},"Speech-to-text",[285,3156,3157],{},"Parakeet Unified English 0.6B INT8, sherpa-onnx export",[285,3159,3160],{"align":3131},"633 MB",[261,3162,3163,3166,3169],{},[285,3164,3165],{},"Text-to-speech",[285,3167,3168],{},"Pocket TTS INT8, sherpa-onnx export",[285,3170,3171],{"align":3131},"194 MB",[261,3173,3174,3177,3180],{},[285,3175,3176],{},"Starter voices",[285,3178,3179],{},"Four Pocket TTS reference voices",[285,3181,3182],{"align":3131},"about 2.8 MiB",[28,3184,3185],{},"The plugin core is about 80.5 MiB, and the optional CUDA 12 accelerator is about 922.1 MiB. The plugin's code and documentation use Apache License 2.0, while models, audio assets, and native runtimes retain their own licenses and notices.",[28,3187,3188],{},"The roughly 3.25 GiB figure is distributed model data, not minimum VRAM, peak inference memory, frame rate while a game is running, or time to first token. Public materials do not provide measurements that can be generalized to co-residency with a rendered game. It is a useful example of packaging a compact voice-conversation stack, but a product evaluation still needs separate CPU, Vulkan, and CUDA measurements for VRAM, CPU Main, GPU Frame, and response time.",[28,3190,3191],{},"The starter configuration also has clear boundaries. The default Gemma manifest disables vision and native audio input to the model; speech is handled through separate STT and TTS components. Image input is a development feature that requires a compatible projector and manifest supplied by the developer. MTP speculative decoding is not yet implemented in the runtime. The provided binaries focus on Win64 and are not a portable solution for other operating systems or Unity.",[149,3193,3195],{"id":3194},"compare-unity-action-boundaries-with-behaviorllm","Compare Unity action boundaries with BehaviorLLM",[28,3197,3198,3199,3204,3205,3210,3211,3213,3214,3217,3218,3223],{},"Checked on October 11, 2026. Unity's non-prerelease ",[157,3200,3203],{"href":3201,"rel":3202},"https:\u002F\u002Fgithub.com\u002Ffaelion\u002FBehaviorLLM\u002Freleases\u002Ftag\u002Fv0.6.0",[161],"BehaviorLLM v0.6.0",", published September 22 at 00:07 UTC (09:07 JST), adds named action arguments, runtime restrictions to an allowed action subset, and argument validation. The ",[157,3206,3209],{"href":3207,"rel":3208},"https:\u002F\u002Fgithub.com\u002Ffaelion\u002FBehaviorLLM\u002Fblob\u002Fv0.6.0\u002Fpackage.json",[161],"package"," targets Unity 6000.0+, a local ",[221,3212,2532],{},", and compatible GGUF; samples additionally need AI Navigation \u002F Input System. Existing string-based handlers must account for the breaking change to ",[221,3215,3216],{},"ActionArguments",". This is an integration candidate, not proof of correct GameState semantics. Test one actor with invalid arguments, stale state, timeouts, and fallback. The ",[157,3219,3222],{"href":3220,"rel":3221},"https:\u002F\u002Fgithub.com\u002Ffaelion\u002FBehaviorLLM\u002Fblob\u002Fv0.6.0\u002FLICENSE.md",[161],"package's MIT license"," does not cover model or asset terms. We have not tested a production build, Japanese quality, long sessions, memory, or concurrent rendering.",[23,3225,3227],{"id":3226},"epoch-forge-demo-makes-a-local-llm-part-of-a-public-demos-requirements","Epoch Forge Demo makes a local LLM part of a public demo's requirements",[28,3229,3230,3235],{},[157,3231,3234],{"href":3232,"rel":3233},"https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F5171320\u002FEpoch_Forge_Demo\u002F",[161],"Epoch Forge Demo"," is a free demo released on Steam on August 31, 2026. According to the developer's Steam description, NPC chat responses are generated by a local LLM that runs alongside the game, with prewritten lines used as well. Responses use personality, past interactions with the player, job, and location. The product description also states that NPCs account for who witnessed events and that information can spread to other NPCs.",[28,3237,3238,3239,3241,3242,3244],{},"The same official Steam page states that the demo was made with Godot Engine, includes Gemma under the Gemma Terms, and includes ",[221,3240,818],{}," under the MIT License. This primary source establishes that a downloadable demo makes local-LLM NPC dialogue a product requirement and uses Gemma with ",[221,3243,818],{},". It does not establish the exact checkpoint name, quantization, file size, runtime packaging, internal call sequence, context management, inter-NPC queue, or game-state validation design.",[28,3246,3247],{},"The developer lists 8 GB of RAM and 2 GB of VRAM as minimum requirements, and 16 GB of RAM with at least 4 GB of VRAM as recommended. It also states that systems without a supported GPU can generate dialogue on the CPU, with a temporary frame-rate drop while a response is generated. This is a concrete example of distributing a local-LLM game for mainstream gaming PCs, but it is not an independent benchmark of model-only VRAM use or stable frame time.",[28,3249,3250,3251,3256,3257,1387],{},"The page for the unreleased full version of ",[157,3252,3255],{"href":3253,"rel":3254},"https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F5062230\u002FEpoch_Forge\u002F",[161],"Epoch Forge"," says that the local LLM will also be used for the global economy, events, NPC dialogue and behavior, and storyteller choices. Those broader functions are not confirmed as implemented in the public demo. What can be established for the demo is the hybrid use of local-LLM NPC chat and prewritten lines, plus the official disclosure that it uses Gemma and ",[221,3258,818],{},[28,3260,3261],{},"Public materials do not provide the model's parameter count or size, time to first token, generation speed, peak inference VRAM, scheduling under simultaneous NPC requests, or long-term memory consistency. Epoch Forge Demo matters not because it proves those problems are solved, but because it makes local-LLM NPC dialogue part of a public demo intended for mainstream PCs.",[23,3263,3265],{"id":3264},"ai-follower-jessica-adds-a-local-cognitive-layer-to-an-existing-game","AI Follower Jessica adds a local cognitive layer to an existing game",[28,3267,234,3268,3273],{},[157,3269,3272],{"href":3270,"rel":3271},"https:\u002F\u002Fwww.nexusmods.com\u002Ffallout4\u002Fmods\u002F108257",[161],"AI Follower Jessica"," is a public Fallout 4 mod released on August 22 and updated to v0.1.12 on September 3. The author describes local dialogue, speech, persistent memory, and autonomous object interactions, with Qwen3-4B-Instruct-2507 Q6_K GGUF and Vulkan llama.cpp as the default. Conventional companion behavior remains underneath. This supports the design interpretation of an added cognitive layer, but does not establish every validation, authorization, timeout, or fallback mechanism required here.",[28,3275,3276],{},"The author's 8 GB VRAM guidance reduces context or texture use, or offloads layers to system RAM. These are configuration suggestions, not our measurements of stable game performance. The author recommends non-thinking mode for replacement Qwen3.5\u002F3.6 models because of latency and possible think-block leakage into dialogue, speech, or actions. Evaluate output suitability as well as fluency.",[28,3278,3279],{},"This is a mod, not a commercial-game adoption case. Its asset permissions prohibit use in mods\u002Ffiles sold for money; consult the original permissions separately from the model license. Existing examples retain their own information dates and were not all revalidated in this update.",[23,3281,3283],{"id":3282},"adaptive-neural-companion-makes-inference-readiness-explicit","Adaptive Neural Companion makes inference readiness explicit",[28,3285,3286,3287,3292,3293,3296,3297,3300,3301,3304],{},"The developer's ",[157,3288,3291],{"href":3289,"rel":3290},"https:\u002F\u002Fitch.io\u002Fdevlog\u002F1664565\u002Fv3136r56-major-update-local-qwen-auto-install-full-qwen-conversation-pipeline.amp",[161],"September 15 update"," for Adaptive Neural Companion describes a downloadable Windows 3D companion that prepares Ollama, fetches ",[221,3294,3295],{},"qwen2.5:7b-instruct"," if missing, and tests real inference before allowing ",[221,3298,3299],{},"QWEN_READY"," and launching the 3D environment. Missing or invalid model replies are rejected, and unavailable inference is reported as ",[221,3302,3303],{},"QWEN_UNAVAILABLE",". Initial setup requires downloads; local inference does not mean an offline first launch.",[28,3306,3307],{},"The developer assigns memory and conversation to the Qwen pipeline while retaining deterministic control of game authority, battle state, and slash commands in the host. This is useful distribution and startup guidance, not an independently reproduced performance result or an audit of its implementation. The update does not establish minimum VRAM, frame time, or language quality; do not derive a gaming-GPU recommendation from model size alone.",[28,3309,3310],{},"Rejecting canned dialogue presented as a model response is separate from keeping gameplay alive through a fallback. For an integration based on this article, explicitly identify unavailable inference while conventional AI continues, and test interrupted downloads, inference timeouts, and recovery. These are our design requirements, not claims that the companion implements all of them.",[23,3312,3314],{"id":3313},"scapegoat-and-cometforge-npc-reach-early-access","Scapegoat and Cometforge NPC reach Early Access",[28,3316,166,3317,3322],{},[157,3318,3321],{"href":3319,"rel":3320},"https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F4895860\u002FScapegoat\u002F",[161],"Scapegoat"," is an Unreal Engine mystery game released as Free To Play in Early Access on September 29, 2026. According to its developer's Steam description, the single-player game includes six suspect NPCs. Humans define the characters, crime, evidence, and story, while the LLM generates conversations at runtime. The default is a bundled on-device model, with options to use the player's own local model or a cloud model. Speech recognition also runs locally.",[28,3324,3325],{},"The LLM does not generate the crime or the game rules themselves. It improvises conversation within a human-authored murder, evidence set, personalities, and secrets, separating deterministic game structure from generated content. The public Early Access build can now be evaluated, although we have not installed or tested it. Steam states that multiplayer does not use AI.",[28,3327,3328],{},"The developer lists Windows 10 \u002F 11 64-bit, 8 GB RAM, a DX12 GPU with 4 GB VRAM, and 5 GB storage as minimum requirements. It recommends 6 GB VRAM and describes at least 6 GB as appropriate for the on-device NPC. Example recommended GPUs are the RTX 2060 and RX 5700. These are Steam product requirements, not a published benchmark of model-only VRAM, frame time, time to first token, or long-session stability.",[28,3330,3331,3336,3337,3339,3340,3342,3343,1387],{},[157,3332,3335],{"href":3333,"rel":3334},"https:\u002F\u002Ftntholley.com\u002Fcometforge-npc-documentation\u002F",[161],"Cometforge NPC",", presented as the foundation for Scapegoat, is a plugin for Unreal Engine 5.7 and Win64. Its on-device mode bundles Ministral 3 3B Instruct Q4_K_M as an approximately 2 GB GGUF and runs it through embedded ",[221,3338,818],{}," and Vulkan. The model can be replaced with another ",[221,3341,818],{},"-compatible GGUF, while BYOM mode can connect to an OpenAI-compatible local server such as LM Studio or ",[221,3344,2532],{},[28,3346,3347],{},"The key design is to share one model across the cast while separating memory by NPC. Cometforge describes working, episodic, semantic, and procedural memory; salience; decay; consolidation; and persistence to disk. Its documentation states that storage, retrieval, and injection of memory into each turn are deterministic system operations, and that autonomous tool choice is not guaranteed for small models.",[28,3349,3350,3351,3354],{},"This is a concrete example of the ",[221,3352,3353],{},"Shared Local LLM → Per-NPC Context \u002F Memory → Deterministic Game Logic"," boundary. Public information does not establish that Scapegoat's current build uses the exact Ministral 3 3B Q4_K_M checkpoint from Cometforge's default on-device configuration. It establishes that Cometforge presents Scapegoat as a real-game example and that the plugin's default on-device configuration uses Ministral 3 3B; the two checkpoints should not be assumed to be identical.",[23,3356,3358],{"id":3357},"gamescom-2026-made-hybrid-architectures-more-concrete","gamescom 2026 made hybrid architectures more concrete",[28,3360,3361],{},"At gamescom dev 2026, Tencent presented a dual-brain FPS agent combining an LLM with reinforcement learning. The LLM handles semantic understanding, tactics, and high-level player commands, while RL handles real-time decisions and controls. This resembles the separation between a cognitive layer and reflexive execution described in this article.",[28,3363,3364,3365,3369],{},"NVIDIA also announced that ",[3366,3367,3368],"em",{},"Aniimo"," is expected to add NVIDIA ACE support in early 2027 and run a fine-tuned Nemotron SLM on the player's GPU. The SLM interprets intent from natural language or speech and calls behavior APIs exposed by the game.",[28,3371,3372],{},"The two examples reinforce this boundary:",[255,3374,3375,3385],{},[258,3376,3377],{},[261,3378,3379,3382],{},[264,3380,3381],{},"Role of AI",[264,3383,3384],{},"Role retained by the game",[280,3386,3387,3395,3403,3411],{},[261,3388,3389,3392],{},[285,3390,3391],{},"Understand the meaning of a situation",[285,3393,3394],{},"Maintain authoritative game state",[261,3396,3397,3400],{},[285,3398,3399],{},"Generate high-level goals or intents",[285,3401,3402],{},"Validate type, range, and current-state constraints",[261,3404,3405,3408],{},[285,3406,3407],{},"Interpret natural-language commands",[285,3409,3410],{},"Execute low-latency movement, combat, and animation",[261,3412,3413,3416],{},[285,3414,3415],{},"Propose candidate actions",[285,3417,3418],{},"Decide whether execution is allowed and its result",[28,3420,3421,3422,3425],{},"Tencent's FPS agent was a conference demo, and Aniimo is a planned integration. They are not evidence for production latency, error rates, concurrent actor counts, or load while sharing a GPU. ",[157,3423,3424],{"href":1600},"The state of game AI at gamescom 2026"," separately describes their maturity and other AI use cases.",[23,3427,3429],{"id":3428},"define-evaluation-metrics-before-model-size","Define evaluation metrics before model size",[28,3431,3432,3433,3438],{},"Small models are promising for VRAM and latency, but parameter count alone cannot decide adoption. Google's ",[157,3434,3437],{"href":3435,"rel":3436},"https:\u002F\u002Fai.google.dev\u002Fgemma\u002Fdocs\u002Ffunctiongemma",[161],"FunctionGemma"," is a 270M model specialized for function calling, and its documentation targets users with defined APIs who will fine-tune it for a specific task. Being small is not the same as producing suitable NPC dialogue in the required language without additional training.",[149,3440,3442],{"id":3441},"lfm25-26b-is-an-evaluation-candidate-not-evidence-for-adoption","LFM2.5-2.6B is an evaluation candidate, not evidence for adoption",[28,3444,793,3445,3448,3449,3452],{},[157,3446,358],{"href":796,"rel":3447},[161]," targets tool use and multi-step tasks. Its official QAD Q4_0 file is about 1.59 GB, making it a concrete small candidate for a ",[221,3450,3451],{},"Local Model"," provider. It also fits the boundary in this article: propose an intent or tool call, validate it, then hand it to a behavior tree or GOAP.",[28,3454,3455,3456,3459],{},"QAD is a way to recover quality that would otherwise be lost through 4-bit quantization, while ",[157,3457,814],{"href":812,"rel":3458},[161]," uses an assistant model to accelerate generation. Neither guarantees that a proposed intent is correct for the current game state or that NPC language, personality, and long-term memory will be good. The official DSpark result used an FP16 GGUF on an M4 Max; it is not a measurement of QAD Q4_0 on Windows while sharing hardware with a rendered game.",[28,3461,3462,3465],{},[157,3463,830],{"href":828,"rel":3464},[161]," added assistant-drafter support for DSpark, DFlash, and MTP with llama.cpp engine 2.29.1 or later. This makes it easier to prototype LFM2.5-2.6B with DSpark from LM Studio's GUI or local server. It does not mean bundling LM Studio with a game, and the published 2.27-times average speedup comes from a different M4 Max configuration. Depending on assistant-model acceptance and hardware, the combination may instead be slower.",[28,3467,3468,3469,3473],{},"An evaluation should compare the intent success rate of QAD Q4_0 with regular Q4_0. Treat the practical quality and speed comparison with Q4_K_M as a separate experiment, and compare p95 and p99 response times with and without DSpark. Do not infer co-residency from weight size alone; measure VRAM, CPU Main, GPU Frame, and queueing while the game runs. LFM Open License v1.0 has commercial terms based on annual revenue, so review the ",[157,3470,3472],{"href":840,"rel":3471},[161],"official license explanation"," before product use.",[149,3475,3477],{"id":3476},"k2-horizon-is-an-additional-evaluation-candidate","K2 Horizon is an additional evaluation candidate",[28,3479,3480,3481,667,3484,3487,3488,1387],{},"As checked on September 6, 2026, ",[157,3482,1886],{"href":664,"rel":3483},[161],[157,3485,672],{"href":670,"rel":3486},[161]," are additional candidates. Agent benchmarks do not establish NPC suitability. Compare Japanese dialogue, persona consistency, intent accuracy, reasoning effort, completion latency, and game co-residency against existing candidates. Model and runtime details are in the ",[157,3489,3490],{"href":1988},"local LLM overview",[149,3492,3494],{"id":3493},"spark-x25-and-memory-saving-methods-need-separate-npc-tests","Spark-X2.5 and memory-saving methods need separate NPC tests",[28,3496,3497,3500],{},[157,3498,307],{"href":643,"rel":3499},[161]," is another compact Agent candidate as of September 18, 2026. Its developer evaluations use thinking mode. Tool Calling scores alone do not establish Japanese dialogue, persona consistency, correct intent selection, or low latency. Compare with existing candidates under the same game state, schema, context, and output budget, recording reasoning settings and total response time.",[28,3502,3503,3504,3507],{},"Bonsai 2's low-bit weights and Edge0's SSD expert streaming are covered in the ",[157,3505,3506],{"href":1988},"local-LLM article",". Lower weight size or active memory does not establish co-residency with a rendered game. Measure queueing under concurrent NPC requests and frame-time impact; for streaming, include storage contention and cold\u002Fwarm cache behavior. These are evaluation directions, not confirmed game integrations.",[149,3509,3511],{"id":3510},"shared-evaluation-metrics","Shared evaluation metrics",[28,3513,3514],{},"Compare candidates with the same scenarios, schema, and game state. Record at least the following:",[255,3516,3517,3527],{},[258,3518,3519],{},[261,3520,3521,3524],{},[264,3522,3523],{},"Area",[264,3525,3526],{},"Example metrics",[280,3528,3529,3537,3545,3553,3561,3569,3577,3585],{},[261,3530,3531,3534],{},[285,3532,3533],{},"Dialogue quality",[285,3535,3536],{},"Natural language, persona consistency, verbosity, prohibited text",[261,3538,3539,3542],{},[285,3540,3541],{},"Intent",[285,3543,3544],{},"Intent success rate, target accuracy, refusal rate, invalid-request rate",[261,3546,3547,3550],{},[285,3548,3549],{},"Output suitability",[285,3551,3552],{},"Think blocks or unexpected text entering dialogue, speech, or actions",[261,3554,3555,3558],{},[285,3556,3557],{},"Grounding",[285,3559,3560],{},"Agreement with observations, stale-state references, unsupported assumptions",[261,3562,3563,3566],{},[285,3564,3565],{},"Latency",[285,3567,3568],{},"Time to first token, completion time including reasoning, and queue p50, p95, and p99",[261,3570,3571,3574],{},[285,3572,3573],{},"Game performance",[285,3575,3576],{},"CPU Main, GPU Frame, VRAM, reserved memory, and frame spikes",[261,3578,3579,3582],{},[285,3580,3581],{},"Operations",[285,3583,3584],{},"Offline behavior, timeout, crash recovery, logging, reproducibility",[261,3586,3587,3590],{},[285,3588,3589],{},"Distribution",[285,3591,3592],{},"Model and runtime licenses, build size, supported GPUs and operating systems",[28,3594,3595,3596,3599],{},"Cloud APIs introduce network latency, usage cost, connection failure, and questions about transmitted data. Local inference introduces VRAM contention, model distribution, initial loading, hardware variability, and update management. The relevant comparison is not the ChatGPT application, but cloud APIs such as the ",[157,3597,1851],{"href":1215,"rel":3598},[161]," versus models bundled with the game or run in a local process.",[23,3601,3603],{"id":3602},"a-shared-model-does-not-remove-per-npc-costs","A shared model does not remove per-NPC costs",[28,3605,3606],{},"The model weights do not need to be loaded separately for every NPC; one model can be shared while requests enter a queue. Sharing the model does not remove these costs:",[45,3608,3609,3612,3615,3618,3621,3624],{},[48,3610,3611],{},"building context for each NPC or actor;",[48,3613,3614],{},"loading conversation history or memory;",[48,3616,3617],{},"retaining or recomputing KV cache;",[48,3619,3620],{},"waiting in the queue;",[48,3622,3623],{},"inference time for input and output tokens; and",[48,3625,3626],{},"discarding and reissuing responses that become stale.",[28,3628,3629],{},"Evaluate “one model can be shared” separately from “many NPCs can think simultaneously at low cost.” Define maximum concurrent requests, priority, cancellation rules, and per-actor rate limits, and include queue wait in response-time measurements.",[28,3631,3632,3633,3638,3639,3644,3645,3648,3649,3654],{},"Checked on October 6, 2026. Configurations that save and reuse KV \u002F session files also need restoration compatibility tests when changing runtime versions. ",[157,3634,3637],{"href":3635,"rel":3636},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F28498",[161],"llama.cpp PR #28498",", merged on October 5, is included in that day's prerelease ",[157,3640,3643],{"href":3641,"rel":3642},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11411",[161],"b11411"," and non-prerelease ",[157,3646,2491],{"href":2489,"rel":3647},[161],". It saves KV cache rotation settings and rejects restoration when they differ; the author states that previously saved caches become incompatible. The ",[157,3650,3653],{"href":3651,"rel":3652},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11411\u002Finclude\u002Fllama.h",[161],"saved-state formats"," also changed from Session 10 to 11 and Sequence 3 to 4.",[28,3656,3657],{},"Only when using this persistence mechanism, pin the GGUF, KV types, rotation settings, and runtime, then test whether a rejected old cache or settings mismatch can be rebuilt from authoritative conversation history to resume safely. Do not keep the old cache as the only persistent data. This compatibility issue is separate from natural-language long-term memory or game save data in general. We have not verified adoption by existing SDKs, restoration time, or concurrent-game performance.",[149,3659,3661],{"id":3660},"check-checkpoint-reuse-and-recovery-after-restoring-a-slot","Check checkpoint reuse and recovery after restoring a slot",[28,3663,1358,3664,3669,3670,3673,3674,3679],{},[157,3665,3668],{"href":3666,"rel":3667},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F26004",[161],"llama.cpp PR #26004",", merged October 8, preserves context checkpoints across slot save \u002F restore for SWA \u002F hybrid models, avoiding full reprocessing of a shared prefix after checkpoint loss. The prerelease ",[157,3671,1034],{"href":1032,"rel":3672},[161],", published October 8 at 15:27 UTC (October 9 at 00:27 JST), provides executable distributions containing the change; b11506 was checked as a tag \u002F source only. The ",[157,3675,3678],{"href":3676,"rel":3677},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11507\u002Ftools\u002Fserver\u002Fserver-context.cpp",[161],"versioned implementation"," adds checkpoint payloads, size checks for damaged data, full reprocessing when checkpoint restoration fails, draft-cache disposal for incompatible draft KV types, and error reporting for incomplete saves. This does not override the earlier saved-format incompatibility described above.",[28,3681,3682],{},"Only for a matching server, checkpoint-based model, and slot-save configuration with enough disk space, test save→another conversation→restart→restore→prefix divergence, damaged files, and changed draft KV types. Compare reprocessed tokens, restoration time, responses, and fallback; retain authoritative history for reconstruction and GameState \u002F permission checks. Upstream timing reports are not our measurements. Persistent natural-language memory accuracy, Japanese quality, total memory, concurrent-game performance, and adoption by SDKs \u002F Ollama \u002F LM Studio remain unverified.",[149,3684,3686],{"id":3685},"protect-the-context-of-a-busy-slot","Protect the context of a busy slot",[28,3688,1018,3689,3694,3695,3700,3701,3704],{},[157,3690,3693],{"href":3691,"rel":3692},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11552",[161],"llama.cpp b11552",", published October 10 at 19:52 UTC (October 11 at 04:52 JST), includes ",[157,3696,3699],{"href":3697,"rel":3698},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F30295",[161],"PR #30295",". A later request pinned to a busy ",[221,3702,3703],{},"id_slot"," could load a different RAM prompt-cache match before being deferred, changing the context of an ongoing generation. The fix leaves the busy slot untouched while the request waits. This concerns overlapping requests with explicit slot IDs and RAM prompt caching; it is separate from restoring saved slots.",[28,3706,3707,3708,3713],{},"Using a fixed server build and compatible GGUF, send distinguishable actor \u002F request identifiers to the same slot during a long generation. Check response crossings, queue time, and disposal of late results after a timeout. Even valid structured output does not prove that it was generated from the intended request's context; recheck actor identity, current GameState, permissions, and expiry. Published regression tests and users' limited test reports are not our measurements or guarantees for every model. Japanese quality, p95 \u002F p99, total memory, concurrent-game performance, and adoption by Ollama \u002F LM Studio \u002F game SDKs remain unverified. Check ",[157,3709,3712],{"href":3710,"rel":3711},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fblob\u002Fb11552\u002FLICENSE",[161],"runtime MIT terms"," separately from model redistribution terms.",[149,3715,3717],{"id":3716},"nobodywho-v121-distinguishes-history-from-inference-cache","NobodyWho v12.1 distinguishes history from inference cache",[28,3719,1524,3720,3725,3726,3731,3732,3737],{},[157,3721,3724],{"href":3722,"rel":3723},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Freleases\u002Ftag\u002Fnobodywho-godot-v12.1.0",[161],"NobodyWho Godot v12.1.0",", published October 9 at 11:57 UTC (20:57 JST), provides an SDK ZIP. ",[157,3727,3730],{"href":3728,"rel":3729},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fpull\u002F796",[161],"PR #796"," synchronizes the KV cache and its internal record, fixes stale text after replies and images, and distinguishes M-RoPE token counts from position counts. ",[157,3733,3736],{"href":3734,"rel":3735},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fpull\u002F803",[161],"PR #803"," reuses end-of-user-message checkpoints for recurrent \u002F hybrid models and supports rollback after rejected MTP drafts. These are in-memory changes within a chat, not proof of actor isolation, disk-slot recovery, or accurate persistent memory.",[28,3739,801,3740,3745,3746,3751,3752,3756],{},[157,3741,3744],{"href":3742,"rel":3743},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.1.0\u002Fnobodywho\u002Fgodot\u002Fnobodywho.gdextension",[161],"pinned manifest"," requires Godot 4.6 or later and lists Windows x86_64, Linux, macOS, and Android arm64. Supply a compatible GGUF, a projector for images, and a supported model configuration for MTP. The ",[157,3747,3750],{"href":3748,"rel":3749},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.1.0\u002FCHANGELOG.md",[161],"changelog"," adds Android OpenCL \u002F Vulkan paths; it does not announce Web or Godot iOS support. Compare v12.0 and v12.1 with the same model and template across image→text, thinking history, tool results→next turn, and MTP on \u002F off. Inspect cache positions, reprocessed tokens, and output consistency. We have not run the SDK or its regression tests, measured Japanese quality, tail latency, total memory, heat \u002F power, or rendering contention, or verified Android backend selection on devices. Keep GameState validation and check ",[157,3753,2342],{"href":3754,"rel":3755},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.1.0\u002FLICENSE",[161]," separately from model terms.",[23,3758,3760],{"id":3759},"separate-entity-count-from-cognitive-actor-count","Separate entity count from cognitive actor count",[28,3762,3763],{},"A game can render and update thousands of entities without giving each entity an individual personality and conversation. The unit that uses an LLM can be designed as a cognitive actor distinct from the simulated individual.",[28,3765,3766],{},"Candidate units include:",[45,3768,3769,3772,3775,3778,3781],{},[48,3770,3771],{},"a small number of NPCs who speak directly with the player;",[48,3773,3774],{},"a commander representing a unit;",[48,3776,3777],{},"an actor proposing policy for an entire faction;",[48,3779,3780],{},"a collective consciousness or swarm persona; and",[48,3782,3783],{},"a narrator that interprets only important story events.",[28,3785,3786],{},"This is not a recommendation to use a collective consciousness in every game. It is an untested design option for separating entity count from inference actor count when individual conversation does not create game value.",[23,3788,3790],{"id":3789},"validate-memory-before-storage-and-again-at-retrieval","Validate memory before storage and again at retrieval",[28,3792,3793],{},"Natural-language memory should not replace game state. It can support conversational continuity, but it can also preserve incorrect summaries, contradictions, stale information, or excessive personal information.",[28,3795,3796],{},"Store metadata alongside the memory text:",[45,3798,3799,3802,3805,3808,3811,3814,3817],{},[48,3800,3801],{},"the source event or statement;",[48,3803,3804],{},"the target actor;",[48,3806,3807],{},"creation time and expiry;",[48,3809,3810],{},"salience and visibility scope;",[48,3812,3813],{},"whether it is confirmed fact or the NPC's belief or inference;",[48,3815,3816],{},"what it corrects and what corrected it; and",[48,3818,3819],{},"deletion conditions.",[28,3821,3822],{},"Do not persist an LLM-generated memory candidate without validating its allowed type, length, and provenance. At retrieval, prevent a memory that conflicts with current game state from being used as fact.",[28,3824,3825,3826,3831,3832,3835,3836,3839],{},"Checked on October 6, 2026. The ",[157,3827,3830],{"href":3828,"rel":3829},"https:\u002F\u002Fgithub.com\u002Fnobodywho-ooo\u002Fnobodywho\u002Fblob\u002Fnobodywho-godot-v12.0.0\u002Fdocs\u002Fdocs-godot\u002Fchat.md",[161],"NobodyWho Godot v12 chat documentation"," allows configuring the initial and recent turns retained during context shifting and the target size after shrinking; ",[221,3833,3834],{},"context_shift: false"," instead makes a full context an error. Its ",[157,3837,3750],{"href":2315,"rel":3838},[161]," also fixes generated text before a tool call being omitted from history. This manages input history; it guarantees neither persistent-memory accuracy nor authoritative GameState.",[28,3841,3842],{},"Test which turns remain in long conversations, errors and fallback at context overflow, and saving and restoring history containing text, calls, and results around tools. Do not reconstruct omitted history as confirmed fact, and check restored context against current GameState. We have not measured Japanese quality, total memory, latency, or behavior with many NPCs.",[149,3844,3846],{"id":3845},"embeddinggemma-2-is-a-memory-retrieval-candidate","EmbeddingGemma 2 is a memory-retrieval candidate",[28,3848,3849,3850,3855],{},"Checked on October 7, 2026. Google's ",[157,3851,3854],{"href":3852,"rel":3853},"https:\u002F\u002Fblog.google\u002Finnovation-and-ai\u002Ftechnology\u002Fdevelopers-tools\u002Fembeddinggemma-2\u002F",[161],"October 6 announcement of EmbeddingGemma 2"," describes a model that embeds text, images, audio, and video for retrieval. Evaluate it for finding memory candidates to consult, rather than NPC dialogue generation or autonomous actions. Of its 740M total parameters, text-only operation uses a 270M text encoder without loading unneeded vision \u002F audio encoders. This describes modular encoders, not MoE active parameters or a separately distributed 270M checkpoint.",[28,3857,801,3858,3863,3864,3869,3870,3875,3876,3881,3882,3887,3888,3891,3892,3897],{},[157,3859,3862],{"href":3860,"rel":3861},"https:\u002F\u002Fai.google.dev\u002Fgemma\u002Fdocs\u002Fembeddinggemma\u002Fmodel_card_2",[161],"official model card"," specifies a shared 8,192-token context. Do not turn the 262,144 value in the ",[157,3865,3868],{"href":3866,"rel":3867},"https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fembeddinggemma-2\u002Fblob\u002Fmain\u002Fconfig.json",[161],"distribution configuration"," into a usage guarantee. Follow the ",[157,3871,3874],{"href":3872,"rel":3873},"https:\u002F\u002Fai.google.dev\u002Fgemma\u002Fdocs\u002Fembeddinggemma\u002Finference-embeddinggemma-with-sentence-transformers",[161],"official Python guide",", using the necessary encoders and libraries, Sentence Transformers 6.1.0 or later as specified by the ",[157,3877,3880],{"href":3878,"rel":3879},"https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fembeddinggemma-2\u002Fblob\u002Fmain\u002Fconfig_sentence_transformers.json",[161],"distributed dependency requirements",", and BF16 or FP32; FP16 is unsupported. The ",[157,3883,3886],{"href":3884,"rel":3885},"https:\u002F\u002Fhuggingface.co\u002Fgoogle\u002Fembeddinggemma-2\u002Ftree\u002Fmain",[161],"distributed"," ",[221,3889,3890],{},"model.safetensors"," file is 1.49 GB, not total memory including the index, runtime allocations, and game. Check the ",[157,3893,3896],{"href":3894,"rel":3895},"https:\u002F\u002Fai.google.dev\u002Fgemma\u002Fapache_2",[161],"model's full Apache 2.0 license",", along with runtime-library and product-distribution conditions.",[28,3899,1337,3900,3905,3906,3911,3912,3915,3916,3921],{},[157,3901,3904],{"href":3902,"rel":3903},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases\u002Ftag\u002Fb11576",[161],"llama.cpp b11576",", published October 13 at 06:30:50 JST, includes ",[157,3907,3910],{"href":3908,"rel":3909},"https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Fpull\u002F30416",[161],"PR #30416",", padding no-cache attention K\u002FV and masks to multiples of 256. It addresses input-length-dependent CPU fallback and ",[221,3913,3914],{},"-fa auto"," disabling flash attention on CUDA with head size 512, including EmbeddingGemma 2. This is not a new model announcement. ",[157,3917,3920],{"href":3918,"rel":3919},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fblob\u002Fv0.40.4-rc0\u002FLLAMA_CPP_VERSION",[161],"Ollama v0.40.4-rc0 bundles b11521",", which does not establish incorporation of this fix. Pin the build, model, input length, and flash-attention settings; compare the actual backend, embedding agreement, latency, and total memory. We have not measured CUDA behavior ourselves.",[28,3923,3924],{},"A proposed evaluation starts with a small labeled Japanese corpus and text \u002F image retrieval. Test incorrect matches, no match, stale or deleted records, and another actor's private information. Similarity alone establishes neither facts nor access rights: constrain visibility before retrieval, then validate provenance, expiry, and current GameState afterward. Local embedding computation also leaves index storage, correction, and deletion to the application. We have not confirmed NPC deployments or measured Japanese quality, total RAM \u002F VRAM, latency, or concurrent-game load.",[23,3926,3928],{"id":3927},"start-with-one-cognitive-actor","Start with one cognitive actor",[28,3930,3931],{},"Instead of starting with fully autonomous NPCs or many simultaneous conversations, limit the first experiment to one cognitive actor and one intent type. Compare the same request contract behind three providers:",[3933,3934,3935,3938,3941,3944,3947],"ol",{},[48,3936,3937],{},"Use a scripted or fake provider to verify game-side ordering, validation, timeout, and fallback.",[48,3939,3940],{},"Use a cloud API to establish a quality baseline for the target scenarios and request-response design.",[48,3942,3943],{},"Run the same evaluation set with a local model and measure quality, latency, VRAM, and impact on game frames.",[48,3945,3946],{},"Run the game and model together on target hardware, measuring VRAM, CPU Main, GPU Frame, and response time.",[48,3948,3949],{},"Increase actor count and concurrent requests one step at a time only after one cognitive actor works.",[28,3951,3952],{},"The first completion criterion is not richly varied free conversation. It is that the allowed intent is proposed correctly, invalid requests are rejected by validation, timeouts return to conventional AI, and game frame time remains within its budget.",[28,3954,3955],{},"This sequence separates insufficient model capability from defects in the game-side integration. A cloud API need not be the production choice; it can serve only as a quality baseline.",[23,3957,3959],{"id":3958},"current-assessment","Current assessment",[28,3961,3962],{},"The September 18 additions make startup readiness and explicit inference failure more concrete, and add Spark-X2.5 as an evaluation candidate. Neither developer descriptions nor compact weights replace measurements of intent accuracy, queueing, and game frame time.",[28,3964,3965],{},"The September 6 addition of Jessica provides a public mod example of local dialogue, memory, and actions. It strengthens the implementation evidence without establishing performance on the target game and hardware.",[28,3967,3968,3969,3971],{},"As of September 3, 2026, using an LLM for NPC conversation or high-level intent proposals is technically plausible. Small models such as LFM2.5-2.6B and Ministral 3 3B, integration examples such as Local Multimodal LLM and Cometforge NPC, and a public Epoch Forge Demo that officially lists local-LLM NPC dialogue, Gemma, and ",[221,3970,818],{}," all make the implementation path more concrete. By the October 4 check, Scapegoat had released an Early Access build with on-device conversation in its product requirements. Adoption still cannot be decided without measuring the target game on its target hardware.",[28,3973,3974],{},"The stable design principles are:",[45,3976,3977,3980,3983,3986,3989,3992],{},[48,3978,3979],{},"keep game-state authority on the game side;",[48,3981,3982],{},"limit the LLM to a cognitive layer;",[48,3984,3985],{},"perform semantic and authorization checks after structured output validation;",[48,3987,3988],{},"invoke the model from events without stopping conventional AI;",[48,3990,3991],{},"provide timeout and fallback behavior; and",[48,3993,3994],{},"keep providers interchangeable.",[28,3996,3997],{},"The best model, parameter count, runtime, simultaneous actor count, and required VRAM will change over time and between games. Avoid a fixed recommendation based on a model list; reevaluate license, platform support, quality, and performance at implementation time.",[23,3999,1647],{"id":1646},[45,4001,4002,4005,4008,4011,4014,4017,4023,4026,4029,4032],{},[48,4003,4004],{},"This article derives design boundaries from public information; it is not a measurement report from integrating a local model into a game.",[48,4006,4007],{},"PUBG Ally's architecture and numbers apply only to that product and its published conditions.",[48,4009,4010],{},"FunctionGemma is an example of a function-calling model, not evidence for NPC dialogue quality.",[48,4012,4013],{},"Local Multimodal LLM is a beta Unreal Engine implementation and does not guarantee the same result in Unity, other engines, or other platforms.",[48,4015,4016],{},"Epoch Forge Demo is publicly downloadable, but the AI behavior established by public materials is primarily NPC chat. The full game's description of the global economy, events, NPC behavior, and storyteller is not treated as implemented in the demo.",[48,4018,4019,4020,4022],{},"Epoch Forge Demo's official Steam page establishes the use of Gemma and ",[221,4021,818],{},", but no primary source currently establishes the exact checkpoint, quantization, file size, or runtime packaging. Its Steam system requirements are not benchmarks of the LLM alone or inference while sharing hardware with the game.",[48,4024,4025],{},"Scapegoat is in Early Access as of October 4, 2026. Its on-device behavior and system requirements remain developer-published information; we have not tested the game, and this is not a review of a completed product.",[48,4027,4028],{},"The default Cometforge NPC on-device model and the checkpoint used by Scapegoat's current build are not assumed to be identical.",[48,4030,4031],{},"OpenAI API models, features, prices, and availability can change; consult current official documentation during implementation.",[48,4033,4034],{},"If memory stores player speech or preferences, privacy, deletion, purpose, and retention period must be product requirements.",[23,4036,1674],{"id":1673},[45,4038,4039,4043,4050,4057,4063,4069,4075,4080,4085,4090,4096,4102,4108,4115,4122,4128,4134,4140,4146,4152,4157,4163,4168,4175,4181,4185,4190,4195],{},[48,4040,4041],{},[157,4042,1989],{"href":1988},[48,4044,4045],{},[157,4046,4049],{"href":4047,"rel":4048},"https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fhow-krafton-built-pubg-ally-a-co-playable-character-powered-by-nvidia-ace\u002F",[161],"How KRAFTON Built PUBG Ally",[48,4051,4052],{},[157,4053,4056],{"href":4054,"rel":4055},"https:\u002F\u002Fwww.krafton.com\u002Fen\u002Fnews\u002Fpress\u002Fkrafton-reveals-playtest-plans-for-pubg-ally-built-with-nvidia-ace\u002F",[161],"KRAFTON announces PUBG Ally",[48,4058,4059],{},[157,4060,4062],{"href":3435,"rel":4061},[161],"FunctionGemma model overview",[48,4064,4065],{},[157,4066,4068],{"href":796,"rel":4067},[161],"LFM2.5-2.6B model card",[48,4070,4071],{},[157,4072,4074],{"href":804,"rel":4073},[161],"Official LFM2.5-2.6B GGUF files",[48,4076,4077],{},[157,4078,1708],{"href":1706,"rel":4079},[161],[48,4081,4082],{},[157,4083,1714],{"href":812,"rel":4084},[161],[48,4086,4087],{},[157,4088,1733],{"href":828,"rel":4089},[161],[48,4091,4092],{},[157,4093,4095],{"href":1738,"rel":4094},[161],"LM Studio speculative decoding",[48,4097,4098],{},[157,4099,4101],{"href":840,"rel":4100},[161],"LFM Open License explanation",[48,4103,4104],{},[157,4105,4107],{"href":3095,"rel":4106},[161],"Local Multimodal LLM GitHub repository",[48,4109,4110],{},[157,4111,4114],{"href":4112,"rel":4113},"https:\u002F\u002Fgithub.com\u002Fisundahl\u002FLLM_Plugin\u002Fblob\u002Fmain\u002FPlugins\u002FLocalMultimodalLLM\u002FDocs\u002FStarterModels.md",[161],"Local Multimodal LLM starter models",[48,4116,4117],{},[157,4118,4121],{"href":4119,"rel":4120},"https:\u002F\u002Fforums.unrealengine.com\u002Ft\u002Fvolley-studios-local-multimodal-llm\u002F2746330",[161],"Local Multimodal LLM announcement on Epic Developer Community",[48,4123,4124],{},[157,4125,4127],{"href":3232,"rel":4126},[161],"Epoch Forge Demo on Steam",[48,4129,4130],{},[157,4131,4133],{"href":3253,"rel":4132},[161],"Epoch Forge on Steam",[48,4135,4136],{},[157,4137,4139],{"href":3319,"rel":4138},[161],"Scapegoat on Steam",[48,4141,4142],{},[157,4143,3335],{"href":4144,"rel":4145},"https:\u002F\u002Ftntholley.com\u002Fcometforge\u002F",[161],[48,4147,4148],{},[157,4149,4151],{"href":3333,"rel":4150},[161],"Cometforge NPC documentation",[48,4153,4154],{},[157,4155,1857],{"href":1233,"rel":4156},[161],[48,4158,4159],{},[157,4160,4162],{"href":2183,"rel":4161},[161],"OpenAI Structured Outputs",[48,4164,4165],{},[157,4166,1851],{"href":1215,"rel":4167},[161],[48,4169,4170],{},[157,4171,4174],{"href":4172,"rel":4173},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUwMDgzMQ%3D%3D",[161],"Tencent's dual-brain FPS agent",[48,4176,4177],{},[157,4178,4180],{"href":1868,"rel":4179},[161],"NVIDIA's gamescom 2026 announcement",[48,4182,4183],{},[157,4184,3424],{"href":1600},[48,4186,4187],{},[157,4188,3272],{"href":3270,"rel":4189},[161],[48,4191,4192],{},[157,4193,1886],{"href":664,"rel":4194},[161],[48,4196,4197],{},[157,4198,1892],{"href":670,"rel":4199},[161],[4201,4202,4203],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1905,"searchDepth":1906,"depth":1906,"links":4205},[4206,4207,4208,4209,4210,4211,4220,4221,4224,4225,4226,4227,4228,4229,4235,4240,4241,4244,4245,4246,4247],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":2054,"depth":1906,"text":2055},{"id":2177,"depth":1906,"text":2178},{"id":2276,"depth":1906,"text":2277},{"id":2346,"depth":1906,"text":2347,"children":4212},[4213,4214,4215,4216,4217,4218,4219],{"id":2438,"depth":1914,"text":2439},{"id":2640,"depth":1914,"text":2641},{"id":2702,"depth":1914,"text":2703},{"id":2743,"depth":1914,"text":2744},{"id":2826,"depth":1914,"text":2827},{"id":2887,"depth":1914,"text":2888},{"id":2967,"depth":1914,"text":2968},{"id":3043,"depth":1906,"text":3044},{"id":3088,"depth":1906,"text":3089,"children":4222},[4223],{"id":3194,"depth":1914,"text":3195},{"id":3226,"depth":1906,"text":3227},{"id":3264,"depth":1906,"text":3265},{"id":3282,"depth":1906,"text":3283},{"id":3313,"depth":1906,"text":3314},{"id":3357,"depth":1906,"text":3358},{"id":3428,"depth":1906,"text":3429,"children":4230},[4231,4232,4233,4234],{"id":3441,"depth":1914,"text":3442},{"id":3476,"depth":1914,"text":3477},{"id":3493,"depth":1914,"text":3494},{"id":3510,"depth":1914,"text":3511},{"id":3602,"depth":1906,"text":3603,"children":4236},[4237,4238,4239],{"id":3660,"depth":1914,"text":3661},{"id":3685,"depth":1914,"text":3686},{"id":3716,"depth":1914,"text":3717},{"id":3759,"depth":1906,"text":3760},{"id":3789,"depth":1906,"text":3790,"children":4242},[4243],{"id":3845,"depth":1914,"text":3846},{"id":3927,"depth":1906,"text":3928},{"id":3958,"depth":1906,"text":3959},{"id":1646,"depth":1906,"text":1647},{"id":1673,"depth":1906,"text":1674},"A step-by-step approach to integrating a local LLM into game NPCs while separating game state, intent proposals, validation, and execution.",{},"\u002Fknowledge\u002Fgame\u002Fllm\u002Fgame-npc-llm-adoption-boundaries","2026-08-17",{"title":1959,"description":4248},"knowledge\u002Fgame\u002Fllm\u002Fgame-npc-llm-adoption-boundaries",[4255,4256,1950,4257],"game-ai","npc","architecture",[1954,4259,4260],"godot","unreal-engine","QFl-Gh_Dz2lWOKqLuRnv_X4HlpiF_zksb3fq0Qeu4Gk",{"id":4263,"title":4264,"appliesTo":4265,"body":4269,"description":5473,"extension":1941,"meta":5474,"navigation":1943,"path":5475,"publishedAt":327,"seo":5476,"status":1947,"stem":5477,"tags":5478,"technologies":5484,"updatedAt":5487,"__hash__":5488},"knowledge_en\u002Fknowledge\u002Fai\u002Fagents\u002Frepository-centered-agent-harness.md","Designing an Agent Harness That Survives Model Changes",[4266,4267,1971,4268],"RAG decision placement and alternative-model evaluation checked on 2026-10-01","Local decision models and mlx-serve checked on September 29, 2026","Jev decision delegation and document selection based on public information as of 2026-09-19",{"type":20,"value":4270,"toc":5452},[4271,4273,4276,4279,4282,4284,4316,4320,4323,4326,4352,4367,4370,4374,4377,4438,4441,4447,4450,4454,4457,4463,4479,4482,4566,4569,4573,4576,4594,4622,4645,4730,4733,4737,4740,4805,4817,4822,4832,4836,4839,4842,4865,4872,4875,4892,4896,4909,4959,4968,4977,5016,5025,5028,5045,5053,5057,5060,5137,5140,5143,5146,5164,5177,5186,5190,5193,5199,5202,5205,5209,5218,5221,5227,5230,5233,5241,5245,5248,5257,5260,5264,5270,5273,5290,5293,5297,5300,5326,5330,5356,5360],[23,4272,26],{"id":25},[28,4274,4275],{},"When choosing a coding agent, it is easy to focus on the model: GPT, Claude, Qwen, or another option. Development results, however, do not depend on the model alone. They are also shaped by the execution environment that controls repository access, tools, permissions, context, skills, subagents, and how results are presented for review. This article calls that layer the agent harness.",[28,4277,4278],{},"If every harness owns a separate copy of the project's knowledge, changing products means migrating rules and procedures. Keeping durable knowledge in the repository and making harness-specific configuration thin allows the model and the harness to be evaluated separately.",[28,4280,4281],{},"This is not a ranking of products. It describes how to grow an agentic coding environment incrementally while leaving room to evaluate local LLMs later.",[23,4283,43],{"id":42},[45,4285,4286,4289,4292,4295,4301,4304,4307,4310,4313],{},[48,4287,4288],{},"Kev, SemIf, Laya, and Tev1 offer local decision-evaluation options, but their readouts, calibration, licenses, and API coverage need separate checks.",[48,4290,4291],{},"The model performs inference; the harness manages context, tools, permissions, the execution loop, and human review.",[48,4293,4294],{},"Shared knowledge and procedures should have an authoritative version in the repository rather than living only in product-specific memory or settings.",[48,4296,4297,4300],{},[221,4298,4299],{},"AGENTS.md"," should be a lightweight entry point to relevant documents and checks, not a comprehensive manual.",[48,4302,4303],{},"Documentation, skills, scripts, CI, and memory have different responsibilities and should not duplicate the same content everywhere.",[48,4305,4306],{},"What can be shared across tools is primarily semantic content. Skill discovery paths, agent definitions, authentication, and permissions may need thin adapters.",[48,4308,4309],{},"Do not hard-code model routing in advance. Expand it after measuring quality, elapsed time, retries, and the amount of human correction on comparable tasks.",[48,4311,4312],{},"Automatic knowledge capture should create candidates. Human review and deterministic validation should happen before a candidate becomes authoritative repository content.",[48,4314,4315],{},"Skill and document selection can be delegated to a specialized model, while the harness and code retain control of mandatory rules, permissions, and authoritative-source updates.",[23,4317,4319],{"id":4318},"what-is-an-agent-harness","What Is an Agent Harness?",[28,4321,4322],{},"An LLM proposes the next text or tool call from the supplied context. Turning those proposals into development work requires a loop that executes actions and returns the results to the model.",[28,4324,4325],{},"The exact boundary differs by product, but a harness commonly handles:",[45,4327,4328,4331,4334,4337,4340,4343,4346,4349],{},[48,4329,4330],{},"reading and writing repositories and working directories;",[48,4332,4333],{},"terminal, browser, and external-service tools;",[48,4335,4336],{},"instructions and context supplied to the model;",[48,4338,4339],{},"permission for tool execution, file changes, and network access;",[48,4341,4342],{},"task state and context compaction;",[48,4344,4345],{},"skills and reusable workflows;",[48,4347,4348],{},"delegation to subagents and synthesis of their results; and",[48,4350,4351],{},"a review surface for diffs, logs, and test results.",[28,4353,4354,4355,4360,4361,4366],{},"OpenAI describes the ",[157,4356,4359],{"href":4357,"rel":4358},"https:\u002F\u002Fopenai.com\u002Findex\u002Funrolling-the-codex-agent-loop\u002F",[161],"Codex agent loop"," as a harness that connects a model to tools and iterates on their results. Its internal ",[157,4362,4365],{"href":4363,"rel":4364},"https:\u002F\u002Fopenai.com\u002Findex\u002Fharness-engineering\u002F",[161],"harness-engineering report"," also describes making applications, logs, and metrics legible to agents and keeping structured repository knowledge as the system of record.",[28,4368,4369],{},"It is therefore not enough to know that two agents used the same model. Tool availability, context construction, permissions, retry behavior, and completion criteria must also be controlled before model differences can be compared meaningfully.",[23,4371,4373],{"id":4372},"separate-the-environment-into-four-layers","Separate the Environment into Four Layers",[28,4375,4376],{},"An agentic coding environment is easier to change when divided into four layers.",[255,4378,4379,4392],{},[258,4380,4381],{},[261,4382,4383,4386,4389],{},[264,4384,4385],{},"Layer",[264,4387,4388],{},"Primary responsibility",[264,4390,4391],{},"What changes when it is replaced",[280,4393,4394,4405,4416,4427],{},[261,4395,4396,4399,4402],{},[285,4397,4398],{},"Model \u002F provider",[285,4400,4401],{},"Inference, text generation, and proposed tool calls",[285,4403,4404],{},"Decision quality, speed, price, privacy, and context length",[261,4406,4407,4410,4413],{},[285,4408,4409],{},"Agent harness",[285,4411,4412],{},"Agent loop, tools, context, permissions, and delegation",[285,4414,4415],{},"Workflow, available capabilities, safety boundaries, and interaction model",[261,4417,4418,4421,4424],{},[285,4419,4420],{},"Repository contract",[285,4422,4423],{},"Rules, design knowledge, procedures, and task evidence",[285,4425,4426],{},"The development method shared by the team",[261,4428,4429,4432,4435],{},[285,4430,4431],{},"Deterministic enforcement",[285,4433,4434],{},"Tests, linting, builds, CI, and approvals",[285,4436,4437],{},"Acceptance criteria and pass\u002Ffail decisions",[28,4439,4440],{},"This separation preserves the repository contract and verification methods when the harness changes. When only the model changes, keeping the harness and task fixed makes comparison easier.",[2063,4442,4445],{"className":4443,"code":4444,"language":2068,"meta":1905},[2066],"Model \u002F Provider\n       ↓\nAgent Harness\n       ↓\nRepository Contract\n       ↓\nTests \u002F CI \u002F Human Review\n",[221,4446,4444],{"__ignoreMap":1905},[28,4448,4449],{},"No lower layer should trust the layer above it completely. A model may produce a syntactically valid tool call that is not authorized for the current task. Harness permissions and acceptance checks in scripts or CI should remain separate.",[23,4451,4453],{"id":4452},"make-the-repository-authoritative","Make the Repository Authoritative",[28,4455,4456],{},"The repository should contain a map to the information an agent needs, not a giant instruction file that sends everything to the model on every task.",[2063,4458,4461],{"className":4459,"code":4460,"language":2068,"meta":1905},[2066],"Repository\n├─ AGENTS.md          # Short rules and routes to deeper sources\n├─ docs\u002F              # Authoritative design, decisions, and operations\n├─ .agents\u002Fskills\u002F    # Reusable procedures loaded when relevant\n├─ scripts\u002F           # Deterministic repeated operations\n└─ tests \u002F CI         # Machine-checked completion criteria\n",[221,4462,4460],{"__ignoreMap":1905},[28,4464,4465,4469,4470,4472,4473,4475,4476,1387],{},[157,4466,4468],{"href":4363,"rel":4467},[161],"OpenAI's harness-engineering report"," says that a large ",[221,4471,4299],{}," consumed task context, obscured priority, and became stale. Its implementation instead uses ",[221,4474,4299],{}," as a table of contents and stores detailed knowledge under ",[221,4477,4478],{},"docs\u002F",[28,4480,4481],{},"The goal is not to store everything in the repository. The destination should match the information's role.",[255,4483,4484,4497],{},[258,4485,4486],{},[261,4487,4488,4491,4494],{},[264,4489,4490],{},"Location",[264,4492,4493],{},"Suitable content",[264,4495,4496],{},"Content to avoid",[280,4498,4499,4511,4522,4533,4544,4555],{},[261,4500,4501,4505,4508],{},[285,4502,4503],{},[221,4504,4299],{},[285,4506,4507],{},"Always-relevant constraints and routes to deeper documents",[285,4509,4510],{},"Long background explanations, run history, and every product setting",[261,4512,4513,4516,4519],{},[285,4514,4515],{},"Documentation",[285,4517,4518],{},"Design decisions, operating rules, public knowledge, and rationale",[285,4520,4521],{},"Frequently changing temporary state",[261,4523,4524,4527,4530],{},[285,4525,4526],{},"Skill",[285,4528,4529],{},"Reusable procedures loaded for a defined situation",[285,4531,4532],{},"One-off prompts and unverified claims",[261,4534,4535,4538,4541],{},[285,4536,4537],{},"Script \u002F CI",[285,4539,4540],{},"Processes that should return the same decision for the same input",[285,4542,4543],{},"Ambiguous design judgment and final editorial decisions",[261,4545,4546,4549,4552],{},[285,4547,4548],{},"Memory",[285,4550,4551],{},"Personal preferences and compact continuity",[285,4553,4554],{},"The team's only source of truth or an auditable decision",[261,4556,4557,4560,4563],{},[285,4558,4559],{},"Issue \u002F PR",[285,4561,4562],{},"Task purpose, status, review, and links to changes",[285,4564,4565],{},"The only location for long-lived design knowledge",[28,4567,4568],{},"Memory is useful, but it is tied to an agent or profile and can retain incorrect or outdated assumptions. Decisions shared across people and harnesses should be moved into documentation or issues, while memory keeps small preferences or references to the authoritative source.",[23,4570,4572],{"id":4571},"what-is-portable-and-what-needs-an-adapter","What Is Portable and What Needs an Adapter",[28,4574,4575],{},"A repository-centered design does not mean that every harness discovers the same file in the same way.",[28,4577,4578,4583,4584,4587,4588,4593],{},[157,4579,4582],{"href":4580,"rel":4581},"https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fskills",[161],"OpenCode"," discovers ",[221,4585,4586],{},".agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md"," in a project and loads the full skill only when needed. It can configure ",[157,4589,4592],{"href":4590,"rel":4591},"https:\u002F\u002Fopencode.ai\u002Fv2\u002Fdocs\u002Fagents",[161],"a model and tool permissions per agent"," and supports multiple providers, including local models.",[28,4595,4596,4597,667,4602,4607,4608,4613,4614,4617,4618,4621],{},"Qwen Code also supports ",[157,4598,4601],{"href":4599,"rel":4600},"https:\u002F\u002Fgithub.com\u002FQwenLM\u002Fqwen-code\u002Fblob\u002Fmain\u002Fdocs\u002Fusers\u002Ffeatures\u002Fskills.md",[161],"project skills",[157,4603,4606],{"href":4604,"rel":4605},"https:\u002F\u002Fgithub.com\u002FQwenLM\u002Fqwen-code\u002Fblob\u002Fmain\u002Fdocs\u002Fusers\u002Ffeatures\u002Fsub-agents.md",[161],"subagents"," and can connect to Ollama, vLLM, LM Studio, and other local servers through an ",[157,4609,4612],{"href":4610,"rel":4611},"https:\u002F\u002Fqwenlm.github.io\u002Fqwen-code-docs\u002Fen\u002Fusers\u002Fconfiguration\u002Fmodel-providers\u002F",[161],"OpenAI-compatible API",". Its current documented paths, however, are ",[221,4615,4616],{},".qwen\u002Fskills\u002F"," for skills and ",[221,4619,4620],{},".qwen\u002Fagents\u002F"," for subagents.",[28,4623,4624,4629,4630,4632,4633,4638,4639,4644],{},[157,4625,4628],{"href":4626,"rel":4627},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Ffeatures\u002Fcontext-files",[161],"Hermes Agent"," reads ",[221,4631,4299],{}," as project context and loads ",[157,4634,4637],{"href":4635,"rel":4636},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Ffeatures\u002Fskills\u002F",[161],"skills"," on demand. Its default skill directory belongs to a profile, but it can scan external directories and redirect creation to a Git-tracked directory. It can gate ",[157,4640,4643],{"href":4641,"rel":4642},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Ffeatures\u002Fmemory\u002F",[161],"memory and skill writes"," on human approval, but both gates allow free writes by default.",[255,4646,4647,4660],{},[258,4648,4649],{},[261,4650,4651,4654,4657],{},[264,4652,4653],{},"Asset",[264,4655,4656],{},"Portability",[264,4658,4659],{},"Recommended treatment",[280,4661,4662,4673,4685,4699,4710,4720],{},[261,4663,4664,4667,4670],{},[285,4665,4666],{},"Markdown design and operational documents",[285,4668,4669],{},"High",[285,4671,4672],{},"Keep one authoritative repository version",[261,4674,4675,4679,4682],{},[285,4676,4677],{},[221,4678,4299],{},[285,4680,4681],{},"Relatively high",[285,4683,4684],{},"Verify each harness's scope and precedence rules",[261,4686,4687,4693,4696],{},[285,4688,4689,4690],{},"The content of a ",[221,4691,4692],{},"SKILL.md",[285,4694,4695],{},"Medium",[285,4697,4698],{},"Choose a source of truth and add path synchronization or a thin wrapper if needed",[261,4700,4701,4704,4707],{},[285,4702,4703],{},"Agent and subagent definitions",[285,4705,4706],{},"Low",[285,4708,4709],{},"Keep them as minimal harness-specific configuration",[261,4711,4712,4715,4717],{},[285,4713,4714],{},"Provider authentication and permissions",[285,4716,4706],{},[285,4718,4719],{},"Configure them explicitly per harness and keep them out of Git",[261,4721,4722,4725,4727],{},[285,4723,4724],{},"Sessions, memory, and task queues",[285,4726,4706],{},[285,4728,4729],{},"Return durable decisions to documentation, issues, and PRs",[28,4731,4732],{},"The objective is not zero adapters. It is one semantic source with small product-specific connections.",[23,4734,4736],{"id":4735},"compare-products-by-their-emphasis","Compare Products by Their Emphasis",[28,4738,4739],{},"As of September 3, 2026, these harnesses can be positioned by their documented capabilities and the reason for evaluating them. This is not an overall ranking.",[255,4741,4742,4755],{},[258,4743,4744],{},[261,4745,4746,4749,4752],{},[264,4747,4748],{},"Harness",[264,4750,4751],{},"Documented emphasis",[264,4753,4754],{},"Reason to evaluate it",[280,4756,4757,4770,4784,4795],{},[261,4758,4759,4762,4767],{},[285,4760,4761],{},"Codex",[285,4763,4764,4766],{},[221,4765,4299],{},", skills, sandboxing, and tools for long-running tasks",[285,4768,4769],{},"Establish a baseline that includes the current workflow and human review",[261,4771,4772,4774,4781],{},[285,4773,4582],{},[285,4775,4776,4777,4780],{},"Many providers and local models, ",[221,4778,4779],{},".agents\u002Fskills\u002F",", and per-agent models and permissions",[285,4782,4783],{},"Change models while reusing repository assets",[261,4785,4786,4789,4792],{},[285,4787,4788],{},"Qwen Code",[285,4790,4791],{},"Multiple providers, OpenAI-compatible local servers, project skills, and subagents",[285,4793,4794],{},"Compare configurations that include Qwen or another local model",[261,4796,4797,4799,4802],{},[285,4798,4628],{},[285,4800,4801],{},"Persistent memory, skill creation, project context, and long-running agents",[285,4803,4804],{},"Evaluate learning across tasks and the creation of knowledge candidates",[28,4806,4807,4808,4811,4812,667,4814,4816],{},"OpenCode documents support for more than 75 providers and local models, with a ",[221,4809,4810],{},"provider\u002Fmodel"," choice per agent. For a repository that already manages ",[221,4813,4299],{},[221,4815,4779],{},", it is a practical candidate for a second coding harness.",[28,4818,4819,4820,1387],{},"Despite its name, Qwen Code documents protocols for OpenAI, Anthropic, Gemini, and OpenAI-compatible local servers. Migrating existing skills still requires an explicit synchronization policy for ",[221,4821,4616],{},[28,4823,4824,4825,667,4828,4831],{},"Hermes Agent extends beyond short coding tasks with memory, skill updates, profiles, and long-running operation. Before allowing it to modify knowledge automatically, enable ",[221,4826,4827],{},"memory.write_approval",[221,4829,4830],{},"skills.write_approval"," and review every candidate. Its security documentation also describes deny rules as guardrails for accidental behavior rather than a sandbox against an adversarial process. Use an isolated runtime where the threat model requires it.",[23,4833,4835],{"id":4834},"derive-model-routing-from-measurements","Derive Model Routing from Measurements",[28,4837,4838],{},"The ability to change models does not justify immediately fixing rules such as \"research is local\" and \"implementation is cloud.\" Task difficulty and language quality can invalidate those assumptions.",[28,4840,4841],{},"Record comparable results with the same repository, task contract, and completion criteria.",[45,4843,4844,4847,4850,4853,4856,4859,4862],{},[48,4845,4846],{},"percentage of completion criteria satisfied;",[48,4848,4849],{},"volume and severity of human edits;",[48,4851,4852],{},"compliance with rules, allowed paths, and task scope;",[48,4854,4855],{},"retries and reasons for interruption;",[48,4857,4858],{},"elapsed time, token use, and inference cost;",[48,4860,4861],{},"memory, GPU occupancy, and interference with other work for local inference; and",[48,4863,4864],{},"defects discovered during review.",[28,4866,4867,4871],{},[157,4868,4870],{"href":192,"rel":4869},[161],"Perplexity"," reported different results for Portable Computer, Pi, and Hermes while holding Qwen 3.8 27B constant on its own Local Knowledge Work Bench. This first-party, unpublished benchmark does not establish a universal ranking, but it is an example of a harness affecting results while the model remains fixed.",[28,4873,4874],{},"Expand model routing incrementally.",[3933,4876,4877,4880,4883,4886,4889],{},[48,4878,4879],{},"Record a few bounded tasks with the current harness and model as a baseline.",[48,4881,4882],{},"Run the same task category in a second harness and compare permissions and review effort as well as output.",[48,4884,4885],{},"Start local-model evaluation with low-risk formatting, search, or deterministic verification tasks.",[48,4887,4888],{},"Promote only roles with a stable success rate into the default routing policy.",[48,4890,4891],{},"Repeat the evaluation when the model or harness version changes materially.",[23,4893,4895],{"id":4894},"delegate-bounded-judgments-to-a-specialized-model","Delegate Bounded Judgments to a Specialized Model",[28,4897,4898,4899,4902,4903,4908],{},"When the candidate skills or reference documents are already known, their selection can be evaluated as a separate model responsibility. TypeSafe's Jev returns selections and evaluations against a supplied ",[221,4900,4901],{},"state",". Its ",[157,4904,4907],{"href":4905,"rel":4906},"https:\u002F\u002Fdocs.typesafe.ai\u002Fconcepts\u002Fhow-to-build-with-system-one",[161],"documented design approach"," assigns narrow judgments to the model while keeping control flow, deterministic rules, and actual operations in code.",[255,4910,4911,4924],{},[258,4912,4913],{},[261,4914,4915,4918,4921],{},[264,4916,4917],{},"Primitive",[264,4919,4920],{},"Returns",[264,4922,4923],{},"Example harness use",[280,4925,4926,4937,4948],{},[261,4927,4928,4931,4934],{},[285,4929,4930],{},"Choice",[285,4932,4933],{},"A selected option and probability distribution",[285,4935,4936],{},"Suggest a skill or classify a request",[261,4938,4939,4942,4945],{},[285,4940,4941],{},"Score",[285,4943,4944],{},"A rating against defined levels and probability distribution",[285,4946,4947],{},"Evaluate relevance or information completeness",[261,4949,4950,4953,4956],{},[285,4951,4952],{},"Noul",[285,4954,4955],{},"The probability of yes",[285,4957,4958],{},"Check candidate fit or the presence of evidence",[28,4960,4961,4962,4967],{},"These ",[157,4963,4966],{"href":4964,"rel":4965},"https:\u002F\u002Fdocs.typesafe.ai\u002Fintroduction",[161],"typed questions"," are evaluated independently against the same state. They do not pass one answer into the next question as sequential reasoning. Jev does not handle text or code generation; surrounding code and generative LLMs collect context, retrieve documents, explain findings, and implement changes.",[28,4969,4970,4971,4976],{},"TypeSafe's ",[157,4972,4975],{"href":4973,"rel":4974},"https:\u002F\u002Fdocs.typesafe.ai\u002Fcookbooks\u002Fskill_suggestion",[161],"skill suggestion experiment"," illustrates the approach. Two API calls rank all candidates and inspect the top three more closely before suggesting at most one skill. The agent retains its original skill index and its own judgment.",[255,4978,4979,4992],{},[258,4980,4981],{},[261,4982,4983,4986,4989],{},[264,4984,4985],{},"Provider-reported error rate",[264,4987,4988],{},"Agent alone",[264,4990,4991],{},"With a Jev suggestion",[280,4993,4994,5005],{},[261,4995,4996,4999,5002],{},[285,4997,4998],{},"Wrong skill or no skill loaded when one fits",[285,5000,5001],{},"16.8%",[285,5003,5004],{},"7.3%",[261,5006,5007,5010,5013],{},[285,5008,5009],{},"Unnecessary skill loaded when none fits",[285,5011,5012],{},"9.8%",[285,5014,5015],{},"4.0%",[28,5017,5018,5019,5024],{},"This is a provider experiment using Jev 1.12, Claude Haiku 4.5, 182 skills from Hermes, and 488 requests. Some requests were generated, and the measurement covers skill loading in the agent's first response. It does not establish the same improvement for Jev 1.13, Japanese, or Copilot, nor does it prove better end-to-end work quality or token savings. The ",[157,5020,5023],{"href":5021,"rel":5022},"https:\u002F\u002Fgithub.com\u002Ftypesafe-ai\u002Fskills",[161],"official TypeSafe skill"," likewise supplies guidance for designing and implementing API workflows; installing it does not itself replace an existing agent's skill-selection mechanism.",[28,5026,5027],{},"Measure candidate selection, actual loading by the agent, instruction compliance, and the final artifact separately. Include requests with no suitable skill, missing context, or several required skills, and compare total time, cost, and missed skills against the existing selection method. Mandatory rules and authorization checks must remain applicable even when no candidate is selected.",[28,5029,5030,5035,5036,5040,5041,5044],{},[157,5031,5034],{"href":5032,"rel":5033},"https:\u002F\u002Fdocs.typesafe.ai\u002Fconfidence",[161],"Confidence"," is derived from the probability distribution of a Choice or Score answer and should not be treated as accuracy. Tune thresholds on your own data and record the model and question wording. The delivery path confirmed in the ",[157,5037,3027],{"href":5038,"rel":5039},"https:\u002F\u002Fdocs.typesafe.ai\u002Fmodels",[161]," is a cloud API. As of September 19, 2026, the model ID is ",[221,5042,5043],{},"jev-1.13.0",", and the documentation notes lower accuracy outside English. Adding it to a local LLM setup still sends the supplied state externally. Not training on customer data is distinct from not storing or retaining it.",[28,5046,801,5047,5052],{},[157,5048,5051],{"href":5049,"rel":5050},"https:\u002F\u002Fdocs.typesafe.ai\u002Fprimitives",[161],"official multi-question contract"," allows independent judgments over the same state to be batched. If an earlier answer determines which documents to fetch or which options to evaluate next, a separate request is necessary. The full-candidate ranking followed by a top-three reassessment above has a dependency between stages and cannot simply be treated as one call.",[149,5054,5056],{"id":5055},"compare-local-decision-models-by-readout-and-runtime","Compare Local Decision Models by Readout and Runtime",[28,5058,5059],{},"Checked on September 29, 2026. There are more local candidates for the judgment delegation illustrated with Jev. These are independent implementations, not official local editions of TypeSafe's Jev.",[255,5061,5062,5075],{},[258,5063,5064],{},[261,5065,5066,5069,5072],{},[264,5067,5068],{},"Candidate",[264,5070,5071],{},"Decision readout",[264,5073,5074],{},"Runtime and evaluation considerations",[280,5076,5077,5092,5107,5122],{},[261,5078,5079,5086,5089],{},[285,5080,5081],{},[157,5082,5085],{"href":5083,"rel":5084},"https:\u002F\u002Fgithub.com\u002Fjaredpalmer\u002Fkev",[161],"Kev",[285,5087,5088],{},"A trained pointer head on Qwen scores candidates",[285,5090,5091],{},"Dedicated server; CUDA \u002F ROCm, with automatic MLX use on Apple Silicon",[261,5093,5094,5101,5104],{},[285,5095,5096],{},[157,5097,5100],{"href":5098,"rel":5099},"https:\u002F\u002Fgithub.com\u002FTheoLeeCJ\u002FSemIf-OpenJev",[161],"SemIf",[285,5102,5103],{},"Reads option logits from an existing model without generating an answer",[285,5105,5106],{},"Pin backend, quantization, prompt, and probability calibration",[261,5108,5109,5116,5119],{},[285,5110,5111],{},[157,5112,5115],{"href":5113,"rel":5114},"https:\u002F\u002Fhuggingface.co\u002Fconvaiinnovations\u002Flaya-multilingual",[161],"Laya multilingual",[285,5117,5118],{},"A 322M encoder and decision head evaluate choice, score, and yes\u002Fno questions",[285,5120,5121],{},"Small size still requires workload-specific accuracy and calibration checks",[261,5123,5124,5131,5134],{},[285,5125,5126],{},[157,5127,5130],{"href":5128,"rel":5129},"https:\u002F\u002Fhuggingface.co\u002Ftogethercomputer\u002FTev1-4B-experimental",[161],"Tev1-4B-experimental",[285,5132,5133],{},"Generates an option letter through Qwen's standard LM head",[285,5135,5136],{},"An experimental model choosing among 2–24 options, not a non-generative classifier",[28,5138,5139],{},"Kev's MLX path is implemented at the check date. This differs from loading an ordinary chat GGUF. Similar API formats do not establish identical question counts, option limits, context budgets, accuracy, or confidence semantics. Validate your own inputs and error handling when changing providers.",[28,5141,5142],{},"In SemIf's author measurements, the same Qwen3.5-4B model, state, and 21 binary questions on an RTX 3090 took 1.023 seconds with direct logit readout versus 5.332 seconds to generate a JSON array, each the median of three runs. Answers agreed on only 18 of 21 questions, so this does not demonstrate a speedup of semantically identical processing. Measure decision quality separately from speed.",[28,5144,5145],{},"Laya multilingual's model card discloses uncalibrated, overconfident outputs and zero-shot typed-decisions accuracy of 0.342, against 0.318 random and 0.461 majority-class baselines. Multilingual support alone does not establish adequate Japanese skill selection or document evaluation; consider workload-specific evaluation, fine-tuning, and calibration. Tev1 also lacks comprehensive multilingual, prompt-injection, calibration, and out-of-distribution evaluation, and its weight license was still being finalized at the check date. Do not substitute a base-model license for the derived weights' distribution terms.",[28,5147,5148,5153,5154,5156,5157,5159,5160,5163],{},[157,5149,5152],{"href":5150,"rel":5151},"https:\u002F\u002Fgithub.com\u002Fddalcu\u002Fmlx-serve\u002Freleases\u002Ftag\u002Fv26.9.6",[161],"mlx-serve v26.9.6"," adds ",[221,5155,2990],{}," for Laya checkpoints and documents batching concurrent requests. This API should not be treated as identical to Jev's ",[221,5158,1377],{},". A working connection also does not establish sufficient quality for skill selection or game decisions. Alongside the ",[157,5161,5162],{"href":1385},"small game experiment",", compare response time including queues, wrong decisions, and fallback to existing behavior.",[28,5165,5166,5167,5172,5173,5176],{},"An ",[157,5168,5171],{"href":5169,"rel":5170},"https:\u002F\u002Fqiita.com\u002Fmoritalous\u002Fitems\u002F41c9402a5dd9d80fc7a9",[161],"individual implementation using Qwen3-VL-4B"," returns judgments about images from a one-token output and option log probabilities. This is a separate implementation that calls the model multiple times for multiple questions, not image support in Jev itself. Measure initial processing separately from cached processing, recording the model, quantization, runtime, and input reuse conditions. Verify that probabilities are available for every candidate; an option missing from ",[221,5174,5175],{},"top_logprobs"," must not be treated as having zero probability. Image-based document classification or skill suggestion remains an untested application idea.",[28,5178,5179,5180,5185],{},"Evaluate alternatives separately for output validity (parsing, allowed options, probability sums), decision quality against human-defined labels, probability calibration, and time and cost including retries. An ",[157,5181,5184],{"href":5182,"rel":5183},"https:\u002F\u002Fqiita.com\u002Fnasuvitz\u002Fitems\u002F4d27833640ff36b5d8c5",[161],"individual Nova Micro versus Jev comparison"," likewise separates output validation from agreement between models; agreement is not accuracy. Do not interchange generated probability values, token probabilities, and a dedicated decision model's probabilities as if they had identical semantics. Nova Micro is a cloud candidate, separate from local alternatives.",[23,5187,5189],{"id":5188},"return-implementation-experience-to-the-knowledge-base","Return Implementation Experience to the Knowledge Base",[28,5191,5192],{},"When an agent identifies reusable knowledge during a task, it does not need to update the authoritative source immediately. Use a separate review loop.",[2063,5194,5197],{"className":5195,"code":5196,"language":2068,"meta":1905},[2066],"Implementation or research\n   ↓\nRecord a knowledge candidate\n   ↓\nClassify fact, decision, procedure, or temporary state\n   ↓\nDraft documentation, a skill, or a script\n   ↓\nTests, validation, and human review\n   ↓\nUpdate the authoritative repository source\n",[221,5198,5196],{"__ignoreMap":1905},[28,5200,5201],{},"Repeated explanations are candidates for documentation. Repeated multi-step procedures are candidates for skills. Repeated pass\u002Ffail decisions are candidates for scripts or CI. One-off events and unverified inferences do not need to become durable knowledge.",[28,5203,5204],{},"This boundary retains the speed of agent-assisted discovery while reducing incorrect generalization, duplication, and stale knowledge.",[23,5206,5208],{"id":5207},"select-and-reuse-accumulated-knowledge","Select and Reuse Accumulated Knowledge",[28,5210,5211,5212,5217],{},"When reusing saved notes, separate retrieval, semantic evaluation, text extraction, and explanation. TypeSafe's ",[157,5213,5216],{"href":5214,"rel":5215},"https:\u002F\u002Fdocs.typesafe.ai\u002Fcookbooks\u002Fclassifying_rag_passages",[161],"document-classification example"," evaluates retrieved passages for relevance, usable evidence, and contradictions to the question's assumptions, then lets code route the material. Conflicting information is passed to the generative LLM in a separate block.",[28,5219,5220],{},"The following is a possible adaptation for repository notes. It is a proposed architecture, not an official ready-made integration between conversation-history search such as funes and Jev, or a system measured for this article.",[2063,5222,5225],{"className":5223,"code":5224,"language":2068,"meta":1905},[2066],"Current problem and task state\n   ↓\nRetrieve candidate notes\n   ↓\nEvaluate relevance, evidence, and conflicts separately with Jev\n   ↓\nCode selects documents and retrieves text, sources, and status\n   ↓\nA generative LLM explains and investigates applicability to current code\n",[221,5226,5224],{"__ignoreMap":1905},[28,5228,5229],{},"Give notes an ID, affected feature and revision, problem, cause, adopted solution, failed approaches, validation results, status such as adopted, retired, or superseded, and source links to issues or PRs. Code can extract existing fields; a generative LLM can explain findings across several documents. Selection by Jev should not itself persist history into memory or modify the authoritative source.",[28,5231,5232],{},"A previously successful fix is not necessarily correct today. Include the current specification and relevant revision, and preserve failed approaches and contradictions instead of discarding them merely as low-relevance material. Handle explicit retirement status and date comparisons in code. When retrieval finds no suitable note, provide a path back to conversation-history search or the original code.",[28,5234,5235,5240],{},[157,5236,5239],{"href":5237,"rel":5238},"https:\u002F\u002Fdocs.typesafe.ai\u002Fmodel-jaggedness\u002Fjev-1.13",[161],"Known limitations of Jev 1.13"," include numbers and dates, multi-step judgments, states crowded with irrelevant information, and adversarial text in the input. Document selection does not verify factual correctness or guarantee protection against prompt injection. Evaluate missed important documents and preservation of conflicts on real Japanese inputs, then measure incremental value and total cost against existing retrieval and reranking before expanding adoption.",[149,5242,5244],{"id":5243},"evaluate-decision-placement-and-false-blocking","Evaluate Decision Placement and False Blocking",[28,5246,5247],{},"A pre-retrieval judgment asks whether a request belongs within the search source's scope; a post-retrieval, pre-generation judgment asks whether the retrieved material supports an answer. Give the former a scope description and necessary conversation history, and continue retrieval or seek clarification when uncertain. If the latter finds insufficient evidence, broaden retrieval or return to original sources and code. Missing evidence in the retrieved material does not establish that the repository contains no answer. Route contradictory material to investigation and explanation rather than stopping solely because no supporting passage was selected.",[28,5249,5250,5251,5256],{},"In an ",[157,5252,5255],{"href":5253,"rel":5254},"https:\u002F\u002Fqiita.com\u002Fkikuziro\u002Fitems\u002F2be9091b328d8b844640",[161],"individual RAG experiment with Jev 1.13",", answerability classification over 400 fictional chunks and 120 questions reached 99.2% accuracy but falsely blocked 1.7% of answerable questions. This does not guarantee the same quality for Company's skill selection or real Japanese documents. Do not count skipped answerable requests as successful processing savings.",[28,5258,5259],{},"Assuming a constant downstream cost per request, a simple savings condition is: decision cost \u003C fraction of requests legitimately skipped × downstream cost. Include additional retrieval, retry, and validation costs in an actual comparison. Since requests that continue also incur the decision latency, record waiting times separately for answered requests and legitimately skipped requests.",[23,5261,5263],{"id":5262},"what-to-evaluate-first","What to Evaluate First",[28,5265,5266,5267,5269],{},"Add a second harness as a comparison target instead of replacing the existing environment. If the repository already contains ",[221,5268,4299],{}," and skills, OpenCode is a reasonable first candidate because it can test both reuse of those assets and provider switching.",[28,5271,5272],{},"Keep the first evaluation narrow.",[45,5274,5275,5278,5281,5284,5287],{},[48,5276,5277],{},"Use a dedicated branch or worktree, and do not let two harnesses edit the same files concurrently.",[48,5279,5280],{},"Begin with reversible tasks such as read-only research or small documentation changes.",[48,5282,5283],{},"Explicitly restrict Git writes, network access, and credential handling.",[48,5285,5286],{},"Use the current harness as a baseline and compare completion rate and human correction.",[48,5288,5289],{},"Do not compare a new harness and a new local model at the same time; hold one variable constant first.",[28,5291,5292],{},"Evaluate Hermes Agent separately when persistent memory or automatic skill-candidate generation becomes a real requirement. When local Qwen is the priority, either OpenCode or Qwen Code can connect to an OpenAI-compatible local server. Make the adoption decision from comparable task results rather than product names.",[23,5294,5296],{"id":5295},"checklist","Checklist",[28,5298,5299],{},"Before adding an agent harness, confirm that:",[45,5301,5302,5305,5308,5311,5314,5317,5320,5323],{},[48,5303,5304],{},"the authoritative repository source is distinct from harness-specific configuration;",[48,5306,5307],{},"secrets, tokens, and personal memory are excluded from version control;",[48,5309,5310],{},"readable paths and writable paths are defined separately;",[48,5312,5313],{},"generated skills and memory do not become active before human review;",[48,5315,5316],{},"deterministic checks such as tests, linting, and builds are not left to prompts alone;",[48,5318,5319],{},"parallel agents cannot silently claim the same files;",[48,5321,5322],{},"harness, model, version, reasoning effort, and results can be compared; and",[48,5324,5325],{},"failures can be rolled back without leaving credentials or external state behind.",[23,5327,5329],{"id":5328},"limitations","Limitations",[45,5331,5332,5335,5341,5344,5347,5350,5353],{},[48,5333,5334],{},"Harnesses, skill formats, and settings change. Recheck official documentation for the version being adopted.",[48,5336,5337,5338,5340],{},"Similar ",[221,5339,4692],{}," formats do not guarantee identical discovery paths, frontmatter, tools, or permission semantics.",[48,5342,5343],{},"Local execution is not automatically private, inexpensive, or fast. Evaluate external tools, telemetry, update checks, and hardware cost.",[48,5345,5346],{},"Memory and automatic learning reuse errors too. Define approval, provenance, refresh, and deletion procedures first.",[48,5348,5349],{},"A permission dialog or deny rule is not equivalent to operating-system isolation.",[48,5351,5352],{},"Multi-agent execution helps only when work can be separated. Measure coordination, review, and conflict-resolution overhead.",[48,5354,5355],{},"A vendor benchmark is evidence for its model, harness, hardware, and task set, not a promise for another repository.",[23,5357,5359],{"id":5358},"references","References",[45,5361,5362,5368,5374,5380,5386,5393,5399,5405,5411,5417,5423,5429,5436,5442,5446],{},[48,5363,5364],{},[157,5365,5367],{"href":4363,"rel":5366},[161],"OpenAI: Harness engineering",[48,5369,5370],{},[157,5371,5373],{"href":4357,"rel":5372},[161],"OpenAI: Unrolling the Codex agent loop",[48,5375,5376],{},[157,5377,5379],{"href":4590,"rel":5378},[161],"OpenCode: Agents",[48,5381,5382],{},[157,5383,5385],{"href":4580,"rel":5384},[161],"OpenCode: Agent Skills",[48,5387,5388],{},[157,5389,5392],{"href":5390,"rel":5391},"https:\u002F\u002Fdev.opencode.ai\u002Fdocs\u002Fproviders\u002F",[161],"OpenCode: Providers",[48,5394,5395],{},[157,5396,5398],{"href":4610,"rel":5397},[161],"Qwen Code: Model Providers",[48,5400,5401],{},[157,5402,5404],{"href":4599,"rel":5403},[161],"Qwen Code: Skills",[48,5406,5407],{},[157,5408,5410],{"href":4604,"rel":5409},[161],"Qwen Code: Subagents",[48,5412,5413],{},[157,5414,5416],{"href":4626,"rel":5415},[161],"Hermes Agent: Context Files",[48,5418,5419],{},[157,5420,5422],{"href":4635,"rel":5421},[161],"Hermes Agent: Skills System",[48,5424,5425],{},[157,5426,5428],{"href":4641,"rel":5427},[161],"Hermes Agent: Persistent Memory",[48,5430,5431],{},[157,5432,5435],{"href":5433,"rel":5434},"https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Fuser-guide\u002Fsecurity",[161],"Hermes Agent: Security",[48,5437,5438],{},[157,5439,5441],{"href":192,"rel":5440},[161],"Perplexity: A Local-First Agent for Private Knowledge Work",[48,5443,5444],{},[157,5445,6],{"href":1988},[48,5447,5448],{},[157,5449,5451],{"href":5450},"\u002Fen\u002Fknowledge\u002Fweb\u002Fgithub\u002Fgithub-projects-issues-prs-team-coordination","Coordinating Multiple Agents with GitHub Projects, Issues, and Pull Requests",{"title":1905,"searchDepth":1906,"depth":1906,"links":5453},[5454,5455,5456,5457,5458,5459,5460,5461,5462,5465,5466,5469,5470,5471,5472],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":4318,"depth":1906,"text":4319},{"id":4372,"depth":1906,"text":4373},{"id":4452,"depth":1906,"text":4453},{"id":4571,"depth":1906,"text":4572},{"id":4735,"depth":1906,"text":4736},{"id":4834,"depth":1906,"text":4835},{"id":4894,"depth":1906,"text":4895,"children":5463},[5464],{"id":5055,"depth":1914,"text":5056},{"id":5188,"depth":1906,"text":5189},{"id":5207,"depth":1906,"text":5208,"children":5467},[5468],{"id":5243,"depth":1914,"text":5244},{"id":5262,"depth":1906,"text":5263},{"id":5295,"depth":1906,"text":5296},{"id":5328,"depth":1906,"text":5329},{"id":5358,"depth":1906,"text":5359},"Learn how to separate models from agent harnesses, keep knowledge and procedures authoritative in the repository, and evaluate coding agents and local LLMs incrementally.",{},"\u002Fknowledge\u002Fai\u002Fagents\u002Frepository-centered-agent-harness",{"title":4264,"description":5473},"knowledge\u002Fai\u002Fagents\u002Frepository-centered-agent-harness",[5479,5480,5481,5482,5483],"agent-harness","agentic-coding","model-routing","agent-skills","knowledge-management",[5485,5486],"ai-agent","git","2026-10-01","ZtmKOv4EbP9oukMSwv-U4whs8hf-zXrh_Q5T7l-CNx4",{"id":5490,"title":5491,"appliesTo":5492,"body":5496,"description":6337,"extension":1941,"meta":6338,"navigation":1943,"path":6339,"publishedAt":6340,"seo":6341,"status":1947,"stem":6342,"tags":6343,"technologies":6347,"updatedAt":6348,"__hash__":6349},"knowledge_en\u002Fknowledge\u002Fgame\u002Funreal\u002Funreal-mcp-editor-agent-workflow.md","How AI Agents Control the Editor with Unreal MCP in UE 5.8 and UEFN",[5493,5494,5495],"Unreal Engine 5.8","UEFN 42.00 (verified August 20, 2026)","Local-LLM user report checked on September 8, 2026",{"type":20,"value":5497,"toc":6315},[5498,5500,5503,5506,5509,5512,5514,5546,5550,5564,5602,5605,5608,5612,5615,5619,5627,5650,5653,5657,5670,5694,5697,5701,5704,5710,5713,5724,5727,5744,5747,5751,5754,5757,5781,5784,5787,5790,5794,5797,5814,5822,5839,5847,5850,5854,5857,5865,5894,5897,5901,5984,5987,5991,6000,6003,6014,6017,6021,6024,6027,6073,6080,6084,6092,6095,6098,6102,6105,6130,6133,6150,6153,6173,6176,6180,6189,6198,6203,6205,6208,6211,6214,6217,6219,6236,6238],[23,5499,26],{"id":25},[28,5501,5502],{},"Unreal Engine 5.8 introduced Unreal MCP, an Experimental plugin that connects AI agents to Unreal Editor. On August 20, 2026, the same approach expanded to Unreal Editor for Fortnite (UEFN), allowing Codex, Claude Code, Cursor, and other agents to work with Verse, Creative devices, the Verse Scene Graph, and play sessions.",[28,5504,5505],{},"This marks a shift from AI that only suggests code to an official Epic workflow in which an agent can inspect Editor state, modify objects, and check test results. However, the authentication provided by the server and the degree to which toolsets form a permission boundary need to be evaluated separately.",[28,5507,5508],{},"This article uses official Epic, OpenAI, and Unity materials available as of August 21, 2026 to explain the Unreal MCP connection model, the differences between UE 5.8 and UEFN, and practical criteria for using it safely.",[28,5510,5511],{},"On September 8, 2026, a user report about local LLMs was added and the ProgrammaticToolset description was revised. Earlier official-source sections retain their information dates; this update does not revalidate every existing feature.",[23,5513,43],{"id":42},[45,5515,5516,5519,5522,5525,5528,5531,5534,5537,5540,5543],{},[48,5517,5518],{},"Tool-call formatting, authorized execution, evidence-based verification, and stopping are separate evaluation criteria. Local-LLM reports reinforce the need to enforce these boundaries in the harness.",[48,5520,5521],{},"Unreal MCP is an official plugin that lets MCP-compatible AI agents read and modify Unreal Editor state.",[48,5523,5524],{},"Epic lists Codex, Claude Code, and Cursor as example clients and does not restrict the integration to a particular model or vendor.",[48,5526,5527],{},"UE 5.8 can expose a broad Editor surface as tools, including Actors, assets, Blueprints, levels, materials, meshes, and tests.",[48,5529,5530],{},"UEFN provides dedicated toolsets for Verse, Creative devices, the Verse Scene Graph, UMG, and play sessions.",[48,5532,5533],{},"Installing Codex or Claude Code does not connect it to the Editor automatically. The plugin, toolsets, MCP server, and client configuration must all be enabled.",[48,5535,5536],{},"The Unreal MCP server is limited to localhost by default, but it does not include an authentication layer that identifies clients.",[48,5538,5539],{},"The Toolset Registry can limit the operations exposed to an agent, but it is not a system for authorizing users or clients.",[48,5541,5542],{},"Unreal MCP in UE 5.8 is Experimental, and the UEFN version has known issues involving coordinate conversion and Editor stalls.",[48,5544,5545],{},"The difference between Unity and Epic is not whether agents may operate the Editor. Unity emphasizes authorized gateways and a CLI, while Epic emphasizes an in-Editor MCP server and extensible toolsets.",[23,5547,5549],{"id":5548},"from-ue-58-to-uefn","From UE 5.8 to UEFN",[28,5551,5552,5553,667,5558,5563],{},"Epic's ",[157,5554,5557],{"href":5555,"rel":5556},"https:\u002F\u002Fwww.unrealengine.com\u002Fnews\u002Funreal-engine-5-8-is-now-available",[161],"UE 5.8 announcement",[157,5559,5562],{"href":5560,"rel":5561},"https:\u002F\u002Fforums.unrealengine.com\u002Ft\u002Funreal-mcp-is-now-available-in-uefn\u002F2745278",[161],"UEFN announcement"," establish the following sequence.",[255,5565,5566,5576],{},[258,5567,5568],{},[261,5569,5570,5573],{},[264,5571,5572],{},"Date",[264,5574,5575],{},"Event",[280,5577,5578,5586,5594],{},[261,5579,5580,5583],{},[285,5581,5582],{},"June 23, 2026",[285,5584,5585],{},"UE 5.8 was released with the Experimental Unreal MCP plugin for Unreal Editor",[261,5587,5588,5591],{},[285,5589,5590],{},"August 20, 2026",[285,5592,5593],{},"Fortnite 42.00 brought Unreal MCP to UEFN",[261,5595,5596,5599],{},[285,5597,5598],{},"Toward UE6",[285,5600,5601],{},"Epic plans to add more UEFN features while bringing the UE and UEFN development streams together",[28,5603,5604],{},"Under Epic's current roadmap, UE 5.8 is the last planned major UE5 release. Epic plans to continue fixing UE5 while work on UE6 accelerates, and it has indicated that Unreal MCP will use the same Toolset Registry across UE and UEFN as those development streams converge.",[28,5606,5607],{},"However, not every UE 5.8 toolset is available in UEFN. As of August 20, 2026, UEFN provides purpose-built toolsets, with additional coverage planned over time.",[23,5609,5611],{"id":5610},"what-agents-can-do-in-the-editor","What agents can do in the Editor",[28,5613,5614],{},"Unreal MCP embeds an MCP server inside the Editor process and exposes Editor functionality to external clients as typed tools. An agent can work with more than project files: it can access Editor selection, Actors, assets, scenes, and execution results.",[149,5616,5618],{"id":5617},"ue-58","UE 5.8",[28,5620,801,5621,5626],{},[157,5622,5625],{"href":5623,"rel":5624},"https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Funreal-engine\u002Funreal-mcp-in-unreal-editor",[161],"official Unreal MCP documentation"," gives examples including:",[45,5628,5629,5632,5635,5638,5641,5644,5647],{},[48,5630,5631],{},"Inspecting and spawning Actors and modifying their transforms",[48,5633,5634],{},"Configuring lighting",[48,5636,5637],{},"Creating or modifying assets, levels, materials, and meshes",[48,5639,5640],{},"Working with Editor systems including Blueprints",[48,5642,5643],{},"Inspecting Slate widgets",[48,5645,5646],{},"Running automation tests and checking their results",[48,5648,5649],{},"Adding custom toolsets in Python or C++",[28,5651,5652],{},"These operations are not all hard-coded into the MCP server. They come from toolsets registered with the Toolset Registry, so projects and plugins can add their own operations.",[149,5654,5656],{"id":5655},"uefn","UEFN",[28,5658,801,5659,667,5664,5669],{},[157,5660,5663],{"href":5661,"rel":5662},"https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Ffortnite\u002Fuefn-mcp",[161],"official UEFN MCP documentation",[157,5665,5668],{"href":5666,"rel":5667},"https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Ffortnite\u002F42-00-fortnite-ecosystem-updates-and-release-notes",[161],"Fortnite 42.00 release notes"," describe the following UEFN-specific capabilities:",[45,5671,5672,5675,5678,5685,5688,5691],{},[48,5673,5674],{},"Reading, editing, and compiling Verse files",[48,5676,5677],{},"Creating, modifying, and listing Verse Scene Graph entities and components",[48,5679,5680,5681,5684],{},"Browsing and placing Creative devices and editing their ",[221,5682,5683],{},"@editable"," properties",[48,5686,5687],{},"Building UI with UMG",[48,5689,5690],{},"Starting, stopping, and inspecting play sessions",[48,5692,5693],{},"Pushing Verse changes to a running session and inspecting client logs",[28,5695,5696],{},"Verse files, devices, and entities created by an agent remain real project objects that a person can reopen and edit through the Editor, Details panel, and Outliner.",[23,5698,5700],{"id":5699},"mcp-server-and-toolset-registry-architecture","MCP server and Toolset Registry architecture",[28,5702,5703],{},"A typical UE 5.8 connection has the following shape:",[2063,5705,5708],{"className":5706,"code":5707,"language":2068,"meta":1905},[2066],"Codex \u002F Claude Code \u002F Cursor\n  → Streamable HTTP on localhost\n  → Unreal MCP server inside the Editor process\n  → Toolset Registry\n  → Enabled toolsets and tools\n  → Actors, assets, scenes, tests, and other systems\n",[221,5709,5707],{"__ignoreMap":1905},[28,5711,5712],{},"The Unreal MCP plugin handles communication and tool calls, while toolsets provide the actual operations. At startup, the Toolset Registry collects toolsets defined in Python or C++, and the MCP server exposes their tools to external clients.",[28,5714,5715,5716,5719,5720,5723],{},"Enabling the ",[221,5717,5718],{},"All Toolsets"," plugin in UE 5.8 loads the standard toolsets together. Alternatively, individual toolsets can be enabled as needed. Functions must be explicitly marked for MCP exposure through a Python decorator or the C++ ",[221,5721,5722],{},"AICallable"," metadata.",[28,5725,5726],{},"With Tool Search enabled by default, the server does not send every tool schema upfront. Instead, it exposes three meta-tools that let the client discover and invoke toolsets as needed:",[45,5728,5729,5734,5739],{},[48,5730,5731],{},[221,5732,5733],{},"list_toolsets",[48,5735,5736],{},[221,5737,5738],{},"describe_toolset",[48,5740,5741],{},[221,5742,5743],{},"call_tool",[28,5745,5746],{},"This reduces context size; it does not authenticate the client.",[23,5748,5750],{"id":5749},"can-codex-or-claude-code-edit-the-editor-directly","Can Codex or Claude Code edit the Editor directly?",[28,5752,5753],{},"They can after both the Editor and client are configured. Installing an agent by itself is not enough.",[28,5755,5756],{},"UE 5.8 requires at least the following setup:",[3933,5758,5759,5762,5768,5771,5778],{},[48,5760,5761],{},"Enable the Unreal MCP plugin.",[48,5763,5764,5765,5767],{},"Enable ",[221,5766,5718],{}," or the required individual toolsets.",[48,5769,5770],{},"Start the MCP server inside the Editor.",[48,5772,5773,5774,5777],{},"Register an endpoint such as ",[221,5775,5776],{},"http:\u002F\u002F127.0.0.1:8000\u002Fmcp"," with Codex or Claude Code.",[48,5779,5780],{},"Allow the client to run the MCP tools.",[28,5782,5783],{},"UEFN additionally requires Python Editor Scripting and UEFN MCP Toolsets to be enabled in Project Settings.",[28,5785,5786],{},"Epic describes any MCP-compatible agent as a potential client and names Codex, Claude Code, and Cursor as examples. The current official materials do not describe an Epic allowlist that evaluates the agent, model, or MCP client in the way Unity's Authorized Agentic Access does.",[28,5788,5789],{},"This does not mean the MCP server should be exposed to the internet. The UE 5.8 server binds to localhost by default and rejects non-loopback origins. However, it has no authentication layer, so it does not identify and authorize each process on the same computer that can reach the endpoint.",[23,5791,5793],{"id":5792},"how-far-does-a-toolset-go-as-a-permission-boundary","How far does a toolset go as a permission boundary?",[28,5795,5796],{},"Toolsets can limit the capabilities exposed to an agent through code and configuration.",[45,5798,5799,5802,5805,5808,5811],{},[48,5800,5801],{},"Do not enable toolset plugins that are not required",[48,5803,5804],{},"Enable or disable an entire toolset",[48,5806,5807],{},"Apply allow or block filters to tool names",[48,5809,5810],{},"Keep functions that should not be AI-callable out of the tool surface",[48,5812,5813],{},"Separate read-only and mutating toolsets",[28,5815,801,5816,5821],{},[157,5817,5820],{"href":5818,"rel":5819},"https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Funreal-engine\u002FAPI\u002FPlugins\u002FToolsetRegistry\u002FFToolset",[161],"Toolset Registry API"," includes toolset enablement and allow or block filters for tool names. It is therefore possible to reduce the callable operation surface instead of relying on prompts alone.",[28,5823,5824,5825,5828,5829,5834,5835,5838],{},"However, a toolset does not authenticate the connected client. Do not equate ",[221,5826,5827],{},"ProgrammaticToolset.execute_tool_script"," with unrestricted Python: the ",[157,5830,5833],{"href":5831,"rel":5832},"https:\u002F\u002Fforums.unrealengine.com\u002Ft\u002Flocal-llms-i-ve-tested-for-unreal-engine-5-8-epic-mcp\u002F2763362",[161],"user report"," describes restricted imports and no direct Unreal Python, filesystem, or network access. These are reported conditions, not a security audit. Check the installed implementation and every tool reachable through ",[221,5836,5837],{},"execute_tool","; batching calls does not narrow their mutation authority.",[28,5840,5552,5841,5846],{},[157,5842,5845],{"href":5843,"rel":5844},"https:\u002F\u002Fgithub.com\u002FEpicGames\u002Funreal-engine-skills-for-claude-code-plugin#security",[161],"official Claude Code plugin"," also treats an Unreal MCP connection as a highly privileged capability comparable to arbitrary code execution. It recommends creating a source-control recovery point and reviewing the resulting diff.",[28,5848,5849],{},"The Toolset Registry is therefore a boundary for capability exposure, but it should not be treated as a complete security sandbox by itself.",[23,5851,5853],{"id":5852},"the-client-can-impose-additional-controls","The client can impose additional controls",[28,5855,5856],{},"Even when the Editor exposes a tool, the AI client can add execution approvals and tool filters.",[28,5858,801,5859,5864],{},[157,5860,5863],{"href":5861,"rel":5862},"https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fmcp",[161],"official Codex MCP documentation"," provides the following server-level controls:",[45,5866,5867,5873,5879,5885,5891],{},[48,5868,5869,5870],{},"An allow list through ",[221,5871,5872],{},"enabled_tools",[48,5874,5875,5876],{},"A deny list through ",[221,5877,5878],{},"disabled_tools",[48,5880,5881,5884],{},[221,5882,5883],{},"prompt"," to request approval for every tool",[48,5886,5887,5890],{},[221,5888,5889],{},"writes"," to request approval for mutating tools",[48,5892,5893],{},"Per-tool approval modes",[28,5895,5896],{},"Keeping the Epic toolsets minimal and also restricting tools and approvals in the client creates two layers of control. When using Claude Code or another client, review that client's tool-approval settings as well, and do not combine broad Editor access with a mode that bypasses approvals.",[23,5898,5900],{"id":5899},"differences-between-ue-58-and-uefn","Differences between UE 5.8 and UEFN",[255,5902,5903,5914],{},[258,5904,5905],{},[261,5906,5907,5909,5911],{},[264,5908,3523],{},[264,5910,5618],{},[264,5912,5913],{},"UEFN 42.00",[280,5915,5916,5927,5938,5951,5962,5973],{},[261,5917,5918,5921,5924],{},[285,5919,5920],{},"MCP location",[285,5922,5923],{},"Inside Unreal Editor",[285,5925,5926],{},"Inside the UEFN Editor",[261,5928,5929,5932,5935],{},[285,5930,5931],{},"Primary scope",[285,5933,5934],{},"Actors, assets, Blueprints, levels, materials, meshes, tests, and more",[285,5936,5937],{},"Verse, Creative devices, Verse Scene Graph, UMG, and sessions",[261,5939,5940,5943,5948],{},[285,5941,5942],{},"Toolsets",[285,5944,5945,5947],{},[221,5946,5718],{}," or individual plugins",[285,5949,5950],{},"Purpose-built UEFN toolsets",[261,5952,5953,5956,5959],{},[285,5954,5955],{},"Play loop",[285,5957,5958],{},"Editor operations and automation tests",[285,5960,5961],{},"Starting, updating, and inspecting Play-in-Client sessions",[261,5963,5964,5967,5970],{},[285,5965,5966],{},"Coverage",[285,5968,5969],{},"Many standard toolsets",[285,5971,5972],{},"Not yet compatible with every UE 5.8 toolset",[261,5974,5975,5978,5981],{},[285,5976,5977],{},"File constraints",[285,5979,5980],{},"Depends on each toolset's implementation",[285,5982,5983],{},"Verse file sandboxing confines operations to the creator project",[28,5985,5986],{},"In UEFN, “Scene Graph operations” primarily refers to Verse Scene Graph entities and components as of August 20, 2026. It does not mean that every UE 5.8 toolset for Actors and assets has been carried over unchanged.",[23,5988,5990],{"id":5989},"experimental-limitations","Experimental limitations",[28,5992,5993,5994,5999],{},"The UE 5.8 ",[157,5995,5998],{"href":5996,"rel":5997},"https:\u002F\u002Fdev.epicgames.com\u002Fdocumentation\u002Funreal-engine\u002Funreal-engine-5-8-release-notes",[161],"release notes"," classify Unreal MCP as Experimental. The official documentation also notes that features remain incomplete or unavailable and that APIs and data formats may change.",[28,6001,6002],{},"UEFN MCP has the following known issues:",[45,6004,6005,6008,6011],{},[48,6006,6007],{},"Coordinate conversion between the XYZ format used by Python toolsets and UEFN's Left-Up-Forward system can introduce additional errors",[48,6009,6010],{},"MCP tool calls can make the Editor hitch or hang",[48,6012,6013],{},"Not every UE 5.8 toolset is available",[28,6015,6016],{},"The UE 5.8 MCP server also lacks an authentication layer, so it is not suitable for exposure beyond localhost. During the Experimental stage, evaluate reproducible, narrowly scoped operations before granting broad write access to an important production project.",[23,6018,6020],{"id":6019},"how-this-differs-from-unity","How this differs from Unity",[28,6022,6023],{},"Both Unity and Epic are moving toward workflows where an AI agent reads Editor state, changes it, and checks the result through Play Mode or tests. It is not accurate to divide them into “Unity does not allow Editor control” and “only Epic allows it.”",[28,6025,6026],{},"The main differences are the connection path and control model.",[255,6028,6029,6039],{},[258,6030,6031],{},[261,6032,6033,6036],{},[264,6034,6035],{},"Unity",[264,6037,6038],{},"Unreal Engine 5.8 and UEFN",[280,6040,6041,6049,6057,6065],{},[261,6042,6043,6046],{},[285,6044,6045],{},"Requires a Unity-approved gateway and clients under Authorized Agentic Access",[285,6047,6048],{},"Describes any MCP-compatible client as a potential connection",[261,6050,6051,6054],{},[285,6052,6053],{},"Provides Unity CLI, the Pipeline package, an official MCP server, and AI Gateway",[285,6055,6056],{},"Provides an in-Editor MCP server and the Toolset Registry",[261,6058,6059,6062],{},[285,6060,6061],{},"Emphasizes a CLI and token-gated API as the boundary for Editor control",[285,6063,6064],{},"Emphasizes toolsets and plugins as the capability boundary",[261,6066,6067,6070],{},[285,6068,6069],{},"Can execute C# inside the Editor or Player through official paths",[285,6071,6072],{},"Can reach Editor APIs and Python execution through toolsets",[28,6074,6075,6076,1387],{},"Unity's policy and official connection paths are covered in ",[157,6077,6079],{"href":6078},"\u002Fknowledge\u002Fgame\u002Funity\u002Fai-agent-policy-and-unity-cli","Unity's AI agent policy and the current state of Unity CLI (Japanese)",[23,6081,6083],{"id":6082},"local-llms-an-editor-execution-report","Local LLMs: an Editor execution report",[28,6085,6086,6087,6091],{},"Checked September 8, 2026. ",[157,6088,6090],{"href":5831,"rel":6089},[161],"Jrt0013's September 7 report"," uses Kimi Code, Windows UE5.8, and an M1 Max with 64 GB memory. This is a user's experiment, not Epic's benchmark. Qwen3-30B-A3B-Instruct-2507 Q8_0 on llama.cpp reportedly applied and verified a supplied camera correction in about 33 seconds. Autonomous judgment instead skipped the write and invented verification; Qwen3-Coder-30B-A3B exceeded a read-only request and changed another camera.",[28,6093,6094],{},"After schema guidance was refined, a small task took 12 seconds, two model turns, and one MCP call. A separate script performed eight internal operations including restoration. These are different tasks, not a controlled 33-to-12-second speedup comparison.",[28,6096,6097],{},"The design implication is to separate proposing a change from permission to execute it. A profile can reduce argument mistakes, but it is not an enforcement boundary. Prefer narrowly scoped operations with explicit preconditions and machine-checked postconditions; do not accept a natural-language success report as proof of a scene change.",[23,6099,6101],{"id":6100},"practical-adoption-criteria","Practical adoption criteria",[28,6103,6104],{},"Expand the Unreal MCP operation surface in stages:",[3933,6106,6107,6110,6115,6118,6121,6124,6127],{},[48,6108,6109],{},"Save the current state in source control and create a recovery point.",[48,6111,6112,6113,1387],{},"Start with only the required, read-oriented toolsets instead of ",[221,6114,5718],{},[48,6116,6117],{},"Configure a tool allow list and approval mode in Codex or another client.",[48,6119,6120],{},"Confirm the connection with read operations such as Actor selection or asset listing.",[48,6122,6123],{},"Try a reversible change such as spawning one Actor or modifying one transform.",[48,6125,6126],{},"Have a person inspect the saved asset, Editor log, and test result.",[48,6128,6129],{},"Add stronger tools such as Blueprint editing or arbitrary Python only after confirming the need.",[28,6131,6132],{},"Enforce the following in the harness rather than only in the prompt:",[45,6134,6135,6138,6141,6144,6147],{},[48,6136,6137],{},"For read-only requests, deny mutating tools, including indirect calls from scripts.",[48,6139,6140],{},"Before editing, record the target identity and original state; validate the target, arguments, and permitted scope.",[48,6142,6143],{},"Read back actual state after execution and compare it with the expected result. Report success only when those checks pass.",[48,6145,6146],{},"Enforce call budgets, deadlines, and terminal states in code. Reject further calls after completion, cancellation, or failure.",[48,6148,6149],{},"For batches, define partial-failure and restoration behavior and verify restoration separately. One MCP call is not automatically an atomic transaction.",[28,6151,6152],{},"For longer autonomous runs, also define:",[45,6154,6155,6158,6161,6164,6167,6170],{},[48,6156,6157],{},"Which levels, folders, and asset types the agent may modify",[48,6159,6160],{},"When deletion, movement, or overwriting requires confirmation",[48,6162,6163],{},"The maximum number of assets one request may change",[48,6165,6166],{},"Timeouts and retry limits when the Editor stalls",[48,6168,6169],{},"Completion criteria in tests or play sessions",[48,6171,6172],{},"How diffs and generated content will be reviewed",[28,6174,6175],{},"Fine-grained toolset design is useful, but the implementation behind each tool also matters. A narrowly named tool can still have a broad impact if it internally allows arbitrary scripts or generic object updates.",[23,6177,6179],{"id":6178},"the-verification-layer-emphasized-at-gamescom-2026","The verification layer emphasized at gamescom 2026",[28,6181,6182,6183,6188],{},"At gamescom dev 2026, ",[157,6184,6187],{"href":6185,"rel":6186},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUwMDgyMw%3D%3D",[161],"Agentic Development in Unreal Engine with JetBrains Rider"," demonstrated agent-supported architecture work, C++ scaffolding, crash investigation, actor placement, and automated testing. Rider 2026.2 exposes Unreal-aware skills for code authoring, live debugging, and test authoring, along with coverage, profiling, refactoring, and code-quality hooks.",[28,6190,6191,6192,6197],{},"At the same conference, ",[157,6193,6196],{"href":6194,"rel":6195},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUxODY2Ng%3D%3D",[161],"Shipping Games in the First Era of Coding Agents"," warned that faster first drafts can increase review load through duplicated logic, symptom-hiding fixes, and synchronization defects that appear later.",[28,6199,6200,6201,1387],{},"Together, the sessions show that adding Editor and IDE tools is not enough. Unreal MCP toolsets, client approvals, and source control need a verification layer that requires builds, tests, static analysis, and acceptable diffs before an agent continues. The other gamescom 2026 cases are compared in ",[157,6202,1601],{"href":1600},[23,6204,1611],{"id":1610},[28,6206,6207],{},"Local models are candidates for bounded Editor tasks, but tool formatting alone does not establish autonomous reliability. Evaluate execution, verification, and stopping independently.",[28,6209,6210],{},"Unreal MCP is a clear example of AI moving from code generation outside the Editor to an agent that can observe Editor state, modify project objects, and verify results. Its arrival in UEFN extends that model beyond C++-centered UE development to Fortnite creation with Verse and Creative devices.",[28,6212,6213],{},"At the same time, Unreal MCP is not currently a product that authenticates each connecting client on the server side. Safety depends on combining localhost-only access, the exposed toolsets, the implementation behind each tool, Codex or Claude Code approvals, source control, and human review.",[28,6215,6216],{},"Epic's direction is less about giving MCP unrestricted control and more about dividing Editor functionality into typed tools whose capabilities can be exposed to an agent as needed. In practice, use the Toolset Registry as one layer of permission design and provide authentication, approval, and recovery in other layers.",[23,6218,1647],{"id":1646},[45,6220,6221,6224,6227,6230,6233],{},[48,6222,6223],{},"Earlier official-source sections retain their stated information dates. The September 7 user report was checked on September 8, 2026; its results were not reproduced by this article, and do not establish performance on other hardware, clients, or UEFN.",[48,6225,6226],{},"Unreal MCP in UE 5.8 is Experimental, and its APIs, toolsets, and client configuration may change.",[48,6228,6229],{},"UEFN coverage and known issues can change with Fortnite releases. Check the latest release notes before adoption.",[48,6231,6232],{},"Localhost-only access does not guarantee that every process on the same computer is trustworthy.",[48,6234,6235],{},"Codex, Claude Code, and other clients use different approval mechanisms. Review both the Editor and client configuration.",[23,6237,1674],{"id":1673},[45,6239,6240,6246,6252,6258,6264,6270,6276,6281,6288,6294,6298,6305,6309],{},[48,6241,6242],{},[157,6243,6245],{"href":5555,"rel":6244},[161],"Unreal Engine 5.8 is now available",[48,6247,6248],{},[157,6249,6251],{"href":5996,"rel":6250},[161],"Unreal Engine 5.8 Release Notes",[48,6253,6254],{},[157,6255,6257],{"href":5623,"rel":6256},[161],"Unreal MCP in Unreal Editor",[48,6259,6260],{},[157,6261,6263],{"href":5560,"rel":6262},[161],"Unreal MCP is now available in UEFN",[48,6265,6266],{},[157,6267,6269],{"href":5661,"rel":6268},[161],"UEFN MCP",[48,6271,6272],{},[157,6273,6275],{"href":5666,"rel":6274},[161],"Fortnite 42.00 Ecosystem Updates and Release Notes",[48,6277,6278],{},[157,6279,5820],{"href":5818,"rel":6280},[161],[48,6282,6283],{},[157,6284,6287],{"href":6285,"rel":6286},"https:\u002F\u002Fgithub.com\u002FEpicGames\u002Funreal-engine-skills-for-claude-code-plugin",[161],"Epic Games Unreal Engine Skills for Claude Code",[48,6289,6290],{},[157,6291,6293],{"href":5861,"rel":6292},[161],"Codex MCP configuration",[48,6295,6296],{},[157,6297,6079],{"href":6078},[48,6299,6300],{},[157,6301,6304],{"href":6302,"rel":6303},"https:\u002F\u002Fblog.jetbrains.com\u002Fdotnet\u002F2026\u002F07\u002F22\u002Frider-2026-2-release\u002F",[161],"Rider 2026.2 release",[48,6306,6307],{},[157,6308,1601],{"href":1600},[48,6310,6311],{},[157,6312,6314],{"href":5831,"rel":6313},[161],"Local LLMs I’ve Tested for Unreal Engine 5.8 + Epic MCP",{"title":1905,"searchDepth":1906,"depth":1906,"links":6316},[6317,6318,6319,6320,6324,6325,6326,6327,6328,6329,6330,6331,6332,6333,6334,6335,6336],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":5548,"depth":1906,"text":5549},{"id":5610,"depth":1906,"text":5611,"children":6321},[6322,6323],{"id":5617,"depth":1914,"text":5618},{"id":5655,"depth":1914,"text":5656},{"id":5699,"depth":1906,"text":5700},{"id":5749,"depth":1906,"text":5750},{"id":5792,"depth":1906,"text":5793},{"id":5852,"depth":1906,"text":5853},{"id":5899,"depth":1906,"text":5900},{"id":5989,"depth":1906,"text":5990},{"id":6019,"depth":1906,"text":6020},{"id":6082,"depth":1906,"text":6083},{"id":6100,"depth":1906,"text":6101},{"id":6178,"depth":1906,"text":6179},{"id":1610,"depth":1906,"text":1611},{"id":1646,"depth":1906,"text":1647},{"id":1673,"depth":1906,"text":1674},"Unreal MCP Editor operations, Toolset Registry, and client controls, with lessons from a local-LLM user report about execution, verification, and stopping.",{},"\u002Fknowledge\u002Fgame\u002Funreal\u002Funreal-mcp-editor-agent-workflow","2026-08-21",{"title":5491,"description":6337},"knowledge\u002Fgame\u002Funreal\u002Funreal-mcp-editor-agent-workflow",[6344,5485,6345,6346],"mcp","editor-automation","toolset",[4260,5655],"2026-09-08","bNG5Azpmz2Zbo5t_cZvEU-7Eq3kTyAjVM8qDQ2oUGAA",{"id":6351,"title":6352,"appliesTo":6353,"body":6357,"description":7229,"extension":1941,"meta":7230,"navigation":1943,"path":7231,"publishedAt":7232,"seo":7233,"status":1947,"stem":7234,"tags":7235,"technologies":7241,"updatedAt":7243,"__hash__":7244},"knowledge_en\u002Fknowledge\u002Fweb\u002Fgithub\u002Fgithub-projects-issues-prs-team-coordination.md","Coordinating Multiple AI Agents with GitHub Projects, Issues, PRs, and a Custom .team Registry",[6354,6355,6356],"GitHub Projects","GitHub Issues","GitHub Pull Requests",{"type":20,"value":6358,"toc":7214},[6359,6361,6371,6374,6377,6384,6386,6433,6437,6440,6514,6523,6527,6530,6571,6574,6580,6599,6603,6606,6685,6695,6699,6702,6709,6915,6925,6928,6932,6935,7003,7010,7014,7022,7028,7032,7035,7049,7052,7056,7059,7082,7086,7089,7137,7140,7142,7172,7174,7211],[23,6360,26],{"id":25},[6362,6363,6364],"blockquote",{},[28,6365,6366,6367,6370],{},"Workflow update (2026-09-05): Company now treats Issues as optional and has retired its shared registry, leases, and ",[221,6368,6369],{},"task:*"," commands. This article records the former design. The procedures and code examples below are not the current Company workflow.",[28,6372,6373],{},"Delegating development work to multiple AI agents introduces conflicts that ordinary task tracking does not handle well. Two agents may edit the same files, an agent may silently take over an expired task, or a pull request from the wrong branch may be linked to an issue.",[28,6375,6376],{},"Building a large custom task manager to solve these problems creates a different risk: GitHub Projects, Issues, Pull Requests, and the custom system all begin storing the same progress state.",[28,6378,6379,6380,6383],{},"This article describes a hybrid design. GitHub remains the source of truth for the human-facing work lifecycle, while a ",[221,6381,6382],{},".team"," registry on a dedicated branch provides only the active lease and path-level exclusion that GitHub does not directly provide.",[23,6385,43],{"id":42},[45,6387,6388,6402,6405,6408,6413,6427],{},[48,6389,6390,6391,2842,6394,6397,6398,6401],{},"Use GitHub Projects to display priority and the ",[221,6392,6393],{},"Open",[221,6395,6396],{},"In Review",", and ",[221,6399,6400],{},"Done"," work lifecycle.",[48,6403,6404],{},"Use Issues as work contracts containing context, objectives, completion criteria, exclusions, and writable paths.",[48,6406,6407],{},"Use Pull Requests as the source of truth for implementation diffs, reviews, CI, and merge state.",[48,6409,6410,6411,1387],{},"Keep only the owner, session, lease, branch, claimed paths, and PR identity checks in ",[221,6412,6382],{},[48,6414,6415,6416,6418,6419,6422,6423,6426],{},"Determine whether implementation is active from the ",[221,6417,6382],{}," lease; do not duplicate Project Status, ",[221,6420,6421],{},"draft-pr",", or ",[221,6424,6425],{},"ready-pr"," there.",[48,6428,6429,6430,1387],{},"Let built-in GitHub Projects workflows handle the transitions they support, and do not update the Project from ",[221,6431,6432],{},"task:start",[23,6434,6436],{"id":6435},"do-not-make-one-system-own-everything","Do not make one system own everything",[28,6438,6439],{},"Projects, Issues, PRs, and a coordination registry each serve a different purpose.",[255,6441,6442,6455],{},[258,6443,6444],{},[261,6445,6446,6449,6452],{},[264,6447,6448],{},"Information",[264,6450,6451],{},"Source of truth",[264,6453,6454],{},"Why",[280,6456,6457,6468,6479,6490,6502],{},[261,6458,6459,6462,6465],{},[285,6460,6461],{},"Priority, planned owner, work stage",[285,6463,6464],{},"GitHub Project",[285,6466,6467],{},"Easy for people to inspect in board and table views",[261,6469,6470,6473,6476],{},[285,6471,6472],{},"Context, objective, completion criteria, exclusions",[285,6474,6475],{},"GitHub Issue",[285,6477,6478],{},"Keeps decisions and discussion attached to the unit of work",[261,6480,6481,6484,6487],{},[285,6482,6483],{},"Diff, review, CI, merge state",[285,6485,6486],{},"Pull Request",[285,6488,6489],{},"Directly connected to Git revisions and review state",[261,6491,6492,6495,6499],{},[285,6493,6494],{},"Owner, session, lease",[285,6496,6497],{},[221,6498,6382],{},[285,6500,6501],{},"Supports machine-enforced temporary ownership",[261,6503,6504,6507,6511],{},[285,6505,6506],{},"Allowed paths and shared resources",[285,6508,6509],{},[221,6510,6382],{},[285,6512,6513],{},"Rejects conflicts before implementation and before commit",[28,6515,6516,6517,6519,6520,6522],{},"In this split, Project Status is the source of truth for the human-facing work lifecycle. ",[221,6518,6382],{}," owns the active implementation lease, while the PR itself owns Draft, Ready, and merged state. ",[221,6521,6382],{}," is a development safety mechanism, not a second Project.",[23,6524,6526],{"id":6525},"recommended-state-transitions","Recommended state transitions",[28,6528,6529],{},"Create three Project Status values.",[255,6531,6532,6542],{},[258,6533,6534],{},[261,6535,6536,6539],{},[264,6537,6538],{},"Status",[264,6540,6541],{},"Meaning",[280,6543,6544,6553,6562],{},[261,6545,6546,6550],{},[285,6547,6548],{},[221,6549,6393],{},[285,6551,6552],{},"The Issue is open and no PR is currently awaiting review",[261,6554,6555,6559],{},[285,6556,6557],{},[221,6558,6396],{},[285,6560,6561],{},"A PR is linked to the Issue and is reviewable",[261,6563,6564,6568],{},[285,6565,6566],{},[221,6567,6400],{},[285,6569,6570],{},"The Issue is closed or the PR is merged",[28,6572,6573],{},"The standard flow becomes:",[2063,6575,6578],{"className":6576,"code":6577,"language":2068,"meta":1905},[2066],"Issue created\n  -> Project: Open\n  -> task:start: claim lease and paths\n     Project stays Open; inspect .team for active implementation\n  -> PR created with \"Closes #123\"\n  -> Project: In Review\n  -> PR merged \u002F Issue closed\n  -> Project: Done\n  -> task:finish: sync main and release lease\n",[221,6579,6577],{"__ignoreMap":1905},[28,6581,6582,6584,6585,6587,6588,6591,6592,6595,6596,6598],{},[221,6583,6393],{}," intentionally covers both unclaimed and actively implemented work. Inspect the ",[221,6586,6382],{}," active record or ",[221,6589,6590],{},"task:status"," to distinguish them. ",[221,6593,6594],{},"task:finish"," should not set the Project to Done. GitHub handles the merge and Issue closure, and a Project workflow reflects that state. ",[221,6597,6594],{}," focuses on syncing the local main branch and releasing the temporary claim.",[23,6600,6602],{"id":6601},"treat-the-issue-as-a-work-contract","Treat the Issue as a work contract",[28,6604,6605],{},"At minimum, an Issue should contain the context, objective, completion criteria, and exclusions. Include the agent's writable scope in a machine-readable block.",[2063,6607,6611],{"className":6608,"code":6609,"language":6610,"meta":1905,"style":1905},"language-markdown shiki shiki-themes github-light github-dark","## Task contract\n\n\u003C!-- task-contract\nallowed_paths:\n  - apps\u002Fweb\u002Fcontent\u002Fknowledge\u002F**\n  - tools\u002Ftask-workflow\u002F**\nshared_resources:\n  - apps\u002Fweb\u002Fpnpm-lock.yaml\nrequired_checks:\n  - format:check\n  - typecheck\nbranch_slug: project-team-hybrid\n-->\n","markdown",[221,6612,6613,6618,6623,6628,6633,6638,6643,6649,6655,6661,6667,6673,6679],{"__ignoreMap":1905},[2082,6614,6615],{"class":2084,"line":2085},[2082,6616,6617],{},"## Task contract\n",[2082,6619,6620],{"class":2084,"line":1906},[2082,6621,6622],{"emptyLinePlaceholder":1943},"\n",[2082,6624,6625],{"class":2084,"line":1914},[2082,6626,6627],{},"\u003C!-- task-contract\n",[2082,6629,6630],{"class":2084,"line":2120},[2082,6631,6632],{},"allowed_paths:\n",[2082,6634,6635],{"class":2084,"line":2133},[2082,6636,6637],{},"  - apps\u002Fweb\u002Fcontent\u002Fknowledge\u002F**\n",[2082,6639,6640],{"class":2084,"line":2144},[2082,6641,6642],{},"  - tools\u002Ftask-workflow\u002F**\n",[2082,6644,6646],{"class":2084,"line":6645},7,[2082,6647,6648],{},"shared_resources:\n",[2082,6650,6652],{"class":2084,"line":6651},8,[2082,6653,6654],{},"  - apps\u002Fweb\u002Fpnpm-lock.yaml\n",[2082,6656,6658],{"class":2084,"line":6657},9,[2082,6659,6660],{},"required_checks:\n",[2082,6662,6664],{"class":2084,"line":6663},10,[2082,6665,6666],{},"  - format:check\n",[2082,6668,6670],{"class":2084,"line":6669},11,[2082,6671,6672],{},"  - typecheck\n",[2082,6674,6676],{"class":2084,"line":6675},12,[2082,6677,6678],{},"branch_slug: project-team-hybrid\n",[2082,6680,6682],{"class":2084,"line":6681},13,[2082,6683,6684],{},"-->\n",[28,6686,6687,6690,6691,6694],{},[221,6688,6689],{},"allowed_paths"," describes normal writable scope. ",[221,6692,6693],{},"shared_resources"," covers files such as lockfiles that multiple areas may need to change. If a new claim overlaps another active task, split the Issue or adjust the claimed scope before implementation begins.",[23,6696,6698],{"id":6697},"limit-team-to-leases-and-conflict-prevention","Limit .team to leases and conflict prevention",[28,6700,6701],{},"GitHub Projects is effective for progress visibility, but it does not provide a compare-and-swap lease such as “this session owns this directory for four hours,” nor does it reject overlapping path claims.",[28,6703,6704,6705,6708],{},"A dedicated branch can therefore contain ",[221,6706,6707],{},".team\u002Findex.yml"," and one active record per task. The files may use a YAML extension while containing JSON-compatible data to keep parsing simple.",[2063,6710,6712],{"className":2076,"code":6711,"language":2078,"meta":1905,"style":1905},"{\n  \"schema_version\": 1,\n  \"issue\": 123,\n  \"owner\": {\n    \"kind\": \"agent\",\n    \"name\": \"implementation-agent\",\n    \"session_id\": \"session-uuid\"\n  },\n  \"branch\": \"codex\u002Fissue-123-project-team-hybrid\",\n  \"base_branch\": \"main\",\n  \"base_sha\": \"commit-sha\",\n  \"allowed_paths\": [\"tools\u002Ftask-workflow\u002F**\"],\n  \"shared_resources\": [],\n  \"started_at\": \"2026-08-22T00:00:00.000Z\",\n  \"heartbeat_at\": \"2026-08-22T01:00:00.000Z\",\n  \"lease_expires_at\": \"2026-08-22T05:00:00.000Z\",\n  \"pr\": 456,\n  \"pr_head_sha\": \"commit-sha\"\n}\n",[221,6713,6714,6718,6730,6742,6750,6762,6774,6784,6789,6801,6813,6825,6839,6847,6860,6873,6886,6899,6910],{"__ignoreMap":1905},[2082,6715,6716],{"class":2084,"line":2085},[2082,6717,2089],{"class":2088},[2082,6719,6720,6723,6725,6728],{"class":2084,"line":1906},[2082,6721,6722],{"class":2094},"  \"schema_version\"",[2082,6724,2098],{"class":2088},[2082,6726,6727],{"class":2094},"1",[2082,6729,2105],{"class":2088},[2082,6731,6732,6735,6737,6740],{"class":2084,"line":1914},[2082,6733,6734],{"class":2094},"  \"issue\"",[2082,6736,2098],{"class":2088},[2082,6738,6739],{"class":2094},"123",[2082,6741,2105],{"class":2088},[2082,6743,6744,6747],{"class":2084,"line":2120},[2082,6745,6746],{"class":2094},"  \"owner\"",[2082,6748,6749],{"class":2088},": {\n",[2082,6751,6752,6755,6757,6760],{"class":2084,"line":2133},[2082,6753,6754],{"class":2094},"    \"kind\"",[2082,6756,2098],{"class":2088},[2082,6758,6759],{"class":2101},"\"agent\"",[2082,6761,2105],{"class":2088},[2082,6763,6764,6767,6769,6772],{"class":2084,"line":2144},[2082,6765,6766],{"class":2094},"    \"name\"",[2082,6768,2098],{"class":2088},[2082,6770,6771],{"class":2101},"\"implementation-agent\"",[2082,6773,2105],{"class":2088},[2082,6775,6776,6779,6781],{"class":2084,"line":6645},[2082,6777,6778],{"class":2094},"    \"session_id\"",[2082,6780,2098],{"class":2088},[2082,6782,6783],{"class":2101},"\"session-uuid\"\n",[2082,6785,6786],{"class":2084,"line":6651},[2082,6787,6788],{"class":2088},"  },\n",[2082,6790,6791,6794,6796,6799],{"class":2084,"line":6657},[2082,6792,6793],{"class":2094},"  \"branch\"",[2082,6795,2098],{"class":2088},[2082,6797,6798],{"class":2101},"\"codex\u002Fissue-123-project-team-hybrid\"",[2082,6800,2105],{"class":2088},[2082,6802,6803,6806,6808,6811],{"class":2084,"line":6663},[2082,6804,6805],{"class":2094},"  \"base_branch\"",[2082,6807,2098],{"class":2088},[2082,6809,6810],{"class":2101},"\"main\"",[2082,6812,2105],{"class":2088},[2082,6814,6815,6818,6820,6823],{"class":2084,"line":6669},[2082,6816,6817],{"class":2094},"  \"base_sha\"",[2082,6819,2098],{"class":2088},[2082,6821,6822],{"class":2101},"\"commit-sha\"",[2082,6824,2105],{"class":2088},[2082,6826,6827,6830,6833,6836],{"class":2084,"line":6675},[2082,6828,6829],{"class":2094},"  \"allowed_paths\"",[2082,6831,6832],{"class":2088},": [",[2082,6834,6835],{"class":2101},"\"tools\u002Ftask-workflow\u002F**\"",[2082,6837,6838],{"class":2088},"],\n",[2082,6840,6841,6844],{"class":2084,"line":6681},[2082,6842,6843],{"class":2094},"  \"shared_resources\"",[2082,6845,6846],{"class":2088},": [],\n",[2082,6848,6850,6853,6855,6858],{"class":2084,"line":6849},14,[2082,6851,6852],{"class":2094},"  \"started_at\"",[2082,6854,2098],{"class":2088},[2082,6856,6857],{"class":2101},"\"2026-08-22T00:00:00.000Z\"",[2082,6859,2105],{"class":2088},[2082,6861,6863,6866,6868,6871],{"class":2084,"line":6862},15,[2082,6864,6865],{"class":2094},"  \"heartbeat_at\"",[2082,6867,2098],{"class":2088},[2082,6869,6870],{"class":2101},"\"2026-08-22T01:00:00.000Z\"",[2082,6872,2105],{"class":2088},[2082,6874,6876,6879,6881,6884],{"class":2084,"line":6875},16,[2082,6877,6878],{"class":2094},"  \"lease_expires_at\"",[2082,6880,2098],{"class":2088},[2082,6882,6883],{"class":2101},"\"2026-08-22T05:00:00.000Z\"",[2082,6885,2105],{"class":2088},[2082,6887,6889,6892,6894,6897],{"class":2084,"line":6888},17,[2082,6890,6891],{"class":2094},"  \"pr\"",[2082,6893,2098],{"class":2088},[2082,6895,6896],{"class":2094},"456",[2082,6898,2105],{"class":2088},[2082,6900,6902,6905,6907],{"class":2084,"line":6901},18,[2082,6903,6904],{"class":2094},"  \"pr_head_sha\"",[2082,6906,2098],{"class":2088},[2082,6908,6909],{"class":2101},"\"commit-sha\"\n",[2082,6911,6913],{"class":2084,"line":6912},19,[2082,6914,2147],{"class":2088},[28,6916,6917,6918,667,6921,6924],{},"Do not store Project Status or PR Draft\u002FReady state in this record. ",[221,6919,6920],{},"pr",[221,6922,6923],{},"pr_head_sha"," are not progress indicators. They verify that the registered PR still points to the expected task-branch revision when the task is finished.",[28,6926,6927],{},"Only allow fast-forward updates to the coordination branch. Use the head SHA that was read as the expected ref value. If another agent updates the branch first, do not force-push. Read the latest state and run conflict detection again.",[23,6929,6931],{"id":6930},"delegate-supported-transitions-to-github-projects","Delegate supported transitions to GitHub Projects",[28,6933,6934],{},"Built-in GitHub Projects workflows can handle these transitions without custom code.",[255,6936,6937,6947],{},[258,6938,6939],{},[261,6940,6941,6944],{},[264,6942,6943],{},"Trigger",[264,6945,6946],{},"Action",[280,6948,6949,6957,6967,6976,6985,6994],{},[261,6950,6951,6954],{},[285,6952,6953],{},"A matching open Issue is created or updated",[285,6955,6956],{},"Add it to the Project",[261,6958,6959,6962],{},[285,6960,6961],{},"An item is added to the Project",[285,6963,6964,6965],{},"Set ",[221,6966,6393],{},[261,6968,6969,6972],{},[285,6970,6971],{},"A PR is linked to an Issue",[285,6973,6964,6974],{},[221,6975,6396],{},[261,6977,6978,6981],{},[285,6979,6980],{},"An item is closed",[285,6982,6964,6983],{},[221,6984,6400],{},[261,6986,6987,6990],{},[285,6988,6989],{},"A PR is merged",[285,6991,6964,6992],{},[221,6993,6400],{},[261,6995,6996,6999],{},[285,6997,6998],{},"An item is reopened",[285,7000,6964,7001],{},[221,7002,6393],{},[28,7004,7005,7006,7009],{},"Put a closing keyword such as ",[221,7007,7008],{},"Closes #123"," in the PR body. This explicitly links the PR and Issue and automatically closes the Issue when the PR is merged into the default branch.",[23,7011,7013],{"id":7012},"divide-responsibilities-between-taskstart-and-open","Divide responsibilities between task:start and Open",[28,7015,7016,7018,7019,7021],{},[221,7017,6432],{}," checks for a clean worktree, parses the Issue contract, detects conflicts with active tasks, acquires the lease, and prepares the task branch. It does not update the Project; the Status remains ",[221,7020,6393],{}," until a PR is linked to the Issue.",[28,7023,7024,7025,7027],{},"Because work start is not duplicated in the Project, the workflow needs neither a browser interaction nor a Project API token and Project, field, or option IDs. The Project shows the review and completion boundaries to people, while ",[221,7026,6382],{}," exposes the active owner, session, and lease to machines. Keeping these two levels intentionally different prevents the visible lifecycle and the execution claim from drifting apart.",[23,7029,7031],{"id":7030},"keep-tasklink-pr-focused-on-validation","Keep task:link-pr focused on validation",[28,7033,7034],{},"After creating a PR, the coordination command should verify only that:",[45,7036,7037,7040,7043,7046],{},[48,7038,7039],{},"the PR head repository is the expected repository;",[48,7041,7042],{},"the PR head branch matches the active record;",[48,7044,7045],{},"the PR base branch matches the planned base branch; and",[48,7047,7048],{},"the PR head SHA matches both the local and remote task-branch revision.",[28,7050,7051],{},"Store the matching PR number and head SHA. GitHub already exposes Draft and Ready state, so do not copy those states to the custom registry. If new commits are pushed, run the validation again and update the stored head SHA.",[23,7053,7055],{"id":7054},"design-failure-and-recovery-first","Design failure and recovery first",[28,7057,7058],{},"Interrupted work is more important than the happy path in a multi-agent workflow.",[45,7060,7061,7064,7067,7070,7073,7076],{},[48,7062,7063],{},"Do not automatically take an expired lease. Inspect the Issue, branch, PR, and last heartbeat before an explicit takeover.",[48,7065,7066],{},"If the coordination ref update conflicts, never force-push. Retry from the latest state.",[48,7068,7069],{},"If GitHub deletes the PR head branch after merge, finish only when the saved PR head SHA still matches the local revision.",[48,7071,7072],{},"Record the reason in the Issue before releasing an aborted claim.",[48,7074,7075],{},"Do not infer file ownership from Project Status alone.",[48,7077,7078,7079,7081],{},"Do not report product progress from ",[221,7080,6382],{}," alone.",[23,7083,7085],{"id":7084},"introduce-the-model-in-stages","Introduce the model in stages",[28,7087,7088],{},"When adding this model to an existing Issue and PR workflow:",[3933,7090,7091,7101,7106,7114,7122,7125,7132],{},[48,7092,7093,7094,2842,7096,6397,7098,7100],{},"Create ",[221,7095,6393],{},[221,7097,6396],{},[221,7099,6400],{}," in the Project.",[48,7102,7103,7104,1387],{},"Auto-add matching open Issues, and set added or reopened items to ",[221,7105,6393],{},[48,7107,7108,7109,7111,7112,1387],{},"Move linked PRs to ",[221,7110,6396],{}," and closed or merged work to ",[221,7113,6400],{},[48,7115,7116,7117,7119,7120,1387],{},"Add ",[221,7118,6382],{}," leases and path exclusion, and acquire them through ",[221,7121,6432],{},[48,7123,7124],{},"Remove duplicated Project Status, Draft, and Ready states from the custom registry.",[48,7126,7127,7128,7131],{},"Reduce ",[221,7129,7130],{},"task:link-pr"," to PR and branch-revision validation.",[48,7133,7127,7134,7136],{},[221,7135,6594],{}," to merge verification, main synchronization, and lease release.",[28,7138,7139],{},"This order lets the team compare GitHub's visible state with actual work at every stage and roll back a small change if necessary.",[23,7141,1647],{"id":1646},[45,7143,7144,7149,7160,7163,7166,7169],{},[48,7145,7146,7148],{},[221,7147,6382],{}," is not a GitHub standard. It is an optional coordination registry for multi-agent development and may be unnecessary for solo work or low-conflict teams.",[48,7150,7151,7153,7154,7156,7157,7159],{},[221,7152,6393],{}," alone does not distinguish unclaimed work from active implementation. Inspect ",[221,7155,6382],{}," or ",[221,7158,6590],{}," for the current claim.",[48,7161,7162],{},"A lease does not provide an operating-system file lock or eliminate Git conflicts. Validate changed paths again before commit.",[48,7164,7165],{},"Auto-add workflows apply to new or updated matching items after the workflow is enabled. Existing items may need to be added separately.",[48,7167,7168],{},"A closing keyword closes the Issue when the linked PR is merged into the repository's default branch.",[48,7170,7171],{},"Project fields and workflows can change. Periodically compare the operating guide with the actual Project configuration.",[23,7173,1674],{"id":1673},[45,7175,7176,7183,7190,7197,7204],{},[48,7177,7178],{},[157,7179,7182],{"href":7180,"rel":7181},"https:\u002F\u002Fdocs.github.com\u002Fissues\u002Fplanning-and-tracking-with-projects\u002Flearning-about-projects\u002Fabout-projects",[161],"About GitHub Projects",[48,7184,7185],{},[157,7186,7189],{"href":7187,"rel":7188},"https:\u002F\u002Fdocs.github.com\u002Fissues\u002Fplanning-and-tracking-with-projects\u002Fautomating-your-project\u002Fusing-the-built-in-automations",[161],"Using built-in Project automations",[48,7191,7192],{},[157,7193,7196],{"href":7194,"rel":7195},"https:\u002F\u002Fdocs.github.com\u002Fissues\u002Fplanning-and-tracking-with-projects\u002Fautomating-your-project\u002Fadding-items-automatically",[161],"Adding items to a Project automatically",[48,7198,7199],{},[157,7200,7203],{"href":7201,"rel":7202},"https:\u002F\u002Fdocs.github.com\u002Fissues\u002Ftracking-your-work-with-issues\u002Fusing-issues\u002Flinking-a-pull-request-to-an-issue",[161],"Linking a Pull Request to an Issue",[48,7205,7206],{},[157,7207,7210],{"href":7208,"rel":7209},"https:\u002F\u002Fdocs.github.com\u002Fissues\u002Ftracking-your-work-with-issues\u002Fusing-issues\u002Flinking-a-pull-request-to-an-issue#using-keywords-to-link-a-pull-request-to-an-issue",[161],"Using keywords to close an Issue",[4201,7212,7213],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":1905,"searchDepth":1906,"depth":1906,"links":7215},[7216,7217,7218,7219,7220,7221,7222,7223,7224,7225,7226,7227,7228],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":6435,"depth":1906,"text":6436},{"id":6525,"depth":1906,"text":6526},{"id":6601,"depth":1906,"text":6602},{"id":6697,"depth":1906,"text":6698},{"id":6930,"depth":1906,"text":6931},{"id":7012,"depth":1906,"text":7013},{"id":7030,"depth":1906,"text":7031},{"id":7054,"depth":1906,"text":7055},{"id":7084,"depth":1906,"text":7085},{"id":1646,"depth":1906,"text":1647},{"id":1673,"depth":1906,"text":1674},"A task workflow that keeps the human-facing lifecycle in GitHub while using a custom .team registry only for active leases and path-conflict prevention.",{},"\u002Fknowledge\u002Fweb\u002Fgithub\u002Fgithub-projects-issues-prs-team-coordination","2026-08-22",{"title":6352,"description":7229},"knowledge\u002Fweb\u002Fgithub\u002Fgithub-projects-issues-prs-team-coordination",[7236,7237,7238,7239,7240],"github-projects","issue-driven-development","pull-request","multi-agent","task-coordination",[7242,5486,5485],"github","2026-09-05","eu-t7Vi_Sx2z8_4ugDvtRr9_FLDCbRZP3h8STUB2rZU",{"id":7246,"title":7247,"appliesTo":7248,"body":7251,"description":7810,"extension":1941,"meta":7811,"navigation":1943,"path":7812,"publishedAt":327,"seo":7813,"status":1947,"stem":7814,"tags":7815,"technologies":7820,"updatedAt":327,"__hash__":7822},"knowledge_en\u002Fknowledge\u002Fgame\u002Funity\u002Fecs-cohesion-experiment-card.md","Evaluating Unity ECS cohesion by separating measurement, observation, and decision",[7249,7250],"Unity 6000.5.1f1","Windows Standalone x64 Development Build",{"type":20,"value":7252,"toc":7798},[7253,7257,7315,7318,7320,7350,7354,7357,7408,7411,7415,7418,7558,7561,7565,7568,7664,7667,7670,7673,7683,7686,7700,7703,7707,7721,7724,7728,7731,7748,7751,7753,7775,7777],[23,7254,7256],{"id":7255},"experiment-card","Experiment card",[255,7258,7259,7269],{},[258,7260,7261],{},[261,7262,7263,7266],{},[264,7264,7265],{},"Item",[264,7267,7268],{},"Detail",[280,7270,7271,7279,7287,7295,7303],{},[261,7272,7273,7276],{},[285,7274,7275],{},"Question",[285,7277,7278],{},"How does adding local cohesion change the appearance and Player cost of a minimal Boids-lite setup?",[261,7280,7281,7284],{},[285,7282,7283],{},"Comparison",[285,7285,7286],{},"Keep separation and alignment enabled while toggling only cohesion",[261,7288,7289,7292],{},[285,7290,7291],{},"Measurement",[285,7293,7294],{},"Run a Windows Player three times per condition with 1,000 and 5,000 entities",[261,7296,7297,7300],{},[285,7298,7299],{},"Observation",[285,7301,7302],{},"Move 1,000 fixed-seed entities toward the same target and compare motion and post-arrival behavior",[261,7304,7305,7308],{},[285,7306,7307],{},"Decision",[285,7309,7310,7311,7314],{},"Adopt acceleration ",[221,7312,7313],{},"1.0"," as the initial value for this minimal setup",[28,7316,7317],{},"The important part of this experiment is that the adoption decision is not explained by a single number. The direction of the CPU Main difference changed with entity count, and the per-run ranges overlapped. A fixed-condition visual check, meanwhile, made local grouping look slightly stronger. The value was therefore adopted because it added the intended visual behavior without revealing a visible conflict with existing behavior—not because performance improved.",[23,7319,43],{"id":42},[45,7321,7322,7332,7335,7338,7341,7344],{},[48,7323,7324,7325,7328,7329,1387],{},"With 1,000 entities, the average CPU Main difference with cohesion enabled was ",[221,7326,7327],{},"+0.026 ms","; with 5,000 entities, it was ",[221,7330,7331],{},"-0.086 ms",[48,7333,7334],{},"The direction was inconsistent and the ranges from three runs per condition overlapped, so the experiment does not establish an increase or decrease in cost.",[48,7336,7337],{},"Average Unity reserved memory did not differ between disabled and enabled cohesion at either entity count.",[48,7339,7340],{},"In a fixed-seed visual comparison of 1,000 entities moving to the same target, local grouping looked slightly stronger with cohesion enabled.",[48,7342,7343],{},"Through approximately six seconds after arrival, no cohesion-specific overdensity, expansion and contraction of the group, or oscillation around the center was observed.",[48,7345,7346,7347,7349],{},"Acceleration ",[221,7348,7313],{}," is an initial value only for this minimal Boids-lite setup. It is neither a general recommendation nor a value justified by a performance difference.",[23,7351,7353],{"id":7352},"separate-measurement-observation-and-decision","Separate measurement, observation, and decision",[28,7355,7356],{},"An experiment report should not merge these three types of result.",[255,7358,7359,7372],{},[258,7360,7361],{},[261,7362,7363,7366,7369],{},[264,7364,7365],{},"Type",[264,7367,7368],{},"What this experiment covers",[264,7370,7371],{},"Valid scope",[280,7373,7374,7384,7395],{},[261,7375,7376,7378,7381],{},[285,7377,7291],{},[285,7379,7380],{},"A\u002FB comparison of CPU Main and reserved memory",[285,7382,7383],{},"The documented Player, conditions, and three runs per condition",[261,7385,7386,7389,7392],{},[285,7387,7388],{},"Visual observation",[285,7390,7391],{},"Grouping and the absence of visibly unstable motion",[285,7393,7394],{},"Fixed seed, 1,000 entities, the same target, and approximately six seconds after arrival",[261,7396,7397,7399,7405],{},[285,7398,7307],{},[285,7400,7401,7402,7404],{},"Use cohesion acceleration ",[221,7403,7313],{}," as the initial value",[285,7406,7407],{},"This minimal Boids-lite setup only",[28,7409,7410],{},"“The appearance improved,” “the average changed,” and “the value became the default” are separate claims. The core lesson is not to turn a small average difference into a performance improvement, a short visual check into proof of stability, or one project's initial value into a general recommendation.",[23,7412,7414],{"id":7413},"ab-measurement-conditions","A\u002FB measurement conditions",[28,7416,7417],{},"The same Windows Standalone x64 Development Build was used, with only cohesion toggled.",[255,7419,7420,7429],{},[258,7421,7422],{},[261,7423,7424,7426],{},[264,7425,7265],{},[264,7427,7428],{},"Condition",[280,7430,7431,7440,7453,7461,7472,7480,7495,7503,7511,7519,7527,7534,7542,7550],{},[261,7432,7433,7435],{},[285,7434,6035],{},[285,7436,7437],{},[221,7438,7439],{},"6000.5.1f1",[261,7441,7442,7445],{},[285,7443,7444],{},"Entities \u002F Entities Graphics",[285,7446,7447,7450,7451],{},[221,7448,7449],{},"6.5.0"," \u002F ",[221,7452,7449],{},[261,7454,7455,7458],{},[285,7456,7457],{},"CPU",[285,7459,7460],{},"13th Gen Intel Core i7-13700H, 14 cores \u002F 20 logical processors",[261,7462,7463,7466],{},[285,7464,7465],{},"GPU \u002F driver",[285,7467,7468,7469],{},"NVIDIA GeForce RTX 4060 Laptop GPU, Direct3D 12, 7,957 MB VRAM, driver ",[221,7470,7471],{},"32.0.15.7283",[261,7473,7474,7477],{},[285,7475,7476],{},"RAM",[285,7478,7479],{},"32 GB (34,078,425,088 bytes)",[261,7481,7482,7485],{},[285,7483,7484],{},"OS",[285,7486,7487,7488,7491,7492],{},"Microsoft Windows 11 Home ",[221,7489,7490],{},"10.0.26200",", build ",[221,7493,7494],{},"26200",[261,7496,7497,7500],{},[285,7498,7499],{},"Display",[285,7501,7502],{},"1920×1080, windowed, VSync disabled",[261,7504,7505,7508],{},[285,7506,7507],{},"Entity count",[285,7509,7510],{},"1,000 \u002F 5,000",[261,7512,7513,7516],{},[285,7514,7515],{},"Steering",[285,7517,7518],{},"Separation enabled, alignment enabled",[261,7520,7521,7524],{},[285,7522,7523],{},"Movement",[285,7525,7526],{},"Measurement targets changed at a fixed interval",[261,7528,7529,7531],{},[285,7530,7283],{},[285,7532,7533],{},"Cohesion disabled \u002F enabled",[261,7535,7536,7539],{},[285,7537,7538],{},"Warm-up",[285,7540,7541],{},"10 seconds",[261,7543,7544,7547],{},[285,7545,7546],{},"Measurement period",[285,7548,7549],{},"30 seconds",[261,7551,7552,7555],{},[285,7553,7554],{},"Repetitions",[285,7556,7557],{},"Three runs per condition",[28,7559,7560],{},"Before measurement, batchmode compilation, 106 Edit Mode tests, the Windows Development Build, and successful completion of every visible Player run were checked. The measurements are whole-Player frame metrics, not a Profiler Marker isolated to the cohesion computation.",[23,7562,7564],{"id":7563},"measured-results","Measured results",[28,7566,7567],{},"The following values are averages from three runs per condition.",[255,7569,7570,7593],{},[258,7571,7572],{},[261,7573,7574,7576,7580,7583,7587,7590],{},[264,7575,7507],{"align":3131},[264,7577,7579],{"align":7578},"center","Cohesion",[264,7581,7582],{"align":3131},"CPU Main average",[264,7584,7586],{"align":7585},"left","CPU Main range",[264,7588,7589],{"align":3131},"Enabled average difference",[264,7591,7592],{"align":3131},"Total Reserved Memory",[280,7594,7595,7614,7631,7648],{},[261,7596,7597,7600,7603,7606,7609,7611],{},[285,7598,7599],{"align":3131},"1,000",[285,7601,7602],{"align":7578},"Disabled",[285,7604,7605],{"align":3131},"0.856 ms",[285,7607,7608],{"align":7585},"0.831–0.882 ms",[285,7610,2415],{"align":3131},[285,7612,7613],{"align":3131},"441.59 MiB",[261,7615,7616,7618,7621,7624,7627,7629],{},[285,7617,7599],{"align":3131},[285,7619,7620],{"align":7578},"Enabled",[285,7622,7623],{"align":3131},"0.882 ms",[285,7625,7626],{"align":7585},"0.851–0.931 ms",[285,7628,7327],{"align":3131},[285,7630,7613],{"align":3131},[261,7632,7633,7636,7638,7641,7644,7646],{},[285,7634,7635],{"align":3131},"5,000",[285,7637,7602],{"align":7578},[285,7639,7640],{"align":3131},"1.370 ms",[285,7642,7643],{"align":7585},"1.280–1.459 ms",[285,7645,2415],{"align":3131},[285,7647,7613],{"align":3131},[261,7649,7650,7652,7654,7657,7660,7662],{},[285,7651,7635],{"align":3131},[285,7653,7620],{"align":7578},[285,7655,7656],{"align":3131},"1.284 ms",[285,7658,7659],{"align":7585},"1.247–1.331 ms",[285,7661,7331],{"align":3131},[285,7663,7613],{"align":3131},[28,7665,7666],{},"The enabled average increased at 1,000 entities and decreased at 5,000. The recorded per-run ranges also overlapped in both cases. Run-to-run variation may therefore be as large as or larger than the incremental cohesion cost in this test. These measurements do not support either “cohesion made it faster” or “cohesion made it slower.”",[28,7668,7669],{},"GPU FrameTiming produced unrealistic outliers in multiple runs and was excluded from the conclusion. Rejecting a metric that cannot be trusted, instead of reporting every available number, is part of the result.",[23,7671,7388],{"id":7672},"visual-observation",[28,7674,7675,7676,7679,7680,7682],{},"The visual comparison moved 1,000 entities generated from fixed seed ",[221,7677,7678],{},"20260816"," toward the same screen-space target. Entity count was preserved, separation and alignment remained enabled, and cohesion acceleration was ",[221,7681,7313],{},". Motion was checked around 0.5 seconds after setting the target and the settled state around six seconds after arrival.",[28,7684,7685],{},"The observations were limited to the following:",[45,7687,7688,7691,7694,7697],{},[48,7689,7690],{},"Local grouping looked slightly stronger with cohesion enabled.",[48,7692,7693],{},"Both conditions formed a dense group around the single target after arrival.",[48,7695,7696],{},"Through approximately six seconds, no enabled-only overdensity, expansion and contraction of the group, or oscillation around the center was observed.",[48,7698,7699],{},"No visible problem was found in target arrival, minimal avoidance from separation, or existing enemy behavior.",[28,7701,7702],{},"These are qualitative observations, not measurements of local density, flock shape, or nearest-neighbor distance. No publishable side-by-side image or video was retained, so the visual result is not presented as independently inspectable evidence. “Not observed” means only that the problem was not found during the documented short window and conditions.",[23,7704,7706],{"id":7705},"adoption-decision","Adoption decision",[28,7708,7709,7710,7712,7713,7716,7717,7720],{},"This minimal Boids-lite setup adopted cohesion acceleration ",[221,7711,7313],{}," as its initial value. It is weaker than alignment at ",[221,7714,7715],{},"2.0"," and separation at ",[221,7718,7719],{},"6.0",", allowing the movement target to remain the primary direction while drawing allies slightly toward a local center.",[28,7722,7723],{},"The reason for adoption was that the fixed-condition check showed the intended visual change without revealing a visible conflict with existing behavior. The CPU Main average differences were not used to justify the decision. Different densities, neighbor counts, game rules, and rendering loads may require a different value.",[23,7725,7727],{"id":7726},"turning-a-small-difference-into-the-next-experiment","Turning a small difference into the next experiment",[28,7729,7730],{},"When the direction of a difference is inconsistent and run ranges overlap, it is safer not to decide feature adoption or optimization from averages alone. A follow-up can add evidence according to the question being asked.",[45,7732,7733,7736,7739,7742,7745],{},[48,7734,7735],{},"Increase the run count and alternate or randomize execution order.",[48,7737,7738],{},"Inspect percentiles and short Profiler captures in addition to averages.",[48,7740,7741],{},"Add a cohesion-specific Profiler Marker to separate its cost from whole-Player variation.",[48,7743,7744],{},"Record the same local-density, nearest-neighbor, overlap-count, and arrival-time metrics in both conditions.",[48,7746,7747],{},"Retain publishable images or video at matching timestamps so visual observations can be checked again.",[28,7749,7750],{},"The goal is not to force a stronger conclusion out of a small difference. The measurement can remain “cost change not established,” the observation can remain “the appearance changed slightly under limited conditions,” and the decision can remain “an initial value was selected for the current prototype.”",[23,7752,1647],{"id":1646},[45,7754,7755,7758,7761,7764,7767,7770],{},[48,7756,7757],{},"The result is limited to one Windows Development Player, the documented entity counts, and three runs per condition.",[48,7759,7760],{},"CPU Main is a whole-Player average, not the execution time of cohesion alone.",[48,7762,7763],{},"Equal reserved memory does not prove that temporary allocators or in-frame allocations were identical.",[48,7765,7766],{},"The visual comparison was not quantitative and has no publishable image or video.",[48,7768,7769],{},"Finding no problem through approximately six seconds does not establish long-duration stability or behavior with other target layouts.",[48,7771,7346,7772,7774],{},[221,7773,7313],{}," is a decision for this setup, not a recommendation for Unity ECS or Boids in general.",[23,7776,1674],{"id":1673},[45,7778,7779,7785,7791],{},[48,7780,7781],{},[157,7782,7784],{"href":7783},"\u002Fknowledge\u002Fgame\u002Funity\u002Fecs-windows-player-performance-baseline","Measuring 1,000 to 5,000 Unity ECS entities reproducibly in a Windows Player (Japanese)",[48,7786,7787],{},[157,7788,7790],{"href":7789},"\u002Fknowledge\u002Fgame\u002Funity\u002Fecs-uniform-grid-separation-ab-test","A\u002FB testing same-faction separation with a reused spatial index in Unity ECS (Japanese)",[48,7792,7793],{},[157,7794,7797],{"href":7795,"rel":7796},"https:\u002F\u002Fdocs.unity3d.com\u002F2022.2\u002FDocumentation\u002FManual\u002Fprofiler-profiling-applications.html",[161],"Profiling your application in Unity",{"title":1905,"searchDepth":1906,"depth":1906,"links":7799},[7800,7801,7802,7803,7804,7805,7806,7807,7808,7809],{"id":7255,"depth":1906,"text":7256},{"id":42,"depth":1906,"text":43},{"id":7352,"depth":1906,"text":7353},{"id":7413,"depth":1906,"text":7414},{"id":7563,"depth":1906,"text":7564},{"id":7672,"depth":1906,"text":7388},{"id":7705,"depth":1906,"text":7706},{"id":7726,"depth":1906,"text":7727},{"id":1646,"depth":1906,"text":1647},{"id":1673,"depth":1906,"text":1674},"A small experiment that keeps A\u002FB measurements for 1,000 and 5,000 entities separate from a fixed-condition visual comparison and a project-specific default-value decision.",{},"\u002Fknowledge\u002Fgame\u002Funity\u002Fecs-cohesion-experiment-card",{"title":7247,"description":7810},"knowledge\u002Fgame\u002Funity\u002Fecs-cohesion-experiment-card",[7816,7817,7818,7819,7255],"ecs","boids","cohesion","performance",[7821],"unity","UbQQpfieQP2nRKvYU-nHBVKFb9AJ2cmvD8zsh-dM_v0",{"id":7824,"title":1601,"appliesTo":7825,"body":7828,"description":8295,"extension":1941,"meta":8296,"navigation":1943,"path":8297,"publishedAt":8298,"seo":8299,"status":1947,"stem":8300,"tags":8301,"technologies":8305,"updatedAt":8298,"__hash__":8308},"knowledge_en\u002Fknowledge\u002Fgame\u002Fresearch\u002Fgamescom-2026-game-ai-landscape.md",[7826,7827],"gamescom dev 2026 (August 23-25, 2026)","gamescom 2026 (August 24-30, 2026)",{"type":20,"value":7829,"toc":8278},[7830,7832,7835,7838,7841,7843,7846,7860,7863,7867,7870,7941,7944,7948,7956,7965,7968,7972,7979,7982,7989,7993,8002,8010,8013,8017,8024,8027,8036,8039,8043,8046,8053,8056,8060,8069,8072,8079,8082,8086,8094,8097,8101,8115,8123,8126,8143,8147,8150,8182,8184,8187,8190,8193,8195,8212,8214],[23,7831,26],{"id":25},[28,7833,7834],{},"Gamescom 2026 went beyond generative images and code. Its developer program covered coding agents, autonomous QA, reinforcement-learning playtesting, NPC systems that combine LLMs with conventional game AI, local SLMs, AI animation, neural rendering, intellectual property, and player trust.",[28,7836,7837],{},"Taken in isolation, the announcements can make AI adoption appear more mature than it is. The program mixed released technology, internal case studies, live demonstrations, planned integrations, and engine concepts that have not yet demonstrated production use.",[28,7839,7840],{},"This article uses public materials from gamescom and its official developer conference, gamescom dev, to separate the use cases and their evidence maturity, then connects them to practical game-AI architecture.",[23,7842,43],{"id":42},[28,7844,7845],{},"The central change visible at gamescom 2026 was a shift from asking whether AI could generate an output to asking whether it could be integrated safely into an existing production or runtime system.",[3933,7847,7848,7851,7854,7857],{},[48,7849,7850],{},"Autonomous QA, playtesting, animation assistance, and neural rendering currently have the clearest paths to measurable value.",[48,7852,7853],{},"Gameplay AI is moving toward a division of labor: LLMs handle high-level meaning while reinforcement learning or conventional logic handles real-time execution.",[48,7855,7856],{},"Coding agents are gaining deeper Editor and IDE access, but verification, diff review, and recovery matter more than first-draft speed.",[48,7858,7859],{},"AI acceptance is not determined only by what remains in the final build. Preproduction use, temporary assets, data, consent, rights, and disclosure can all affect trust.",[28,7861,7862],{},"Gamescom 2026 was therefore not the point at which AI began making entire games by itself. It showed more concrete systems for giving AI a bounded role and returning authority to game systems, human judgment, and verification infrastructure.",[23,7864,7866],{"id":7865},"scope-and-evidence-levels","Scope and evidence levels",[28,7868,7869],{},"This article classifies the announcements as follows.",[255,7871,7872,7884],{},[258,7873,7874],{},[261,7875,7876,7879,7881],{},[264,7877,7878],{},"Category",[264,7880,6541],{},[264,7882,7883],{},"Main examples",[280,7885,7886,7897,7908,7919,7930],{},[261,7887,7888,7891,7894],{},[285,7889,7890],{},"Available or used in a concrete product",[285,7892,7893],{},"A released feature or a specific product case",[285,7895,7896],{},"DLSS 4.5, RL playtesting for NHL26",[261,7898,7899,7902,7905],{},[285,7900,7901],{},"Vendor-reported production use",[285,7903,7904],{},"The developer reports production deployment without independent verification",[285,7906,7907],{},"Roco Kingdom, Tencent Motus",[261,7909,7910,7913,7916],{},[285,7911,7912],{},"Demonstration or internal case",[285,7914,7915],{},"A live demonstration or lessons from internal projects",[285,7917,7918],{},"Tencent's FPS agent and autonomous QA",[261,7920,7921,7924,7927],{},[285,7922,7923],{},"Planned integration",[285,7925,7926],{},"A named product and timeframe, without production-version evaluation",[285,7928,7929],{},"NVIDIA ACE support for Aniimo",[261,7931,7932,7935,7938],{},[285,7933,7934],{},"Concept",[285,7936,7937],{},"Direction and design intent rather than a demonstrated workflow",[285,7939,7940],{},"IMMENS as an AI-native engine",[28,7942,7943],{},"When a number or outcome comes from a speaker, developer, or product vendor, that source is identified. A conference abstract does not establish reproducibility or independent performance, so those claims are not generalized beyond their stated case.",[23,7945,7947],{"id":7946},"ai-was-a-major-topic-but-attention-focused-on-critical-evaluation","AI was a major topic, but attention focused on critical evaluation",[28,7949,801,7950,7955],{},[157,7951,7954],{"href":7952,"rel":7953},"https:\u002F\u002Feu-central-1-gamescom.graphassets.com\u002FAMwDHZTUSMaIlRlMFLL7Qz\u002Fcmtfpqwbxaldi08um3e55w71g",[161],"gamescom dev 2026 final report"," records more than 6,200 registered participants, 397 speakers, and 238 sessions. AI in Gameplay and AI in Production had dedicated tracks, and 47% of respondents to the speaker survey identified AI-assisted development as the change most likely to affect the industry over the next three years.",[28,7957,7958,7959,7964],{},"The most-bookmarked regular session, however, was ",[157,7960,7963],{"href":7961,"rel":7962},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUwMDgyNw%3D%3D",[161],"The State of Generative AI in Games: Practices, Perceptions, and Problems",". Rather than arguing simply for adoption, it focused on differences by region, company size, and role, and on the distinction between augmenting people and replacing them.",[28,7966,7967],{},"The strongest interest therefore went not to a single success demo but to a session that combined practice, perception, and problems. AI adoption is becoming an operating-model question: what is delegated, what is verified, and who remains accountable.",[23,7969,7971],{"id":7970},"coding-agents-make-supervision-harder-than-generation","Coding agents make supervision harder than generation",[28,7973,7974,7978],{},[157,7975,7977],{"href":6194,"rel":7976},[161],"Careful What You Wish For: Shipping Games in the First Era of Coding Agents"," described how agents can edit code, compile it, parse errors, and revise it again, while moving the hardest work downstream into review.",[28,7980,7981],{},"The session highlighted duplicated logic, fixes that hide symptoms instead of addressing causes, and synchronization defects that appear after unit tests pass. Its proposed response was to treat agent changes as untrusted input and shift emphasis from generation to validation and verification.",[28,7983,7984,7988],{},[157,7985,7987],{"href":6302,"rel":7986},[161],"JetBrains Rider 2026.2"," similarly connects agents to Unreal Engine skills for code authoring, live debugging, and test authoring, along with coverage, profiling, refactoring, and code-quality hooks. Deeper IDE and Editor access increases the importance of mandatory checks and explicit stop conditions, not just the list of available tools.",[23,7990,7992],{"id":7991},"autonomous-qa-offers-measurable-value-with-a-bounded-failure-domain","Autonomous QA offers measurable value with a bounded failure domain",[28,7994,7995,7996,8001],{},"Electronic Arts presented an ",[157,7997,8000],{"href":7998,"rel":7999},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUwMDg0NQ%3D%3D",[161],"RL playtesting case for NHL26",". A reinforcement-learning forward searched for exploits in a rule-based goalie. A standard RL setup converged on one exploit, while a simple diversity technique produced six exploit strategies in one experiment. The speaker reported that they were qualitatively similar to issues found during hours-long human testing sessions.",[28,8003,8004,8009],{},[157,8005,8008],{"href":8006,"rel":8007},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUxODY2OQ%3D%3D",[161],"Tencent's autonomous-testing session"," described a shift from fixed scripts to goal-driven agents that combine multiple agents, structured game knowledge, and visual perception. The target environments included open worlds, real-time combat, and MMOs where fixed procedures cannot cover the full state space.",[28,8011,8012],{},"Both uses keep failure inside the development environment and leave humans to evaluate the findings. That makes outcomes and failure boundaries easier to define than in player-facing AI, making QA a practical early-adoption target.",[23,8014,8016],{"id":8015},"gameplay-ai-is-dividing-work-among-llms-rl-and-conventional-systems","Gameplay AI is dividing work among LLMs, RL, and conventional systems",[28,8018,8019,8023],{},[157,8020,8022],{"href":4172,"rel":8021},[161],"Tencent's autonomous FPS agent"," demonstrated a dual-brain architecture combining an LLM with reinforcement learning. The LLM handles semantic context, tactics, and high-level player commands; RL handles real-time decisions and action execution.",[28,8025,8026],{},"This is not an architecture in which an LLM controls movement and aiming every frame. The model is constrained to high-level intent, while a lower-latency and more deterministic system remains responsible for execution.",[28,8028,8029,8030,8035],{},"In the ",[157,8031,8034],{"href":8032,"rel":8033},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUwMDgzMA%3D%3D",[161],"Roco Kingdom combat-AI session",", LLMs cluster skill descriptions semantically so the system can generalize to new skills, while Deep RL and related methods make combat decisions. Tencent stated that the system had supported billions of online matches. This is a vendor-reported production claim from the session description, not an independent benchmark.",[28,8037,8038],{},"The direction shown at gamescom is not an LLM replacement for behavior trees, navigation, utility AI, or reinforcement learning. It is an LLM used as a cognitive layer that adds semantic understanding to existing game-AI systems.",[23,8040,8042],{"id":8041},"aniimo-plans-to-connect-a-local-slm-to-behavior-apis","Aniimo plans to connect a local SLM to behavior APIs",[28,8044,8045],{},"NVIDIA announced that the creature-collection RPG Aniimo plans to add NVIDIA ACE support in early 2027. Players are expected to speak to creatures, teach them skills, and dispatch them to gather resources using natural language or voice instead of conventional menus.",[28,8047,8048,8049,8052],{},"According to ",[157,8050,4180],{"href":1868,"rel":8051},[161],", a fine-tuned Nemotron SLM will run on the player's GPU, interpret intent, and trigger the game's behavior APIs.",[28,8054,8055],{},"The important boundary is that the SLM is not the authority over game state. It converts natural language into operations the game can validate. This remains a planned integration: production latency, GPU contention, invalid-action rates, and long-term conversation quality have not yet been established.",[23,8057,8059],{"id":8058},"animation-and-rendering-return-ai-output-to-existing-pipelines","Animation and rendering return AI output to existing pipelines",[28,8061,8062,8063,8068],{},"Tencent's ",[157,8064,8067],{"href":8065,"rel":8066},"https:\u002F\u002Fwww.prnewswire.com\u002Fnews-releases\u002Fbringing-digital-characters-to-life-tencent-games-motus-makes-gamescom-debut-with-end-to-end-ai-animation-pipeline-302861442.html",[161],"Motus AI animation pipeline"," combines rigging, skinning, motion generation from text, video, or keyframes, motion refinement, and real-time facial and body control.",[28,8070,8071],{},"It also targets cleanup problems such as jitter, mesh penetration, joint anomalies, and foot sliding. Tencent demonstrated text-to-3D animation at the event and said Motus technology had been applied across multiple titles. No independent comparison of quality or labor savings was supplied, so those statements remain vendor claims.",[28,8073,8074,8078],{},[157,8075,8077],{"href":1868,"rel":8076},[161],"DLSS 4.5 Ray Reconstruction",", by contrast, is already available. It is not generative asset creation. It uses engine pixel samples and motion data to reconstruct ray-traced imagery through neural rendering.",[28,8080,8081],{},"The phrase “AI in games” now mixes production assistance, NPCs, QA, and rendering. Adoption statistics and acceptance debates should keep these categories separate.",[23,8083,8085],{"id":8084},"ai-native-engines-remain-a-directional-signal","AI-native engines remain a directional signal",[28,8087,8088,8093],{},[157,8089,8092],{"href":8090,"rel":8091},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUzNTE1Mg%3D%3D",[161],"Building a New & European Game Engine in the Age of AI"," introduced IMMENS as a European-hosted engine and proposed replacing menu-centered workflows with agent-centered development.",[28,8095,8096],{},"Its data-sovereignty positioning is notable, but the session did not establish a released production workflow or adoption record. IMMENS is better treated as a signal of how the Editor-agent boundary may change than as a mature alternative to Unreal Engine or Unity.",[23,8098,8100],{"id":8099},"trust-problems-are-surfacing-faster-than-technical-adoption","Trust problems are surfacing faster than technical adoption",[28,8102,8103,8108,8109,8114],{},[157,8104,8107],{"href":8105,"rel":8106},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDUwOTU3Nw%3D%3D",[161],"From Gameplay to Governance"," argued that adoption is moving faster than trust and that governance around client IP, data, ownership, and reputation is becoming a competitive requirement. At gamescom congress, a session applying the ",[157,8110,8113],{"href":8111,"rel":8112},"https:\u002F\u002Fbizcommunity.gamescom.global\u002Fwidget\u002Fevent\u002Fgamescom-biz-2026\u002Fplanning\u002FUGxhbm5pbmdfNDU1Njk5OQ%3D%3D",[161],"UN AI report to game development"," covered intellectual property, transparency, bias, child safety, sustainability, and trustworthy AI.",[28,8116,8117,8118],{},"For 1666: Amsterdam, Patrice Désilets said at gamescom that AI had mainly been used during conception and preproduction, had been removed, and would no longer be used. Removing the material did not automatically remove the distrust created by the earlier use. ",[157,8119,8122],{"href":8120,"rel":8121},"https:\u002F\u002Fwww.gamesradar.com\u002Fgames\u002Faction\u002Fafter-ai-backlash-assassins-creed-creator-says-1666-amsterdam-wont-be-using-any-ai-anymore-and-only-used-it-in-conception-and-pre-production\u002F",[161],"GamesRadar interview",[28,8124,8125],{},"AI disclosure therefore needs to cover more than whether generated content remains in the final build:",[45,8127,8128,8131,8134,8137,8140],{},[48,8129,8130],{},"The production stage and purpose for which AI was used",[48,8132,8133],{},"How rights to input data and outputs were checked",[48,8135,8136],{},"Whether temporary or generated material remains in the product",[48,8138,8139],{},"Who made the final decision and performed quality assurance",[48,8141,8142],{},"What authority AI had over game state, assets, and source code",[23,8144,8146],{"id":8145},"reading-this-alongside-the-existing-articles","Reading this alongside the existing articles",[28,8148,8149],{},"The gamescom 2026 evidence extends the existing articles in the following ways.",[45,8151,8152,8159,8164,8170,8175],{},[48,8153,8154,8158],{},[157,8155,8157],{"href":8156},"\u002Fen\u002Fknowledge\u002Fgame\u002Funreal\u002Funreal-mcp-editor-agent-workflow","How AI agents operate the Editor through Unreal MCP in UE 5.8 and UEFN",": Rider and the gamescom dev discussions add the need to design a verification harness alongside expanded Editor access.",[48,8160,8161,8163],{},[157,8162,6079],{"href":6078},": Deeper Unreal Editor and IDE integration does not change the need to verify the officially permitted paths for Unity.",[48,8165,8166,8169],{},[157,8167,8168],{"href":4250},"A practical adoption path and boundaries for local LLMs in game NPCs (Japanese)",": Tencent's dual-brain system and Aniimo align with limiting the LLM to high-level intent while retaining game-side authority.",[48,8171,8172,8174],{},[157,8173,1989],{"href":1988},": Aniimo is a concrete planned use of a local SLM to convert player intent into behavior APIs rather than merely running a standalone chat model.",[48,8176,8177,8181],{},[157,8178,8180],{"href":8179},"\u002Fen\u002Fknowledge\u002Fgame\u002Fresearch\u002Fryzachat-ai-user-reception","What RyzaChat:AI user reception reveals about conversational RPGs",": Gamescom's backlash examples show that provenance and disclosure affect acceptance independently of conversation quality.",[23,8183,1611],{"id":1610},[28,8185,8186],{},"For a first experiment, autonomous QA, anomalous-behavior search, regression testing, and production-output inspection are appropriate because failures can remain inside development. Results can be measured through findings, reproduction rate, elapsed time, and false positives while humans decide what to accept.",[28,8188,8189],{},"A gameplay LLM should begin as a small cognitive layer that converts natural language into high-level intent. Game state, inventory, quests, and combat outcomes should remain authoritative in conventional game systems, with type, range, and current-state validation before execution.",[28,8191,8192],{},"For coding and Editor agents, define allowed tools, diffs, tests, timeouts, rollback, and review ownership before expanding capability. A practical adoption standard is the ability to explain not only whether AI was used, but what it could change and how those changes were verified.",[23,8194,1647],{"id":1646},[45,8196,8197,8200,8203,8206,8209],{},[48,8198,8199],{},"This article covers public material available through September 2, 2026. It does not include every session recording or non-public roundtable.",[48,8201,8202],{},"Conference descriptions report the speakers' content and takeaways; they are not independent performance verification.",[48,8204,8205],{},"Deployment scope and figures for Tencent Motus and Roco Kingdom come from Tencent's own materials.",[48,8207,8208],{},"NVIDIA ACE support for Aniimo is planned for early 2027 and is not treated as a currently available production feature.",[48,8210,8211],{},"AI, machine learning, reinforcement learning, neural rendering, generative AI, and LLMs have different use cases and risks. Any single “AI adoption” figure needs an explicit classification method.",[23,8213,1674],{"id":1673},[45,8215,8216,8221,8228,8234,8239,8245,8251,8256,8262,8267,8272],{},[48,8217,8218],{},[157,8219,7954],{"href":7952,"rel":8220},[161],[48,8222,8223],{},[157,8224,8227],{"href":8225,"rel":8226},"https:\u002F\u002Fdev.gamescom.global\u002Fconference\u002Fsessions-tracks\u002F",[161],"gamescom dev 2026 Sessions & Tracks",[48,8229,8230],{},[157,8231,8233],{"href":7961,"rel":8232},[161],"The State of Generative AI in Games",[48,8235,8236],{},[157,8237,6196],{"href":6194,"rel":8238},[161],[48,8240,8241],{},[157,8242,8244],{"href":7998,"rel":8243},[161],"RL playtesting for NHL26",[48,8246,8247],{},[157,8248,8250],{"href":8006,"rel":8249},[161],"Tencent autonomous testing",[48,8252,8253],{},[157,8254,4174],{"href":4172,"rel":8255},[161],[48,8257,8258],{},[157,8259,8261],{"href":8032,"rel":8260},[161],"Roco Kingdom combat AI",[48,8263,8264],{},[157,8265,1870],{"href":1868,"rel":8266},[161],[48,8268,8269],{},[157,8270,6304],{"href":6302,"rel":8271},[161],[48,8273,8274],{},[157,8275,8277],{"href":8065,"rel":8276},[161],"Tencent Games Motus announcement",{"title":1905,"searchDepth":1906,"depth":1906,"links":8279},[8280,8281,8282,8283,8284,8285,8286,8287,8288,8289,8290,8291,8292,8293,8294],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":7865,"depth":1906,"text":7866},{"id":7946,"depth":1906,"text":7947},{"id":7970,"depth":1906,"text":7971},{"id":7991,"depth":1906,"text":7992},{"id":8015,"depth":1906,"text":8016},{"id":8041,"depth":1906,"text":8042},{"id":8058,"depth":1906,"text":8059},{"id":8084,"depth":1906,"text":8085},{"id":8099,"depth":1906,"text":8100},{"id":8145,"depth":1906,"text":8146},{"id":1610,"depth":1906,"text":1611},{"id":1646,"depth":1906,"text":1647},{"id":1673,"depth":1906,"text":1674},"A maturity-aware review of gamescom dev 2026 announcements covering coding agents, autonomous QA, gameplay AI, local SLMs, neural rendering, trust, and governance.",{},"\u002Fknowledge\u002Fgame\u002Fresearch\u002Fgamescom-2026-game-ai-landscape","2026-09-02",{"title":1601,"description":8295},"knowledge\u002Fgame\u002Fresearch\u002Fgamescom-2026-game-ai-landscape",[8302,4255,8303,8304],"gamescom-2026","autonomous-testing","ai-governance",[1954,8306,8307],"reinforcement-learning","ai-agents","gQKiM_39LG76wmfmDsp3HPcbcq4wX8ytJmlHyTT3HqY",{"id":8310,"title":8311,"appliesTo":8312,"body":8314,"description":8700,"extension":1941,"meta":8701,"navigation":1943,"path":8702,"publishedAt":310,"seo":8703,"status":1947,"stem":8704,"tags":8705,"technologies":8710,"updatedAt":8298,"__hash__":8712},"knowledge_en\u002Fknowledge\u002Fgame\u002Fresearch\u002Fryzachat-ai-user-reception.md","What RyzaChat:AI User Reception Reveals About Conversational RPGs",[8313],"RyzaChat:AI as of September 1, 2026",{"type":20,"value":8315,"toc":8679},[8316,8318,8325,8328,8331,8333,8336,8347,8350,8353,8357,8360,8363,8366,8369,8373,8376,8393,8396,8399,8403,8406,8409,8426,8429,8432,8436,8439,8442,8445,8451,8454,8457,8461,8464,8467,8481,8484,8487,8491,8494,8497,8502,8506,8509,8513,8516,8520,8523,8527,8530,8534,8537,8541,8544,8548,8551,8555,8558,8561,8575,8578,8582,8602,8604],[23,8317,26],{"id":25},[28,8319,8320,8321,8324],{},"RyzaChat:AI is not only a way to chat freely with characters from ",[3366,8322,8323],{},"Atelier Ryza",". It is described as an “AI chat RPG” in which conversations can affect travel, items, currency, experience, and quests. The officially licensed iOS and Android application launched on August 25, 2026.",[28,8326,8327],{},"The reception reveals a useful tension. People who have played it sometimes praise the character interaction and the RPG mode, where free-form input can change game state. At the same time, they repeatedly criticize a monetization structure that makes them think about the cost or remaining allowance of each exchange. On Reddit, another reaction is prominent: objections to the use of generative AI in an established IP, including from people who could not or did not use the product.",[28,8329,8330],{},"This article does not include firsthand play impressions. It separates store reviews, public records from paying users, media previews, and community reactions, then considers what they reveal about the conditions required for a conversational RPG to work.",[23,8332,43],{"id":42},[28,8334,8335],{},"RyzaChat:AI suggests that natural language alone is not enough to turn AI conversation into a game. Three conditions need to work together:",[3933,8337,8338,8341,8344],{},[48,8339,8340],{},"Game systems that give conversation a purpose and consequences",[48,8342,8343],{},"Continuity across character, world state, and recent events",[48,8345,8346],{},"Enough psychological and financial room to experiment and recover from mistakes",[28,8348,8349],{},"RyzaChat:AI presents a clear answer to the first condition. By connecting conversation to quests, inventory, currency, and experience, it uses AI in a game-master-like role and reduces the “what am I supposed to say?” problem of open-ended chat.",[28,8351,8352],{},"User dissatisfaction is concentrated around the third condition. When every utterance calls attention to tokens or a remaining message allowance, greetings, detours, and corrections begin to feel wasteful. In a game whose value proposition is freedom to talk, friction on speech itself can put monetization in conflict with the core experience.",[23,8354,8356],{"id":8355},"ryzachatai-is-more-than-a-chat-interface","RyzaChat:AI is more than a chat interface",[28,8358,8359],{},"According to the official website and store listings, RyzaChat:AI offers both a chat mode for open conversation and an RPG mode where conversation advances a story. In RPG mode, statements can lead to travel, items and currency, quests, experience, and contribution progression. The application lists more than 30 familiar characters.",[28,8361,8362],{},"The significance of this structure is that it does not ask generated dialogue to be the entire game. It combines interpretation of a conversation with tracked game state, giving free-form input a purpose and a consequence.",[28,8364,8365],{},"Media previews similarly note that quests and parameters keep the experience from becoming aimless chat. When a player's proposed action comes back as a change to inventory, money, or quest state, the result is closer to a tabletop RPG mediated by a game master than to a standalone chatbot.",[28,8367,8368],{},"Some of these reports were based on pre-release builds. They should not be treated as evaluations of long-term play under the launch subscription and token conditions.",[23,8370,8372],{"id":8371},"what-actual-players-value","What actual players value",[28,8374,8375],{},"App Store reviews and a public play report that explicitly discloses paid use contain positive assessments of the core experience even when their overall ratings are negative.",[45,8377,8378,8381,8384,8387,8390],{},[48,8379,8380],{},"Conversation can affect actions, story developments, and items.",[48,8382,8383],{},"Players can propose developments in their own words instead of selecting from fixed options.",[48,8385,8386],{},"Character art, voice, and setting make it easier to feel present in the fictional world.",[48,8388,8389],{},"Quests and contribution progression provide direction.",[48,8391,8392],{},"Multiple save slots make it possible to try different developments.",[28,8394,8395],{},"The important point is not merely that a response can sound natural. The RPG value comes from connecting input to state and changing what happens next.",[28,8397,8398],{},"The official project also explains its rights and production practices. It says that artwork is human-made under the supervision of the original character designer, with no image-generation AI, and that synthesized speech is based on dedicated recordings made with voice actor Yuri Noguchi's consent. It also describes returning part of the revenue to contributors. These are concrete responses to concerns about using generative AI with an established IP.",[23,8400,8402],{"id":8401},"per-message-cost-narrows-free-form-play","Per-message cost narrows free-form play",[28,8404,8405],{},"As checked on September 1, 2026, the Japanese App Store lists a ¥980 monthly plan, a ¥6,000 annual plan, and in-app purchases including conversation tokens. Launch coverage and multiple user reviews describe the monthly plan as allowing 15 exchanges per ten-day period, up to 45 per month. Plans can change, so this is treated as a launch-period condition rather than a permanent specification.",[28,8407,8408],{},"The criticism is more specific than simply saying the product is expensive. Users describe the allowance changing how they play:",[45,8410,8411,8414,8417,8420,8423],{},[48,8412,8413],{},"They avoid greetings and short acknowledgments because each can consume an exchange.",[48,8415,8416],{},"They pack several questions and actions into one message, making the conversation less natural.",[48,8418,8419],{},"They look up information outside the game instead of experimenting inside it.",[48,8421,8422],{},"A misunderstanding or failed answer feels like a financial loss as well as model uncertainty.",[48,8424,8425],{},"Voice consumes more of the allowance, making an appealing feature harder to use.",[28,8427,8428],{},"Detours, small talk, and corrections are part of conversational play. If each message visibly carries a cost, the player stops behaving like someone inside a conversation and starts optimizing a limited number of API calls.",[28,8430,8431],{},"This does not mean that a flat subscription is always correct. Inference, speech generation, and operations have recurring costs. It does mean that onboarding needs enough low-friction use for players to understand the value before anxiety about the balance takes over. It is also worth asking whether text, voice, and long generations—operations with different costs—should be exposed through the same player-facing unit.",[23,8433,8435],{"id":8434},"continuity-failures-damage-a-game-more-than-prose-errors","Continuity failures damage a game more than prose errors",[28,8437,8438],{},"User reviews and preview reports mention role confusion, loss of recent context, lore inconsistencies, and mistakes about characters or payments.",[28,8440,8441],{},"In an ordinary chat, a user may be able to correct an error and continue. In an RPG, a response can affect inventory, currency, relationships, or quest progression. Fluent prose is not enough if it contradicts the authoritative facts of the world.",[28,8443,8444],{},"This suggests the following division of responsibilities for a conversational RPG:",[2063,8446,8449],{"className":8447,"code":8448,"language":2068,"meta":1905},[2066],"Player's free-form input\n  → conversational AI proposes intent and presentation\n  → game code validates actors, inventory, and conditions\n  → authoritative game state is updated\n  → the result is reflected in dialogue and UI\n",[221,8450,8448],{"__ignoreMap":1905},[28,8452,8453],{},"AI can interpret an utterance, produce character-appropriate language, and propose candidate actions. Currency, items, and quest conditions should remain authoritative in the game, with invalid actors or operations rejected by deterministic code.",[28,8455,8456],{},"This is not a claim about RyzaChat:AI's internal architecture. It is a transferable design principle inferred from the public reports.",[23,8458,8460],{"id":8459},"reddit-reactions-are-not-the-same-as-user-reviews","Reddit reactions are not the same as user reviews",[28,8462,8463],{},"JRPG and Atelier communities on Reddit showed strong negative reactions from the announcement onward. Common themes include opposition to generative AI in an established IP, concern about repetitive or bland dialogue, distrust of subscriptions, and discomfort with treating the product as an official extension of the franchise.",[28,8465,8466],{},"Those comments cannot all be counted as product reviews:",[45,8468,8469,8472,8475,8478],{},[48,8470,8471],{},"Some reacted to the announcement without playing.",[48,8473,8474],{},"Some could not access the application because of regional availability.",[48,8476,8477],{},"General opinions about AI are mixed with RyzaChat:AI-specific experience.",[48,8479,8480],{},"Pricing criticism includes both paying users and people reacting to the listed terms.",[28,8482,8483],{},"A smaller number of commenters were interested in combining quests with character conversation, especially because the concept was not limited to romance. Reddit is therefore more useful for understanding a market condition—whether fans accept AI in an established IP—than for measuring response quality.",[28,8485,8486],{},"Official licensing, consent, and revenue-sharing policies can address concrete rights concerns, but they do not remove differences in values about AI. Technical feasibility and legal permission are separate from whether fans want the experience.",[23,8488,8490],{"id":8489},"gamescom-2026-showed-why-provenance-needs-an-explanation","Gamescom 2026 showed why provenance needs an explanation",[28,8492,8493],{},"For 1666: Amsterdam, Patrice Désilets said at gamescom 2026 that AI had mainly been used during conception and preproduction, had already been removed, and would no longer be used. Removing the generated material did not automatically remove the backlash or distrust created by its earlier use.",[28,8495,8496],{},"That case connects to the RyzaChat:AI response in which the fact of AI use affected acceptance before people evaluated conversation quality. For an established IP, disclosure must cover more than whether generated material remains in the final build. It should explain the production stage, the data or expressions involved, consent, and who verified quality and rights.",[28,8498,8499,8500,1387],{},"The broader production, gameplay-AI, and governance context is covered in ",[157,8501,1601],{"href":1600},[23,8503,8505],{"id":8504},"design-principles-for-conversational-rpgs","Design principles for conversational RPGs",[28,8507,8508],{},"The reception supports several principles that can be applied beyond this product.",[149,8510,8512],{"id":8511},"give-conversation-a-game-purpose","Give conversation a game purpose",[28,8514,8515],{},"With only an empty input box, players may not know what to discuss. Connecting dialogue to quests, locations, inventory, and relationships gives the conversation direction and allows its results to affect the next decision.",[149,8517,8519],{"id":8518},"separate-free-form-input-from-deterministic-state","Separate free-form input from deterministic state",[28,8521,8522],{},"Generated prose should not become the authoritative state. Convert proposed intent into typed operations and let game code validate permissions and conditions.",[149,8524,8526],{"id":8525},"provide-enough-attempts-before-monetization-pressure-dominates","Provide enough attempts before monetization pressure dominates",[28,8528,8529],{},"The value of AI conversation emerges through a sequence that includes detours and failures, not only a few correct answers. If the free or included range is too short, players see cost before they understand the experience.",[149,8531,8533],{"id":8532},"distinguish-operating-cost-from-the-players-unit-of-play","Distinguish operating cost from the player's unit of play",[28,8535,8536],{},"The operator may incur cost per inference, but the interface does not have to make the player think in those units. Chapters, sessions, time, frequency, and optional voice features may fit game pacing better than a visible charge for every utterance.",[149,8538,8540],{"id":8539},"evaluate-character-fidelity-in-layers","Evaluate character fidelity in layers",[28,8542,8543],{},"Character fidelity is not only prose. Art, voice, vocabulary, world knowledge, relationships, and continuity over a long conversation should be evaluated separately before deciding which layers AI should control.",[149,8545,8547],{"id":8546},"treat-non-user-rejection-as-a-product-constraint","Treat non-user rejection as a product constraint",[28,8549,8550],{},"Some people will not try the product because it uses AI. For an established IP, transparency about production, consent, revenue sharing, and data use is as important as technical specifications.",[23,8552,8554],{"id":8553},"what-cannot-be-concluded-yet","What cannot be concluded yet",[28,8556,8557],{},"On September 1, 2026, the Japanese App Store showed an average of 2.0 from 454 ratings. That is a useful signal of strong dissatisfaction immediately after launch, but it does not establish long-term success or failure. Pricing changes, product improvements, and regional expansion may change the result.",[28,8559,8560],{},"Public information also does not establish:",[45,8562,8563,8566,8569,8572],{},[48,8564,8565],{},"The model used for conversation or the architecture that updates game state",[48,8567,8568],{},"A consistent measurement of response failures, continuity, or character fidelity",[48,8570,8571],{},"Retention among paying users or satisfaction among users who did not post reviews",[48,8573,8574],{},"The extent of the RPG systems after prolonged play",[28,8576,8577],{},"This article uses limited public evidence to examine the conditions for a conversational RPG. It does not judge the product's overall quality or business outcome, and it is not an evaluation of a local LLM deployment.",[23,8579,8581],{"id":8580},"scope-and-caveats","Scope and caveats",[45,8583,8584,8587,8590,8593,8596,8599],{},[48,8585,8586],{},"RyzaChat:AI sources were checked through September 1, 2026, and the gamescom supplement through September 2, 2026.",[48,8588,8589],{},"No firsthand play experience is included.",[48,8591,8592],{},"Store reviews and personal posts cannot verify a user's circumstances beyond what the author disclosed.",[48,8594,8595],{},"Pre-release previews were not used as evidence about launch pricing or long-term use.",[48,8597,8598],{},"Reddit reactions were treated as supporting evidence about AI and IP acceptance, not as equivalent to player reviews.",[48,8600,8601],{},"Prices, message allowances, ratings, and review counts can change.",[23,8603,1674],{"id":1673},[45,8605,8606,8613,8620,8627,8634,8641,8648,8655,8662,8669,8675],{},[48,8607,8608],{},[157,8609,8612],{"href":8610,"rel":8611},"https:\u002F\u002Fryzachat-ai.go-spiral.ai\u002F",[161],"RyzaChat:AI official website",[48,8614,8615],{},[157,8616,8619],{"href":8617,"rel":8618},"https:\u002F\u002Fapps.apple.com\u002Fjp\u002Fapp\u002Fryzachat-ai\u002Fid6763540981",[161],"RyzaChat:AI - App Store",[48,8621,8622],{},[157,8623,8626],{"href":8624,"rel":8625},"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=ai.gospiral.atelierryza",[161],"RyzaChat:AI - Google Play",[48,8628,8629],{},[157,8630,8633],{"href":8631,"rel":8632},"https:\u002F\u002Fwww.itmedia.co.jp\u002Fnews\u002Farticle\u002F2608\u002F25\u002F2000000774\u002F",[161],"Launch pricing and user reaction - ITmedia NEWS",[48,8635,8636],{},[157,8637,8640],{"href":8638,"rel":8639},"https:\u002F\u002Fnote.com\u002Fkinjo_0824\u002Fn\u002Fn4f4d172de229",[161],"A public record of paid RyzaChat:AI use - note",[48,8642,8643],{},[157,8644,8647],{"href":8645,"rel":8646},"https:\u002F\u002Fwww.4gamer.net\u002Fgames\u002F029\u002FG102959\u002F20260731041\u002F",[161],"RyzaChat:AI preview - 4Gamer.net",[48,8649,8650],{},[157,8651,8654],{"href":8652,"rel":8653},"https:\u002F\u002Fwww.4gamers.com.tw\u002Fnews\u002Fdetail\u002F81584\u002Fryzachat-ai-release-early-access-review",[161],"RyzaChat:AI early-access preview - 4Gamers",[48,8656,8657],{},[157,8658,8661],{"href":8659,"rel":8660},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FJRPG\u002Fcomments\u002F1vf1bs2\u002Fatelier_ryza_ai_chat_rpg_announced_developers\u002F",[161],"Announcement reaction - Reddit \u002F r\u002FJRPG",[48,8663,8664],{},[157,8665,8668],{"href":8666,"rel":8667},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAtelier\u002Fcomments\u002F1vx37ef\u002Fgust_what_even_is_this_ryzachat_ai\u002F",[161],"Launch-period reaction - Reddit \u002F r\u002FAtelier",[48,8670,8671],{},[157,8672,8674],{"href":8120,"rel":8673},[161],"Gamescom interview about AI use in 1666: Amsterdam - GamesRadar",[48,8676,8677],{},[157,8678,1601],{"href":1600},{"title":1905,"searchDepth":1906,"depth":1906,"links":8680},[8681,8682,8683,8684,8685,8686,8687,8688,8689,8697,8698,8699],{"id":25,"depth":1906,"text":26},{"id":42,"depth":1906,"text":43},{"id":8355,"depth":1906,"text":8356},{"id":8371,"depth":1906,"text":8372},{"id":8401,"depth":1906,"text":8402},{"id":8434,"depth":1906,"text":8435},{"id":8459,"depth":1906,"text":8460},{"id":8489,"depth":1906,"text":8490},{"id":8504,"depth":1906,"text":8505,"children":8690},[8691,8692,8693,8694,8695,8696],{"id":8511,"depth":1914,"text":8512},{"id":8518,"depth":1914,"text":8519},{"id":8525,"depth":1914,"text":8526},{"id":8532,"depth":1914,"text":8533},{"id":8539,"depth":1914,"text":8540},{"id":8546,"depth":1914,"text":8547},{"id":8553,"depth":1906,"text":8554},{"id":8580,"depth":1906,"text":8581},{"id":1673,"depth":1906,"text":1674},"A source-separated analysis of RyzaChat:AI store reviews, public play reports, and Reddit reactions, focused on the design and monetization conditions required for an AI-driven conversational RPG.",{},"\u002Fknowledge\u002Fgame\u002Fresearch\u002Fryzachat-ai-user-reception",{"title":8311,"description":8700},"knowledge\u002Fgame\u002Fresearch\u002Fryzachat-ai-user-reception",[8706,8707,8708,8709],"ryzachat-ai","game-research","conversational-ai","monetization",[1954,8711],"game-design","l0iy7TJYp5UEoTFi1YdC731v4bTzDcd44CJCyQj0sMY",1791891817831]