From 71d6c7cd888d076cdbd66e60f6b11873d882898b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B2=A9=E5=B2=A9?= Date: Wed, 15 Jul 2026 17:56:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AC=AC=E4=B8=80=E7=89=88=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 31 ++++ docs/agent/model-chat.md | 21 +++ docs/agent/runs-behavior.md | 22 +++ docs/agent/tools-workspace.md | 23 +++ docs/architecture/local-data.md | 38 +++++ docs/architecture/overview.md | 36 +++++ docs/automation/computer-butler.md | 20 +++ docs/clients/desktop.md | 21 +++ docs/clients/web.md | 21 +++ docs/design.md | 178 ---------------------- docs/development/project-assistant.md | 22 +++ docs/development/system-evolution.md | 22 +++ docs/extension/hooks-extensions.md | 22 +++ docs/foundation/cli.md | 26 ++++ docs/foundation/runtime.md | 21 +++ docs/foundation/spaces.md | 22 +++ docs/intelligence/memory-knowledge.md | 21 +++ docs/intelligence/planning-multi-agent.md | 21 +++ docs/operations/reliability-safety.md | 22 +++ docs/roadmap.md | 27 ++++ 20 files changed, 459 insertions(+), 178 deletions(-) create mode 100644 docs/README.md create mode 100644 docs/agent/model-chat.md create mode 100644 docs/agent/runs-behavior.md create mode 100644 docs/agent/tools-workspace.md create mode 100644 docs/architecture/local-data.md create mode 100644 docs/architecture/overview.md create mode 100644 docs/automation/computer-butler.md create mode 100644 docs/clients/desktop.md create mode 100644 docs/clients/web.md delete mode 100644 docs/design.md create mode 100644 docs/development/project-assistant.md create mode 100644 docs/development/system-evolution.md create mode 100644 docs/extension/hooks-extensions.md create mode 100644 docs/foundation/cli.md create mode 100644 docs/foundation/runtime.md create mode 100644 docs/foundation/spaces.md create mode 100644 docs/intelligence/memory-knowledge.md create mode 100644 docs/intelligence/planning-multi-agent.md create mode 100644 docs/operations/reliability-safety.md create mode 100644 docs/roadmap.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..24968db --- /dev/null +++ b/docs/README.md @@ -0,0 +1,31 @@ +# 文档索引 + +本文档记录 `llm-to-agent` 当前已达成的产品与架构共识。它不是固定开发清单:实现前再细化当前功能点,发现新需求则补到对应功能文档中。 + +## 使用方式 + +- 每个大功能点一个文件,文件头标记 `状态` 与 `期望阶段`。 +- `todo`、`doing`、`done` 表示当前进度;阶段只表示建议先后,不构成严格依赖顺序。 +- 每完成一个独立提交,在对应文档中补充提交、blog 和实现说明。 +- 未明确的方案写在“待细化”中,不提前冻结实现。 + +## 导航 + +- [路线图与管理规则](roadmap.md) +- [架构总览](architecture/overview.md) +- [本地数据与目录](architecture/local-data.md) +- [Runtime](foundation/runtime.md) +- [CLI](foundation/cli.md) +- [Space 与 Conversation](foundation/spaces.md) +- [模型与聊天](agent/model-chat.md) +- [Run 与 Agent Behavior](agent/runs-behavior.md) +- [Tools 与 Workspace](agent/tools-workspace.md) +- [Project 开发助手](development/project-assistant.md) +- [System Evolution](development/system-evolution.md) +- [Hooks、扩展与 Profile](extension/hooks-extensions.md) +- [计划与多 Agent](intelligence/planning-multi-agent.md) +- [记忆与知识](intelligence/memory-knowledge.md) +- [电脑管家与自动化](automation/computer-butler.md) +- [可靠性与个人安全](operations/reliability-safety.md) +- [Web](clients/web.md) +- [Desktop](clients/desktop.md) diff --git a/docs/agent/model-chat.md b/docs/agent/model-chat.md new file mode 100644 index 0000000..706ad32 --- /dev/null +++ b/docs/agent/model-chat.md @@ -0,0 +1,21 @@ +# 模型与聊天 + +状态:todo +期望阶段:P1 + +## 目标 + +先提供可靠、连续的 DeepSeek 聊天能力;模型接入保持可替换,但不提前实现多 Provider 系统。 + +## 已确定 + +- 第一版只兼容 DeepSeek API。 +- 支持流式回复和会话历史加载。 +- 模型调用由 Runtime 管理,CLI 只渲染流。 +- 未来模型提供商属于 Adapter 层。 + +## 待细化 + +- API Key 的读取位置与配置体验。 +- 默认模型、请求参数和失败/限流提示。 +- 上下文窗口压缩策略。 diff --git a/docs/agent/runs-behavior.md b/docs/agent/runs-behavior.md new file mode 100644 index 0000000..4fe5db2 --- /dev/null +++ b/docs/agent/runs-behavior.md @@ -0,0 +1,22 @@ +# Run 与 Agent Behavior + +状态:todo +期望阶段:P1 + +## 目标 + +使一次用户请求拥有可观察的运行边界,并为未来不同 Agent 行为留下接缝。 + +## 已确定 + +- 一次用户消息默认产生一个 Run。 +- 纯聊天 Run 只产生模型回答;行动 Run 还包含 Tool 调用、输出和产物。 +- 第一版仅实现 `DefaultAgent`,不预设 Planner/Worker/Reviewer 流程。 +- Behavior 定义 Agent 如何准备上下文、调用模型、调用 Tool 和结束 Run。 +- Run 记录输入、输出、错误、时间和原始执行日志。 + +## 待细化 + +- Run 的取消、重试和失败显示。 +- 行为接口的具体 TypeScript 形状。 +- 后续 Plan/Step 与 Run 的关系。 diff --git a/docs/agent/tools-workspace.md b/docs/agent/tools-workspace.md new file mode 100644 index 0000000..0c10b93 --- /dev/null +++ b/docs/agent/tools-workspace.md @@ -0,0 +1,23 @@ +# Tools 与 Workspace + +状态:todo +期望阶段:P2 + +## 目标 + +让单 Agent 在隔离工作区中使用文件与 Shell 完成真实任务。 + +## 已确定 + +- Tool 是 Agent 主动调用的外部能力。 +- 第一批能力:读写文件、目录浏览、文本搜索和 Shell 执行。 +- 每个 Task 有独立 Workspace;Shell 默认在该目录执行。 +- Tool 调用参数、输出、错误和生成脚本文本写入 Run 日志。 +- Agent 通过模型 Tool Calling 自主选择、调用并读取 Tool 结果。 +- 初期不建设复杂审批或权限语言;真实破坏性操作出现后再增强。 + +## 待细化 + +- Shell 超时、取消、后台进程和大输出处理。 +- 文件写入与补丁的交互方式。 +- Tool 描述和参数 Schema 的具体格式。 diff --git a/docs/architecture/local-data.md b/docs/architecture/local-data.md new file mode 100644 index 0000000..3ff8d92 --- /dev/null +++ b/docs/architecture/local-data.md @@ -0,0 +1,38 @@ +# 本地数据与目录 + +状态:todo +期望阶段:P1 + +## 原则 + +数据以本地普通文件保存,保持易读、易调试、易由 Agent 修改。早期不承诺兼容性,不预先建设 schema migration;重要数据依靠备份,格式变更需要时再写一次性转换脚本。 + +Runtime 是唯一写入者,CLI/Web/Desktop 均通过 Runtime 读取或修改数据。 + +## 目录 + +```text +~/.agent/ + tasks// + space.json + conversations/ + runs/ + workspace/ + +/.agent/ + project.json + conversations/ + runs/ +``` + +Conversation 与 Run 优先采用 JSONL;Space/Project 元信息采用小型 JSON 文件。生成并执行的脚本文本进入 Run 日志,不额外维护脚本库;真正写进 Workspace 的文件自然保留。 + +## Task 升级 + +Task Workspace 的组织尽量与 Project 工作区一致。升级为 Project 时,将该专属目录迁移至用户指定路径并写入 Project 元信息。 + +## 待细化 + +- ID 和文件命名规则。 +- Run 日志与产物的具体划分。 +- 备份、归档和数据清理策略。 diff --git a/docs/architecture/overview.md b/docs/architecture/overview.md new file mode 100644 index 0000000..855a9a2 --- /dev/null +++ b/docs/architecture/overview.md @@ -0,0 +1,36 @@ +# 架构总览 + +状态:todo +期望阶段:P1 + +## 定位 + +这是纯个人使用的开发助手与电脑管家。它支持 Project 和 Task 两种并列 Space,并通过 CLI、Web、Desktop 三个客户端访问同一个本地 Runtime。 + +## 分层 + +```text +Launcher / Supervisor + ↓ +本地 Runtime(微内核) + ↓ +Adapter / Tool / Hook / Behavior Package + ↓ +Project / Task / System Evolution Profile + ↓ +CLI / Web / Desktop +``` + +微内核只负责运行规则:本地状态、Run 生命周期、Tool 调用边界、Hook 调度和扩展接缝。它不预先承载具体模型、浏览器、Git、记忆或 Agent 协作策略。 + +## 扩展边界 + +- **Adapter**:可替换的底层实现,例如模型供应商、检索或浏览器驱动。 +- **Tool**:Agent 主动调用的外部能力,例如文件、Shell、Git、浏览器。 +- **Hook**:围绕生命周期做观察、限制或后续动作。 +- **Behavior Package**:Agent 的思考、协作和完成方式。 +- **Profile**:为 Project、Task、System Evolution 组合默认行为与能力。 + +## 演化原则 + +内核可以被修改。Agent 对自身的改动必须发生在隔离 worktree 中,经过测试和 Git 确认后再由 Supervisor 切换版本;失败时能够回退。 diff --git a/docs/automation/computer-butler.md b/docs/automation/computer-butler.md new file mode 100644 index 0000000..5321f95 --- /dev/null +++ b/docs/automation/computer-butler.md @@ -0,0 +1,20 @@ +# 电脑管家与自动化 + +状态:todo +期望阶段:P4 + +## 目标 + +将 Task 从临时聊天空间发展为可处理本地日常事务的电脑管家。 + +## 已确定 + +- 能力通过 Tool 逐项加入,不预先建设完整桌面自动化平台。 +- 候选能力包括剪贴板、通知、文件整理、进程信息、浏览器读取与交互、应用/窗口控制、截图、键鼠自动化、定时任务和后台任务。 +- 常用工作流可以沉淀为模板或 Behavior,但不在早期固定格式。 + +## 待细化 + +- 首个接入的本机/浏览器能力由真实日常需求决定。 +- 浏览器驱动、桌面自动化方式和各平台兼容性。 +- 自动化任务的确认、停止和恢复体验。 diff --git a/docs/clients/desktop.md b/docs/clients/desktop.md new file mode 100644 index 0000000..fdc665c --- /dev/null +++ b/docs/clients/desktop.md @@ -0,0 +1,21 @@ +# Desktop + +状态:todo +期望阶段:P6 + +## 目标 + +将 Desktop 建设为本地常驻控制台和系统集成层,复用 Web 界面与 Runtime。 + +## 已确定 + +- Desktop 在 CLI 和 Web 产品线之后开发。 +- 负责 Runtime 生命周期、托盘、通知、快捷键、原生确认、版本切换与健康状态。 +- 可逐步承担剪贴板、窗口、文件系统和其他原生能力桥接。 +- Desktop 框架在进入本阶段前单独讨论确定。 + +## 待细化 + +- 框架选择与打包更新策略。 +- Web 前端复用方式。 +- 原生权限、后台常驻和跨平台边界。 diff --git a/docs/clients/web.md b/docs/clients/web.md new file mode 100644 index 0000000..a759b14 --- /dev/null +++ b/docs/clients/web.md @@ -0,0 +1,21 @@ +# Web + +状态:todo +期望阶段:P5 + +## 目标 + +将 Web 建设为 Runtime 的第二个客户端,不复制 Agent、存储或 Tool 逻辑。 + +## 已确定 + +- Web 在 CLI 产品线之后开发。 +- 首先覆盖 Space、Conversation、流式聊天和 Run 观察。 +- 后续覆盖 Tool 日志、产物、Plan、项目记忆、Diff、扩展、确认和 System Evolution 管理。 +- Web 框架进入本阶段前单独讨论确定。 + +## 待细化 + +- Runtime 的 HTTP/SSE/WebSocket 访问层。 +- 本地与远程访问方式。 +- 前端框架、状态管理和视觉设计。 diff --git a/docs/design.md b/docs/design.md deleted file mode 100644 index 9c44769..0000000 --- a/docs/design.md +++ /dev/null @@ -1,178 +0,0 @@ -# llm-to-agent 设计文档 - -## 架构设计 - -### 核心理念:微内核 + 事件驱动 - -Agent 的本质是一个循环:**用户输入 → LLM 思考 → 工具调用 → LLM 再思考 → 最终回复**。 - -本项目的答案是:**内核只做一件事——驱动这个循环**。LLM 调用、工具执行、日志输出等一切能力全部通过事件总线交给外部插件。 - -### 三层架构 - -``` -┌──────────────────────────────────────────┐ -│ Route 层 CLI / Desktop / Web │ ← 只决定 I/O 方式 -├──────────────────────────────────────────┤ -│ Plugin 层 provider / tool / hook │ ← 可替换的能力单元 -├──────────────────────────────────────────┤ -│ Core 层 Scheduler + HookBus │ ← 只做循环 + 事件路由 -└──────────────────────────────────────────┘ -``` - -### 事件总线 - -内核循环的每一步都通过 `HookBus` 发出事件,插件注册响应,形成“事件驱动 + 插件化”的架构。 - -### 插件类型 - -| 类型 | 职责 | 响应的事件 | -|------|------|-----------| -| `provider` | LLM 提供商适配 | `llm:call`、`tool:select` | -| `tool` | 工具能力 | `tool:schema`、`tool:execute` | -| `hook` | 生命周期副作用 | `tool:before`、`tool:after`、`run:end` | -| `prompt` | 系统提示词 | 通过配置注入,不响应事件 | - -每个插件通过 `manifest.json` 声明元信息(名称、类型、提供的能力、适用平台),由 `PluginManager` 统一加载。 - -### 三条产品线 - -``` - ┌── @llm-to-agent/core ──┐ - │ MicroKernel + HookBus │ - └────────────────────────┘ - │ - ┌─────────────────┼─────────────────┐ - ▼ ▼ ▼ - CLI Desktop Web - (readline) (Electron) (Browser HTTP) - │ │ │ - ┌───────┴────────┐ ┌──────┴───────┐ ┌──────┴───────┐ - │ 本地工具全部 │ │ 同 CLI │ │ 仅远程工具 │ - │ console 日志 │ │ IPC 日志 │ │ SSE 日志 │ - └────────────────┘ └──────────────┘ └──────────────┘ -``` - -CLI 与 Desktop 共享本地工具(文件读写、Shell 执行),Web 端通过 `platforms` 字段自动跳过本地工具。 - ---- - -## 项目目录设计 - -### Monorepo 结构(pnpm workspace) - -``` -llm-to-agent/ -├── pnpm-workspace.yaml -├── package.json ← 根(private,统一 dev/test 脚本) -├── tsconfig.json -│ -├── docs/ ← 设计文档 -│ └── design.md -│ -├── packages/ -│ │ -│ ├── types/ ← @llm-to-agent/types -│ │ └── src/index.ts ← 所有共享类型(Message/ToolDef/PluginManifest/...) -│ │ -│ ├── core/ ← @llm-to-agent/core -│ │ └── src/ -│ │ ├── hook-bus.ts ← 事件总线(on/emit/request/collect) -│ │ ├── scheduler.ts ← Agent 循环(think→tool→think) -│ │ ├── context.ts ← 消息上下文管理器 -│ │ ├── plugin-manager.ts← 插件加载 + 生命周期 -│ │ └── kernel.ts ← MicroKernel 入口(组合以上模块) -│ │ -│ ├── plugins-builtin/ ← @llm-to-agent/plugins-builtin -│ │ └── [xxxxx]/ ← 内置插件 -│ │ -│ ├── cli/ ← @llm-to-agent/cli(终端入口) -│ │ └── src/index.ts ← readline 循环 + kernel.init([...]) -│ │ -│ ├── desktop/ ← @llm-to-agent/desktop(桌面入口) -│ │ └── src/main.ts ← Electron 主进程 -│ │ -│ ├── server/ ← @llm-to-agent/server(Web 后端) -│ │ └── src/index.ts ← Express + SSE -│ │ -│ ├── web/ ← @llm-to-agent/web(Web 前端) -│ │ └── index.html ← 待实现 React 聊天界面 -│ │ -│ ├── tests/ ← @llm-to-agent/tests -│ │ └── src/ ← *.test.ts(Node 原生 test runner) -│ │ -│ └── old/ ← @llm-to-agent/old(旧代码归档) -│ └── src/ ← 重构前的 Agent 实现 -``` - -### 包依赖关系 - -``` -@llm-to-agent/types ← 零依赖,纯类型 - ↑ ↑ - core plugins-builtin - ↑ ↑ - ├───────────┴────────────┐ - ↓ ↓ ↓ - cli desktop server - ↑ - web -``` - -### 插件清单规范 - -每个插件目录包含 `manifest.json`: - -```json -{ - "name": "@agent/tool-file", - "version": "1.0.0", - "type": "tool", - "provides": ["file-read", "file-write"], - "entry": "./index.ts", - "platforms": ["cli", "desktop"] -} -``` - -| 字段 | 说明 | -|------|------| -| `type` | `provider` / `tool` / `hook` / `prompt` | -| `provides` | 提供的能力标识 | -| `entry` | 入口文件,默认导出 `register(bus: HookBus)` | -| `platforms` | 可用平台,PluginManager 加载时自动过滤 | - -### 关键类型 - -```typescript -// 消息 -interface Message { - role: 'system' | 'user' | 'assistant' | 'tool'; - content: string; - tool_calls?: ToolCall[]; - tool_call_id?: string; -} - -// 工具定义(OpenAI 兼容) -interface ToolDef { - type: 'function'; - function: { - name: string; - description: string; - parameters: Record; - }; -} - -// 插件清单 -interface PluginManifest { - name: string; - version: string; - type: 'provider' | 'tool' | 'hook' | 'prompt'; - provides: string | string[]; - entry: string; - platforms?: ('cli' | 'desktop' | 'web')[]; -} - -// 事件总线 -type EventName = string; -type Listener = (data: any) => any | Promise; -``` diff --git a/docs/development/project-assistant.md b/docs/development/project-assistant.md new file mode 100644 index 0000000..fd4e5b9 --- /dev/null +++ b/docs/development/project-assistant.md @@ -0,0 +1,22 @@ +# Project 开发助手 + +状态:todo +期望阶段:P2 + +## 目标 + +让 Agent 能在绑定源码目录中完成“理解 → 修改 → 测试 → 汇报”的开发闭环。 + +## 已确定 + +- Project 在项目根目录使用 `.agent/` 存放自身会话、Run 和项目上下文。 +- 项目规则、架构摘要和决策记录会逐步沉淀,但不预先引入 RAG。 +- 开发 Tool 包含代码搜索、修改/补丁、测试执行和测试结果收集。 +- 初期由单 Agent 完整完成开发任务;多 Agent 协作由后续真实需求驱动。 +- Git 支持 status、diff、log 与 worktree;候选修改默认放在隔离 worktree。 + +## 待细化 + +- 项目说明文件的名称和注入时机。 +- worktree 的目录、清理和默认分支策略。 +- Task 升级 Project 的 CLI/TUI 流程。 diff --git a/docs/development/system-evolution.md b/docs/development/system-evolution.md new file mode 100644 index 0000000..d4e3cbb --- /dev/null +++ b/docs/development/system-evolution.md @@ -0,0 +1,22 @@ +# System Evolution + +状态:todo +期望阶段:P3 + +## 目标 + +使 Agent 能像维护普通开发项目一样维护自身。进化由用户在专属 Project 中提出需求或反馈驱动,不要求 Agent 主动发现问题。 + +## 已确定 + +- `System Evolution` 是特殊 Project Profile,绑定 Agent 自身源码仓库。 +- Agent 在 Git worktree 中分析、修改、测试候选版本。 +- 用户查看 Diff 后确认 Git commit/merge/push 等写操作。 +- Supervisor 在内核外负责候选版本切换、启动、健康检查和失败回退。 +- 初期以 Git 历史和 Run 日志记录演化过程;复杂评估与进化档案后置。 + +## 待细化 + +- Supervisor 的最小实现和版本切换方式。 +- 候选版本测试、健康检查和回退判定。 +- 发布确认在 CLI/TUI/Web/Desktop 中的体验。 diff --git a/docs/extension/hooks-extensions.md b/docs/extension/hooks-extensions.md new file mode 100644 index 0000000..1b97475 --- /dev/null +++ b/docs/extension/hooks-extensions.md @@ -0,0 +1,22 @@ +# Hooks、扩展与 Profile + +状态:todo +期望阶段:P4 + +## 目标 + +让新能力在需要时能以 Tool、Hook、Behavior、Adapter 或 Profile 的形式优雅生长。 + +## 已确定 + +- 第一版只保留 `beforeTool`、`afterTool`、`afterRun` 三个轻量 Hook 点。 +- Hook 用于观察、约束或响应生命周期;不承担 Run 状态、存储一致性或 Tool 实际执行。 +- Tool、Hook、Behavior、Adapter 是不同扩展形态,不混为“插件”。 +- Project、Task、System Evolution 的差异最终由 Profile 组合表达。 +- 自动发现、manifest、依赖管理、调试台均后置,等出现真实的独立扩展需求再实现。 + +## 待细化 + +- Hook 的注册、顺序、异常隔离和启停。 +- 扩展目录、加载方式和本地开发体验。 +- Profile 的配置格式与覆盖规则。 diff --git a/docs/foundation/cli.md b/docs/foundation/cli.md new file mode 100644 index 0000000..d0fe070 --- /dev/null +++ b/docs/foundation/cli.md @@ -0,0 +1,26 @@ +# CLI + +状态:todo +期望阶段:P1 + +## 目标 + +CLI 是第一条完整产品线,应能独立完成聊天、空间管理、执行观察和日常开发/临时事务。 + +## 已确定 + +- 以自然语言 REPL 为主;普通文本发送给当前 Conversation。 +- 使用少量斜杠命令处理 Space、会话、Run 等确定性控制操作。 +- 提示符需要明确显示当前 Task/Project 与 Conversation。 +- Agent 的普通回答流式输出;Tool 调用显示简短状态、结果和失败信息,不展示内部推理。 +- 除 REPL 外,CLI 还应提供全屏 TUI,用于浏览 Space、会话、Run、日志与产物;它属于 CLI 产品线,不是可遗忘的远期附属功能。 + +## 候选命令 + +`/new`、`/conversations`、`/switch`、`/tasks`、`/task`、`/project`、`/runs`、`/log`、`/cancel`、`/exit`。 + +## 待细化 + +- 启动时恢复最近上下文还是提供编号选择器。 +- REPL 与 TUI 的切换方式、TUI 库、布局和快捷键。 +- 长 Tool 输出的折叠、复制与完整日志查看方式。 diff --git a/docs/foundation/runtime.md b/docs/foundation/runtime.md new file mode 100644 index 0000000..96f48fb --- /dev/null +++ b/docs/foundation/runtime.md @@ -0,0 +1,21 @@ +# Runtime + +状态:todo +期望阶段:P1 + +## 目标 + +建立一个常驻本地 Runtime。它是唯一的状态写入者,也是 Agent、Tool 和未来客户端的运行宿主。 + +## 已确定 + +- 技术基础为 TypeScript + Node.js + monorepo。 +- CLI 从第一天起连接常驻 Runtime,而不是把 Runtime 嵌入在 CLI 进程中。 +- Runtime 负责 Space、Conversation、Run、本地数据和 Tool 执行。 +- Web 与 Desktop 以后只是同一 Runtime 的客户端,不重复 Agent 逻辑。 + +## 待细化 + +- CLI 与 Runtime 的本地通信方式。 +- Node 版本、包管理器、monorepo 工具和包边界。 +- Runtime 启动、健康检查、单实例和停止行为。 diff --git a/docs/foundation/spaces.md b/docs/foundation/spaces.md new file mode 100644 index 0000000..46be972 --- /dev/null +++ b/docs/foundation/spaces.md @@ -0,0 +1,22 @@ +# Space 与 Conversation + +状态:todo +期望阶段:P1 + +## 目标 + +提供两种并列的一级空间,并让每个空间拥有多个独立会话。 + +## 已确定 + +- `Project`:长期开发空间,绑定本地项目目录。 +- `Task`:临时个人事务空间,可用于闲聊、脚本、浏览器或应用控制。 +- 两类 Space 均包含多个 Conversation。 +- 一次实际 Agent 执行称为 `Run`,避免与 Task 概念混淆。 +- `inbox` 可以作为默认 Task;具体生命周期在实现前确认。 + +## 待细化 + +- Task 的默认命名、归档和删除体验。 +- Conversation 标题生成与重命名体验。 +- Project/Task 切换在 REPL 与 TUI 中的展示。 diff --git a/docs/intelligence/memory-knowledge.md b/docs/intelligence/memory-knowledge.md new file mode 100644 index 0000000..c2b0c92 --- /dev/null +++ b/docs/intelligence/memory-knowledge.md @@ -0,0 +1,21 @@ +# 记忆与知识 + +状态:todo +期望阶段:P4 + +## 目标 + +让三端共享有用的个人、项目和会话上下文,同时保持数据本地化和可编辑。 + +## 已确定 + +- 目标层级:Conversation、Task/Project、全局个人记忆,以及短暂的 Run 工作记忆。 +- 初期优先使用摘要、项目说明、架构记录和决策记录等普通文件。 +- 记忆应能查看、编辑、固定或遗忘。 +- 全文检索、文档导入、向量检索和混合检索均后置。 + +## 待细化 + +- 何时自动摘要与提炼记忆。 +- 跨 Space 的记忆引用和隔离规则。 +- 个人偏好写入全局记忆的确认体验。 diff --git a/docs/intelligence/planning-multi-agent.md b/docs/intelligence/planning-multi-agent.md new file mode 100644 index 0000000..9149dc8 --- /dev/null +++ b/docs/intelligence/planning-multi-agent.md @@ -0,0 +1,21 @@ +# 计划与多 Agent + +状态:todo +期望阶段:P4 + +## 目标 + +在单 Agent 已表现出真实瓶颈后,为复杂目标加入计划、步骤和多 Agent 协作。 + +## 已确定 + +- 复杂行动目标可拆为可执行步骤并自动依序执行。 +- 计划、步骤与子 Agent 都是 Run 之上的行为能力,不应先写死进 MVP。 +- Planner、Worker、Reviewer 是候选角色,不构成强制工作流。 +- 并行、DAG、自动重规划和模型路由均在确认需要后再引入。 + +## 待细化 + +- Plan/Step 的交互编辑与 CLI/TUI 展示。 +- 子 Agent 上下文隔离、结果回收和失败处理。 +- 协作质量评估与成本控制。 diff --git a/docs/operations/reliability-safety.md b/docs/operations/reliability-safety.md new file mode 100644 index 0000000..60843f8 --- /dev/null +++ b/docs/operations/reliability-safety.md @@ -0,0 +1,22 @@ +# 可靠性与个人安全 + +状态:todo +期望阶段:P4 + +## 目标 + +在 Agent 开始影响真实项目、文件、网站和本机系统后,逐步补足恢复与确认能力,而不阻塞前期个人探索。 + +## 已确定 + +- 系统是单用户、本地优先项目;不考虑多租户、账号和企业权限。 +- Git 写操作在 System Evolution 中必须经用户确认。 +- 后续高影响操作包括删除文件、真实网页提交、系统设置和应用控制。 +- 候选可靠性能力包括取消/暂停/恢复、崩溃恢复、备份、导入导出、Workspace 清理和产物归档。 +- 候选安全能力包括终端确认、Keychain、敏感日志处理和最小风险等级。 + +## 待细化 + +- 哪些操作先加入确认、确认的默认交互。 +- 数据备份位置和保留策略。 +- 长期任务、异常退出和资源回收。 diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000..62f6292 --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,27 @@ +# 路线图与管理规则 + +路线图只描述阶段目标。每个功能的具体拆分、提交顺序和实现方案以各自的功能文档为准。 + +| 阶段 | 目标 | 已知范围 | +| --- | --- | --- | +| P1 | 本地 Runtime 与终端产品基础 | Runtime、CLI(REPL 与全屏 TUI)、Space、会话、DeepSeek 聊天、Run、基础 Tool/Hook 接缝 | +| P2 | 终端行动能力与开发助手 | Workspace、文件/Shell、单 Agent Tool Calling、Project、代码与 Git Worktree 能力 | +| P3 | System Evolution 闭环 | 候选 worktree、自身修改与测试、确认发布、Supervisor 回退 | +| P4 | Runtime 成长与个人自动化 | 扩展、计划/多 Agent、记忆、浏览器/电脑控制、可靠性与按需安全能力 | +| P5 | Web 产品线 | Runtime 的 Web 客户端与管理界面 | +| P6 | Desktop 产品线 | 本地常驻控制台与系统集成 | + +## 进度标记 + +每个功能文档使用: + +```text +状态:todo | doing | done +期望阶段:P1 | P2 | ... +``` + +新增需求先归类到已有大功能点;如果它确实是新的长期能力,再新建一个功能文件。实现过程中允许调整阶段和拆分,不要求回头重排整份路线图。 + +## 提交与 blog + +一次提交应交付一个可验证的纵向能力,而不是单独提交类型、枚举或预留接口。完成后在相关功能文档追加:提交链接、验证方式、实现取舍和对应 blog。