Cách Stage Whisper Giải Quyết Vấn Đề 'NPC Biết Tuốt': Kiến Trúc Cô Lập Ngữ Cảnh

NPC có thể trích dẫn điều nhân vật của tôi đã nói ba phiên trước thật sự rất tuyệt. Hệ thống bộ nhớ đang hoạt động. NPC đang tham chiếu các sự kiện trong quá khứ, trích dẫn những điều tôi đã nói. NHƯNG, nó cũng bắt đầu một vấn đề khác: NPC bắt đầu biết tuốt.

Đây là một đoạn trích từ một phiên gần đây, phần liên quan được tô đậm:

"Vậy," cô ấy nói, giọng vang lên dễ dàng qua tiếng xào xạc của lá, "lý do thực sự anh đến tìm tôi là gì? Tò mò, hay anh chỉ đang cố tránh việc dọn dẹp cái bàn bừa bộn của mình?"

Điều đó đang tham chiếu một điều đã xảy ra trong một cảnh hoàn toàn khác mà nhân vật này không có mặt. Nhân vật đó không có cách nào để biết.

Những sự không nhất quán nhỏ như thế này làm phá vỡ sự đắm chìm. Nhưng trong các trường hợp khác, nó có thể phá vỡ trò chơi. Ví dụ, tôi có một chiến dịch nơi nhân vật của tôi là một ma cà rồng bí mật điều hướng một thế giới của những con người không nghi ngờ. NPC bắt đầu tình cờ gợi ý rằng họ biết bí mật của tôi, điều này đột nhiên làm cho việc sống qua ngày mà không bị nghi ngờ trở nên rất khó khăn. Hoặc trong các ví dụ khác, nếu tôi đánh cắp một cổ vật trong một vụ trộm, người chơi là người đã đánh cắp cổ vật trong một vụ trộm, và sau đó một nhân vật không liên quan đưa ra những bình luận đáng ngờ.

AI về cơ bản quyết định sử dụng bất kỳ và tất cả bí mật có sẵn trong ngữ cảnh cho hiệu ứng kịch tính, điều lẽ ra chỉ nên xảy ra rất thỉnh thoảng vì lý do cốt truyện.

Vậy tại sao tôi không thể chỉ bảo AI đừng làm điều này?

Vấn đề là bạn đang cố đạt được một điều phủ định. "Đừng sử dụng thông tin này." Đó là một nhiệm vụ về cơ bản khác và khó hơn nhiều so với trường hợp khẳng định: hãy sử dụng thông tin có ở đó. Để huấn luyện một mô hình bỏ qua ngữ cảnh liên quan, bạn cần hàng nghìn ví dụ về các tình huống nơi thông tin rõ ràng có sẵn nhưng đầu ra cố tình không sử dụng nó. Đó gần như là đối nghịch với những gì AI được thiết kế để làm. Đối với hầu hết các tác vụ, bỏ qua ngữ cảnh hữu ích sẽ là thất bại trong công việc.

Có thể một mô hình có thể được huấn luyện với nhiều ví dụ hơn về việc không hành động dựa trên bí mật. Nhưng tường thuật và nhập vai chưa phải là trọng tâm lớn đối với các nhà tạo mô hình cho đến nay, vì vậy vấn đề này chưa nhận được sự chú ý xứng đáng.


Tôi nhận ra mình phải sửa điều này trong chiến dịch ma cà rồng bí mật đó. Chiến dịch được thiết lập để nhân vật của tôi có thể qua mặt như một con người bình thường hầu hết thời gian, và toàn bộ mục đích là điều hướng sự căng thẳng đó mà không bị bắt. Sẽ là một khoảnh khắc tường thuật lớn khi bất kỳ NPC nào phát hiện ra bí mật, vì sau đó họ sẽ cần được thuyết phục giữ im lặng về nó.

Điều tôi phát hiện ra là hầu như mọi kẻ thù tiềm năng đều biết. Mặc dù tôi chưa tiết lộ bất cứ điều gì. Và điều đó ngay lập tức phá vỡ cốt truyện. Nó cảm thấy như có một tấm biển lớn trên đầu tôi thông báo rằng tôi là ma cà rồng. Nhân vật của tôi liên tục kiểm soát thiệt hại, hoặc cảm thấy như mọi nhân vật đều có lợi thế hơn.

Tôi đã thử nghiệm với các prompt trong một thời gian dài. Cuối cùng tôi nhận ra mình sẽ phải không đưa thông tin vào ngữ cảnh ngay từ đầu.

Giải pháp, sau đó, là cô lập ngữ cảnh. Nếu AI không thể không sử dụng bất cứ thứ gì nó thấy, thì thông tin thực sự không được có ở đó. Điều này có thể đạt được trong Stage Whisper vì mỗi cảnh và ký ức đã được gắn thẻ với các NPC xuất hiện trong đó, vì vậy chúng ta có thể dễ dàng lọc để chỉ bao gồm các nhân vật thực sự có mặt.

Nhưng đây là điểm mấu chốt. Một số bí mật là động lực cốt truyện chính. Bạn không thể xóa chúng hoàn toàn, vì câu chuyện vẫn cần tính đến chúng. Dù là một vụ trộm, hay một ma cà rồng bí mật, những bí mật đó là cốt lõi của tường thuật, và nó sẽ không phải là cùng một câu chuyện nếu không có chúng.

Vì vậy, chúng tôi phải chia việc tạo văn bản làm hai.

Phần đầu tiên tôi gọi là Story Director. Nó chỉ đạo toàn bộ câu chuyện: cốt truyện, các nhịp tường thuật. Nó có tất cả các bí mật và có thể quyết định cách tốt nhất để xoay chuyển câu chuyện dựa trên những bí mật đó. Nó hiểu bức tranh toàn cảnh, bao gồm cả những điều không có nhân vật nào nên biết.

Phần thứ hai tôi gọi là Scene Director. Nó "diễn" cảnh được giao bởi Story Director. Nó có quyền truy cập vào tất cả ký ức và cá tính NPC liên quan, vì vậy nó có đủ thông tin để chơi tất cả NPC và cung cấp một số tường thuật xen kẽ, nhưng nó thực sự không biết các bí mật.

Một số thông tin cần được truyền từ cái này sang cái kia, để chúng có thể làm việc trên cùng một câu chuyện mà không làm việc chống lại nhau.


Story Director tạo ra một bản tóm tắt cho Scene Director biết mọi thứ nó cần biết. Nó trông như thế này:

<synopsis>
  Elian trở về phòng 314 với Maeve, các lá chắn riêng tư quen thuộc mang lại khoảnh khắc nghỉ ngơi ngắn ngủi khỏi sự chú ý tập trung trong màn trình diễn ngoạn mục của họ. Nhận thấy Maeve cần học tập sau một ngày bất thường, Elian quyết định rời phòng để khám phá một mình
  <npc_list>maeve-corwin</npc_list>
  <location>room-314</location>
  <new_scene/>
</synopsis>

Điều này cho Scene Director biết điều gì đang xảy ra trong cảnh, nó ở đâu, ai trong đó và liệu đó có phải là cảnh mới không. Sự hiện diện của nhân vật người chơi được ngầm hiểu. Story Director cũng có thể tùy chọn phát ra lời nói ngoài vai trò cho người chơi và thực hiện các ghi chú hiệu suất chi tiết để sử dụng trong tương lai.

Hai director không nhìn thấy cùng một ngữ cảnh. Đây là sự phân chia:

Story Director thấy:

Đây là mọi thứ Story Director cần để đưa ra quyết định cốt truyện thú vị, nhất quán. Đó là rất nhiều dữ liệu, nhưng bộ nhớ đệm KV giữ chi phí ở mức quản lý được.

Scene Director thấy:

Đây là một góc nhìn được cố tình thu nhỏ. Scene Director có mọi thứ nó cần để chạy cảnh và không có gì nó không nên có.

Hai hồ sơ nhân vật

Sự khác biệt giữa hồ sơ công khai và hồ sơ đầy đủ của nhân vật người chơi là chìa khóa. Story Director cần biết chi tiết đầy đủ và tất cả bí mật để tạo ra câu chuyện. Nhưng Scene Director không nên biết những chi tiết đó. Nó vẫn cần biết nhân vật người chơi là ai về mặt thể chất, ngoại hình, danh tiếng công khai, những thứ bất kỳ NPC nào cũng có thể biết chỉ từ việc ở gần họ. Duy trì một hồ sơ công khai riêng biệt có nghĩa là Scene Director luôn có ngữ cảnh đó mà không bao giờ cần truy cập vào bí mật.

Lọc ký ức theo cảnh

Mỗi cảnh được gắn thẻ với NPC nào có mặt. Điều này có nghĩa là chúng ta biết chính xác cảnh nào gần đây có liên quan đến mỗi NPC, và chúng ta thêm những cảnh đó vào ngữ cảnh của Scene Director. Giả định là các cảnh trong phiên hiện tại có liên quan cao. Đối với các ký ức cũ hơn, tìm kiếm ngữ nghĩa làm nổi bật những cái có thể quan trọng.

Kết quả là một Scene Director thực sự không thể biết những điều mà các nhân vật trong cảnh không biết. Không phải vì nó được bảo là không được, mà vì thông tin đó thực sự không có ở đó.


Tôi đã chạy một chiến dịch nơi nhân vật của tôi là một phụ nữ con người phải ăn mặc như đàn ông để đảm bảo tước hiệu gia đình của cô ấy như một quý tộc nhỏ, do luật thừa kế. Đó là một chiến dịch hài kịch nhẹ nhàng và nó có một vài kịch bản hài hước đến từ sự nhầm lẫn giới tính đó.

Nếu không có hệ thống này, thường không có cách nào để làm ngạc nhiên NPC. Tất cả đều cư xử như thể họ nghi ngờ điều gì đó. Có thể không trực tiếp, nhưng cách họ nói chuyện với bạn luôn có cạnh này của sự biết. Thật khó để diễn tả, nhưng bạn có thể cảm nhận nó. Sự căng thẳng kịch tính của một danh tính bí mật chỉ không có ở đó.

Nhưng với hệ thống này, NPC chơi nó hoàn toàn thẳng thắn. Họ không biết gì. Và các cảnh nơi tiết lộ lớn xảy ra thực sự đúng đắn, vì cho đến thời điểm đó không có một ám chỉ nào về nó. Hài kịch hoạt động vì khán giả, các NPC, thực sự không thấy nó đến.

Có một trường hợp ngoại lệ. Vì Scene Director không biết bí mật chính xác, thỉnh thoảng nó tạo ra các chi tiết không chính xác về mặt giải phẫu. Điều này khó tránh, vì Scene Director đang làm việc từ một hồ sơ nhân vật công khai không bao gồm những chi tiết đó. Giải pháp thay thế sẽ là thêm một bước thứ ba: Story Director xem xét cảnh đã tạo trước khi nó được gửi đi, để bắt bất kỳ sự khác biệt nào như thế này. Điều đó thêm chi phí và độ trễ, vì vậy nó nằm trong lộ trình nhưng chưa được triển khai.

Một điều làm tôi ngạc nhiên: khi một bí mật được tiết lộ trong trò chơi, nó lan truyền một cách tự nhiên. Scene Director giữ các cảnh đã tạo trước đó, vì vậy một khi NPC học được điều gì đó trong một cảnh, điều đó trở thành một phần ngữ cảnh của chúng cho lượt tiếp theo. Vào cuối các cảnh, những cảnh đó tạo thành ký ức cho NPC. Vào cuối các phiên, hồ sơ NPC được cập nhật. Cả hai điều này có nghĩa là kiến thức của một NPC cụ thể về một bí mật được ghi lại và câu chuyện có thể tiếp tục với NPC đó thực sự biết.


Sự đánh đổi

Cách tiếp cận này không miễn phí. Chi phí tăng lên, mặc dù không phải gấp đôi, vì ngữ cảnh của Scene Director tương đối nhẹ. Bộ nhớ đệm prompt cũng giúp ích đáng kể. Khi cảnh diễn ra, các lượt mới được thêm vào cuối ngữ cảnh, có nghĩa là 90% prompt có thể đến từ bộ nhớ đệm thay vì được tạo lại mỗi lần.

Hiện tại nó được bật cho tất cả các chiến dịch. Các thay đổi kiến trúc đủ đáng kể đến nỗi không có ý nghĩa khi cung cấp một con đường bỏ qua thiết lập này. Đối với hầu hết các chiến dịch, sự đánh đổi là xứng đáng, ngay cả khi câu chuyện của bạn không có bí mật lớn, vì tính nhất quán của NPC vẫn quan trọng bất kể.

Điều này mở ra: Game Director

Đường ống hai giai đoạn chứng minh một điều hữu ích: chia tác vụ giữa các AI chuyên biệt hơn với ngữ cảnh được tối ưu hóa cho kết quả tốt hơn so với một AI làm mọi thứ. Điều đó dẫn đến một giai đoạn thứ ba tự nhiên.

Tôi gọi nó là Game Director. Công việc của nó là xử lý các cơ chế TTRPG: tung xúc xắc, kiểm tra kỹ năng, theo dõi trạng thái. Ngữ cảnh của nó có thể được tối ưu hóa khác với các cái khác, vì nó ít quan tâm đến lịch sử tường thuật và hơn về luật trò chơi và trạng thái trò chơi.

Thêm Game Director có một lợi ích bất ngờ. Vì nó chạy mỗi lượt trong trường hợp người chơi thử điều gì đó xứng đáng kiểm tra kỹ năng, nó cũng có thể quyết định liệu đầu vào của người chơi là tiếp tục cảnh cuối hay một cái gì đó mới. Nếu người chơi chỉ đang trò chuyện với NPC mà không tiến triển cốt truyện, Game Director có thể bỏ qua Story Director hoàn toàn và để Scene Director tiếp tục cảnh một mình. Scene Director có hồ sơ NPC và có thể thực hiện tìm kiếm bộ nhớ, vì vậy nó có thể tiếp tục hội thoại như thế này mà không cần chi phí của một cuộc gọi Story Director đầy đủ.

Đây là hướng mà kiến trúc đang đi: một đường ống ba giai đoạn ngày càng chuyên biệt hơn, với các tối ưu hóa tiết kiệm chi phí được xây dựng ở mọi lớp.


Stage Whisper được xây dựng cho những người muốn chơi TTRPG một người chơi với chiều sâu và tính nhất quán của một chiến dịch dài hạn. Hệ thống bộ nhớ, bao gồm kiến trúc cô lập ngữ cảnh này, là điều làm cho điều đó khả thi. Bắt đầu hoặc tham gia Discord của chúng tôi để xem nó hoạt động như thế nào trong thực tế.

Để biết thêm về hệ thống bộ nhớ của Stage Whisper, xem Phần 1: Tính Nhất Quán Tường ThuậtPhần 3: NPC Mơ.