ui.html (1956行) + proxy.php (2005行) + config.enc.php — 完整数据流与功能映射
| 用户操作 | 前端函数 | 通信方式 | proxy.php 处理 | 结果 |
|---|---|---|---|---|
| 发送消息 | runAgentLoop | proxyRequest POST + _token |
API代理 → curl → LLM | 返回 choices[0].message 若有 tool_calls → 执行工具 |
| 开始MUD游戏 | runAgentLoop 拦截"开始泥巴游戏" |
apiCall mud_action |
GameEngine initNewGame() |
返回 state + game_output 前端设 mudActive=true |
| MUD 叙事输入 | runAgentLoop 不拦截,走LLM |
proxyRequest MiniMax-M2.7 |
API代理 → MiniMax + mud_action tool |
LLM叙事 + 配图/语音 GameEngine 更新状态 |
| 图片生成 | image_generation tool handler |
proxyRequest /image_generation |
API代理 → MiniMax image-01 模型 |
返回 image_urls saveMediaToUser → 用户目录 |
| 文件读写 | read/write/edit tool handler |
apiCall file_read/write/edit |
文件系统 users/{user}/ |
直接读写文件 100MB 配额限制 |
| 登录/注册 | handleAuth | apiCall login/register |
用户系统 session + bcrypt |
返回 accessToken 后续请求携带 _token |
| 记忆注入 | fetchMemoryContext Agent Loop 前 |
apiCall memory/search |
MySQL 语义搜索 + 画像 |
注入 system prompt 增强上下文理解 |
| 机制 | 前端 (ui.html) | 后端 (proxy.php) |
|---|---|---|
| API Key 轮换 | 无感知,proxyRequest 自动重试 | 3供应商 × 多Key 429 → 自动切换 · cooldown · 日切 |
| Token 认证 | accessToken 从 get_proxy_token 获取 |
ACCESS_TOKEN config.enc.php 加密存储 |
| 上下文压缩 | TokenEstimator 超阈值 → compactContext |
LLM 摘要 通过 /chat/completions |
| MUD 模型切换 | mudActive → MiniMax-M2.7 !mudActive → deepseek-v4-flash |
按 _provider 路由到不同供应商 |
| 记忆加密 | 无感知 | AES-256-GCM 用户级密钥派生 · MySQL + JSONL |
| 配额保护 | _xxxQuotaExhausted 会话级禁止重复调用 |
100MB/用户 checkMemoryQuota · dirSize |
CmdCode-Solo Architecture · Generated 2026-06-02 · ui.html v1956L · proxy.php v2005L