zc
This commit is contained in:
140
Tools/task_handoff.md
Normal file
140
Tools/task_handoff.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# WulaLink 任务交接文档
|
||||
|
||||
## 当前状态:需要创建 AIIntelligenceCore.cs
|
||||
|
||||
### 背景
|
||||
WulaLink 是一个 RimWorld Mod 中的 AI 对话系统,包含两个 UI:
|
||||
1. **大 UI** (`Dialog_AIConversation`) - 全屏对话窗口
|
||||
2. **小 UI** (`Overlay_WulaLink`) - 悬浮对话窗口
|
||||
|
||||
### 已完成的操作
|
||||
1. ✅ 恢复了 `Dialog_AIConversation.cs` 为旧版自包含版本(从备份文件 `Tools/using System;.cs` 复制)
|
||||
2. ✅ 删除了损坏的 `AIIntelligenceCore.cs`
|
||||
3. ✅ 重写了 `WulaLinkStyles.cs`(颜色主题配置)
|
||||
|
||||
### 当前编译错误
|
||||
```
|
||||
error CS0246: 未能找到类型或命名空间名"AIIntelligenceCore"
|
||||
```
|
||||
|
||||
以下文件引用了 `AIIntelligenceCore`:
|
||||
- `Overlay_WulaLink.cs` (第13行, 第94行)
|
||||
- `Overlay_WulaLink_Notification.cs` (第89行)
|
||||
- `Tool_ChangeExpression.cs` (第24行)
|
||||
- `Tool_GetRecentNotifications.cs` (第113行)
|
||||
|
||||
---
|
||||
|
||||
## 需要完成的任务
|
||||
|
||||
### 任务:创建 AIIntelligenceCore.cs
|
||||
|
||||
**路径**: `Source/WulaFallenEmpire/EventSystem/AI/AIIntelligenceCore.cs`
|
||||
|
||||
**要求**:
|
||||
1. 必须是 `WorldComponent`,类名 `AIIntelligenceCore`
|
||||
2. 提供 `static Instance` 属性供外部访问
|
||||
3. 从 `Dialog_AIConversation`(备份文件 `Tools/using System;.cs`)提取 AI 核心逻辑
|
||||
4. 暴露事件/回调供 UI 使用
|
||||
|
||||
**必须包含的公共接口**(根据现有代码引用):
|
||||
```csharp
|
||||
public class AIIntelligenceCore : WorldComponent
|
||||
{
|
||||
// 静态实例
|
||||
public static AIIntelligenceCore Instance { get; private set; }
|
||||
|
||||
// 事件回调
|
||||
public event Action<string> OnMessageReceived;
|
||||
public event Action<bool> OnThinkingStateChanged;
|
||||
public event Action<int> OnExpressionChanged;
|
||||
|
||||
// 公共属性
|
||||
public int ExpressionId { get; }
|
||||
public bool IsThinking { get; }
|
||||
|
||||
// 公共方法
|
||||
public void InitializeConversation(string eventDefName);
|
||||
public List<(string role, string message)> GetHistorySnapshot();
|
||||
public void SetExpression(int id); // 供 Tool_ChangeExpression 调用
|
||||
public void SendMessage(string text); // 供小 UI 调用
|
||||
}
|
||||
```
|
||||
|
||||
**参考代码**:
|
||||
- 备份文件 `Tools/using System;.cs` 包含完整的 AI 逻辑(1549行)
|
||||
- 核心方法包括:
|
||||
- `RunPhasedRequestAsync()` - 3阶段请求处理
|
||||
- `ExecuteXmlToolsForPhase()` - 工具执行
|
||||
- `BuildToolContext()` / `BuildReplyHistory()` - 上下文构建
|
||||
- `ParseResponse()` - 响应解析
|
||||
- `GetSystemInstruction()` / `GetToolSystemInstruction()` - 提示词生成
|
||||
|
||||
---
|
||||
|
||||
## 关键文件路径
|
||||
|
||||
```
|
||||
C:\Steam\steamapps\common\RimWorld\Mods\3516260226\
|
||||
├── Tools\
|
||||
│ └── using System;.cs # 旧版 Dialog_AIConversation 备份(包含完整 AI 逻辑)
|
||||
└── Source\WulaFallenEmpire\EventSystem\AI\
|
||||
├── AIIntelligenceCore.cs # 【需要创建】
|
||||
├── AIHistoryManager.cs # 历史记录管理
|
||||
├── AIMemoryManager.cs # 记忆管理
|
||||
├── SimpleAIClient.cs # API 客户端
|
||||
├── Tools\ # AI 工具目录
|
||||
│ ├── Tool_SpawnResources.cs
|
||||
│ ├── Tool_SendReinforcement.cs
|
||||
│ └── ... (其他工具)
|
||||
└── UI\
|
||||
├── Dialog_AIConversation.cs # 大 UI(已恢复)
|
||||
├── Overlay_WulaLink.cs # 小 UI(需要修复引用)
|
||||
├── Overlay_WulaLink_Notification.cs
|
||||
└── WulaLinkStyles.cs # 样式配置(已重写)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 编译命令
|
||||
|
||||
```powershell
|
||||
dotnet build C:\Steam\steamapps\common\RimWorld\Mods\3516260226\Source\WulaFallenEmpire\WulaFallenEmpire.csproj
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 架构说明
|
||||
|
||||
### 目标架构
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ AIIntelligenceCore │ ← WorldComponent (核心逻辑)
|
||||
│ - 历史记录管理 │
|
||||
│ - AI 请求处理 (3阶段) │
|
||||
│ - 工具执行 │
|
||||
│ - 表情/状态管理 │
|
||||
└──────────────┬──────────────────────┘
|
||||
│ 事件回调
|
||||
┌──────────┴──────────┐
|
||||
▼ ▼
|
||||
┌─────────────┐ ┌──────────────┐
|
||||
│ Dialog_AI │ │ Overlay_ │
|
||||
│ Conversation│ │ WulaLink │
|
||||
│ (大 UI) │ │ (小 UI) │
|
||||
└─────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
### 关键点
|
||||
1. `Dialog_AIConversation` 目前是**自包含**的(既有 UI 也有 AI 逻辑)
|
||||
2. `Overlay_WulaLink` 需要通过 `AIIntelligenceCore` 获取数据
|
||||
3. 两个 UI 可以共享同一个 `AIIntelligenceCore` 实例
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **不要使用 PowerShell Get-Content 读取文件** - 会显示乱码,请使用 `view_file` 工具
|
||||
2. **备份文件编码正常** - `Tools/using System;.cs` 可以正常读取
|
||||
3. **命名空间**:`WulaFallenEmpire.EventSystem.AI`
|
||||
4. **依赖项**:需要引用 `SimpleAIClient`、`AIHistoryManager`、`AITool` 等现有类
|
||||
Reference in New Issue
Block a user