v0.3.0: 模型与设置(目录/API key/模型切换/系统提示词)

This commit is contained in:
Rick Ye
2026-09-05 09:41:57 +08:00
parent 9984e2a427
commit fe70cb0f71
11 changed files with 631 additions and 8 deletions
+17
View File
@@ -31,6 +31,23 @@
4. **cwd 固定为 home**——会话按 cwd 分组,工作区切换(店铺 A/店铺 B 各自会话域)还没设计;等 `packages/agent` 业务域明确后一起做。
5. **键盘链路仍未人工实测**(computer-use 无法激活窗口);冒烟+截图继续兜底,但 Enter 发送/Shift+Enter 换行/重命名快捷键需要用户实机过一遍。
## v0.3.0 — 模型与设置
**交付**:
- 模型目录:`ModelRuntime.getProviders/getModels/listCredentials` → 41 个 provider 全量分组展示(含 deepseek/anthropic/openai/google/zai 等),行内显示 推理/上下文窗口
- API key 管理:`modelRuntime.login(providerId,'api_key',{prompt})` 持久化写入 `~/.pi/agent/auth.json`(与 pi CLI 完全共享),支持更换/移除(logout)
- 模型切换:`session.setModel(model,{persist:true})`,选中态高亮 + `state` 事件同步侧栏
- 系统提示词:应用设置存 `userData/aso-settings.json`,经 `resourceLoaderOptions.systemPrompt` 注入;保存后运行时整体重建(dispose + continueRecent 重挂当前最近会话,历史保留)
- 设置弹窗:双标签页(模型与密钥 / 系统提示词)、搜索过滤、密钥输入(password 型)、操作通知条;侧栏齿轮入口
- 验证:typecheck/build;Node 冒烟(login→auth.json 写入→setModel→logout 移除、systemPrompt 生效);应用截图 + a11y 树核验弹窗完整渲染与交互(齿轮点击成功打开)
**自省**(v0.3.0 → 指导 v0.4+):
1. **模型列表太长**——41 个 provider 全量平铺,滚动找模型体验一般;虽然已按"已配置凭据优先"排序,但缺少"仅显示已配置"开关和常用置顶。排 v0.5。
2. **OAuth 流程未接**——`login(providerId,'oauth')` 需要 auth_url/device_code 的 UI 交互(AuthInteraction.notify),当前只支持 API key。GitHub Copilot 等 OAuth-only provider 暂时用不了。排 v0.4 或 v0.5(优先级低于业务工具)。
3. **密钥无连通性测试**——保存假 key 也能存上,要到真正发消息才 401。应加"测试连接"(发一次极小请求)。排 v0.5。
4. **系统提示词重建成本**——保存提示词会整体重建 runtime(重新加载扩展/skills),秒级耗时且丢当前流式状态;保存前应检查是否有进行中的回复。当前实现未拦截,记录待修。
5. **运行时重建后模型选择**——重建走 continueRecent,会话内保存的模型跟随会话;但全局默认模型(settings 持久化)与 UI 状态的同步依赖 `state` 事件,尚未覆盖"重建后 model fallback"提示(modelFallbackMessage 丢弃未展示)。排 v0.5。
## v0.1.0 — 骨架 + 聊天链路
**交付**: