diff --git a/FEATURES.md b/FEATURES.md index 2e7cb58..4f145ae 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -15,19 +15,18 @@ - [x] **Projects 与独立对话**:按项目隔离上下文,管理会话、附件和 Git 工作区变更。 - [x] **文件、截图、窗口、剪贴板上下文**:用户明确选择后才加入模型上下文。 - [x] **富文本回答**:支持 GitHub Flavored Markdown、LaTeX 数学公式和受控 Mermaid 图表;大图可缩放、拖动或查看源码,失败时保留原始图表代码。 -- [ ] **项目 Agent Space 与策略包**(规划中):在现有 Project 中统一角色、知识、Skills/MCP、模型、变量、审批策略、预算和超时,并支持模板化复用。 +- [ ] **项目 Agent Space**(规划中):在 Project 中统一角色、知识、Skills/MCP、模型、审批策略、预算和超时,并支持模板复用。 ### Agent Runtime 与模型连接 - [x] **直连模型 Runtime**:支持问答、知识总结、受控工具执行和图像生成。 -- [x] **OpenCode 与 Continue**:使用隔离子进程、环境变量白名单、取消、超时和活动记录。 -- [x] **统一 Runtime 配置来源**:普通会话和消息通道共用“Agent Runtime”中的 OpenCode/Continue 模型来源、自有配置、程序路径和服务地址;通道只选择 Runtime 类型,每次远程请求动态解析当前全局配置。 +- [x] **OpenCode 与 Continue**:使用隔离子进程、环境变量白名单、统一配置、取消、超时和活动记录。 - [x] **Ask 与 Execute 工作模式**:Ask 保持只读;Execute 运行已启用且受边界约束的工具。 - [x] **专家与 Subagent**:支持显式专家、团队分析和最多三个只读专家并行分析。 - [x] **角色绑定模型连接**:每个角色可继承默认模型或选择独立文本模型连接,失效连接安全回退默认模型,综合角色始终继承默认模型。 - [x] **多协议模型配置**:支持 Anthropic Messages、OpenAI Chat Completions、OpenAI Images 和无认证本机模型。 - [x] **Main-only 凭据保护**:API Key 使用系统安全存储加密,不暴露给 Renderer。 -- [ ] **可执行 Subagent 与结构化委派**(规划中):在现有只读专家之外提供显式 Execute 委派,限制嵌套深度、并行数、Token、时间和工具权限,并保留父子任务审计。 +- [ ] **可执行 Subagent**(规划中):提供显式 Execute 委派,限制嵌套、并行、Token、时间和工具权限,并保留父子任务审计。 ### Skills、MCP 与知识库 @@ -38,12 +37,12 @@ - [x] **向量模型配置与检索**:可配置兼容 Embeddings 接口并用于语义检索。 - [x] **向量诊断与索引任务**:提供真实向量生成诊断、按文档重建进度、取消、失败状态与重启后结果恢复;每篇成功文档立即可用于检索。 - [x] **混合检索测试台**:支持全文、中文词组、向量和图谱通道诊断,可调 Top K、阈值、权重、本地或学习型重排及上下文预算。 -- [x] **上下文分块与离线评估**:保留标题、页码、标题层级和块类型用于上下文索引,并提供双语 Recall、MRR、nDCG、上下文精度/召回和无答案误报评估。 -- [x] **高级分块与维护**:支持固定、结构化和父子分块,以及分块搜索、编辑、停用、删除、文档重建和可取消的全库重建。 +- [x] **分块、维护与评估**:支持固定、结构化和父子分块,分块维护、可取消重建及双语检索评估。 - [x] **受控知识本体**:每个知识库可定义实体、关系、别名和端点约束,保留证据偏移、置信度和抽取来源,并显式提示图谱重建。 - [x] **强制检索与引用上下文**:对话可按需或每次先检索,显示零结果、降级、失败与取消状态,并可查看引用上下文或安全打开来源。 - [x] **魔法笔记 / Magic Notes**:提供本地优先的笔记与待办工作台、范围管理、编辑、筛选和受控 AI 评论;创建、保存和评论结果使用统一应用通知。 -- [ ] **MCP Server Control Plane**(规划中):扩展 MCP Agent Runtime Broker,统一生命周期、健康检查、重连、Schema 缓存、按项目或任务隔离、审批和审计,并受控接入 OpenCode、Continue。 +- [ ] **MCP Server Control Plane**(规划中):统一 MCP 生命周期、健康检查、重连、Schema 缓存、隔离、审批和审计。 +- [ ] **可追溯笔记摘录与 AI 编辑**(规划中):从对话、知识和网页收集带来源的摘录,并提供需确认的总结、改写和整理操作。 ### 工作管理、长期协作与工作流 @@ -51,8 +50,8 @@ - [x] **记忆与智能心跳**:提供周期回顾、建议记忆、洞察、后续任务和可审计运行轨迹。 - [ ] **批量运行与对比实验室**(规划中):对模型、Prompt、角色和工作流配置执行批量对比,汇总质量、耗时、Token、费用、失败率和成果差异。 - [ ] **时态记忆与事实冲突检测**(规划中):为记忆和知识图谱增加有效期、当前事实、过期与矛盾检测、事实核验及证据回溯。 -- [ ] **可视化受控工作流**(规划中):提供版本化 DAG、条件分支、审批检查点、取消、恢复和成果节点;所有执行节点继续经过 Main Runtime 边界。 -- [ ] **统一运行追踪与回放**(规划中):关联任务、Subagent、模型调用、知识命中、工具审批、活动和成果,提供节点级耗时、失败定位、重试和脱敏导出。 +- [ ] **可视化受控工作流**(规划中):提供版本化 DAG、条件分支、审批、取消和恢复,执行节点继续经过 Main Runtime 边界。 +- [ ] **统一 Run Graph 与回放**(规划中):关联任务、Subagent、模型、知识、工具审批、用量和成果,支持失败定位、重试和脱敏导出。 ### 浏览器、通信、语音与应用维护 @@ -75,49 +74,10 @@ ### 开放接口、团队协作与远程执行 - [x] **远程任务委派**:仅在用户显式配置端点和令牌后启用,按全局内网兼容模式使用 HTTP(S),结果进入持久化发件箱。 -- [ ] **Headless Runtime API 与受控分享**(规划中):提供本机优先的任务提交、流式事件、状态和成果 API,并使用带范围、有效期、限流和撤销能力的访问令牌。 -- [ ] **GoodBuddy Team Hub**(规划中):以可选独立服务提供组织、成员、RBAC、项目共享、远程 Agent 注册、策略下发和租户级审计。 -- [ ] **多云远程沙盒 Agent**(规划中):管理阿里云 ECS、腾讯云 CVM、AWS EC2,并通过 SSH + Agent 提供专用自主沙盒。 +- [ ] **Headless Runtime API**(规划中):提供本机优先的任务、事件、状态和成果 API,以及有范围、有效期、限流和撤销能力的令牌。 +- [ ] **GoodBuddy Team Hub**(规划中):以可选服务提供组织、RBAC、项目共享、远程 Agent、策略下发和租户审计。 +- [ ] **多云远程沙盒 Agent**(规划中):通过云厂商 API 和 SSH Agent 管理专用 Linux 沙盒;凭据留在 Main 进程,高风险控制面操作单独确认。 -## 重大功能规划 +## 规划原则 -### Agent 框架与协作能力 - -以下能力均为 GoodBuddy 规划,不代表已在当前版本中提供。 - -- [ ] **项目 Agent Space 与策略包**:不新增与 Project 重复的一级概念,而是在现有 Project 中统一角色、知识集合、Skills/MCP、默认模型、变量、工作模式、审批策略、预算和超时,并支持模板化复用。 -- [ ] **统一 Run Graph**:先统一父子任务、节点、模型调用、知识命中、工具审批、用量、成果和取消事件,作为工作流、可执行 Subagent、批量实验和回放的共同基础。 -- [ ] **MCP Server Control Plane**:由 Main 进程统一管理 `stdio`、HTTP 和 SSE Server,执行连接验证、健康检查、重连、Schema 缓存、环境变量白名单、资源配额、项目或任务隔离以及逐次审批和审计。 -- [ ] **可视化受控工作流**:首版只支持开始、Agent/Subagent、知识、声明式条件、审批、成果和结束节点;流程需要版本化、校验、取消和恢复。任意网络请求或执行节点不得绕过现有 Runtime 与审批边界。 -- [ ] **可执行 Subagent**:保留现有专家默认只读语义,只在显式 Execute 委派中允许受控工具,限制深度、并行数、Token、时间、成果范围和父子权限继承。 -- [ ] **批量运行与对比实验室**:对模型、Prompt、角色和工作流版本进行参数扫描与 A/B 对比,展示质量评分、耗时、Token、费用、失败率和成果差异。 -- [ ] **时态记忆与事实冲突检测**:在现有知识图谱和证据链上增加事实有效期、当前状态、过期与矛盾检测、核验流程及来源回溯。 -- [ ] **Headless Runtime API**:作为可选、本机默认仅监听 loopback 的服务,提供任务提交、流式事件、状态和成果下载;访问令牌必须具有 scope、有效期、速率限制、项目限制和撤销能力。 -- [ ] **GoodBuddy Team Hub**:作为独立可选服务提供组织、成员、RBAC、项目共享、远程 Agent 注册、策略下发和租户级审计,不把 Electron Renderer 或云端服务改造成用户凭据持有者。 - -安全边界保持不变:Ask/Plan 必须在 Runtime 边界只读;Execute、MCP、网络和 Subagent 工具均受 Main 进程能力边界、权限策略、取消和审计约束。普通交互按对应策略审批;受信发送者发起的远程 Execute 不逐次弹窗确认,但不得绕过项目目录、Runtime、沙箱、能力开关或直连模型工具安全策略。不得照搬进程内脚本执行、任意 URL 请求、仅以 `created_by` 模拟多租户或共享无隔离 MCP 会话等做法。 - -### 知识工作空间与魔法笔记 - -- [x] **魔法笔记 / Magic Notes 基础工作台**:已提供本地优先的笔记与待办页签、范围管理、编辑、筛选、删除和受控 AI 评论。 -- [ ] **可追溯摘录扩展**(规划中):支持将用户选中的对话片段、知识条目、文档摘录和网页摘录收集为可编辑笔记,并持续保留来源、位置和引用关系。 -- [ ] **扩展受控 AI 笔记操作**(规划中):在现有 AI 评论之外提供总结、改写、续写、整理和关联知识等显式操作;操作结果先进入笔记或待确认变更,不静默回写或修改来源知识。 - -### 多云远程沙盒 Agent - -GoodBuddy 将支持把专用云主机作为模型可自主使用的远程沙盒。首批计划接入: - -- 阿里云 ECS -- 腾讯云 CVM -- AWS EC2 -- 其他可通过 SSH 管理的 Linux 主机 - -计划包含以下能力: - -- [ ] **云主机控制面**:通过云厂商官方 API 发现、创建、启动、停止和删除实例,创建前展示地域、规格、镜像、网络和费用相关配置。 -- [ ] **SSH + GoodBuddy Agent**:校验 SSH 主机指纹后,以专用非 root 账户安装、升级和配对 Agent,不要求模型接触 SSH 私钥。 -- [ ] **沙盒内自主执行**:用户可将明确指定的专用实例设为自主沙盒。模型在该沙盒的工作目录内连续执行命令、修改文件和运行任务,不逐条请求审批。 -- [ ] **控制面与执行面隔离**:云 API 密钥、临时凭据和 SSH 私钥只保存在 Main 进程的系统加密存储中,不下发给 Renderer、模型或远程任务。模型的自主权限不包含云账户管理权限。 -- [ ] **高风险操作保护**:删除实例、修改安全组或网络、扩缩容和其他可能产生额外费用或数据损失的控制面操作仍需单独确认。 -- [ ] **可观测与可恢复**:实时回传心跳、日志、进度、退出状态和有界成果文件,支持取消、超时、断线重连、失败诊断和完整活动审计。 -- [ ] **跨云一致体验**:使用统一的实例状态、Agent 能力和任务协议;阿里云、腾讯云、AWS 的差异由独立 Provider Adapter 隔离。 +规划中的工作流、Subagent、MCP、远程 API 和沙盒能力不得绕过现有 Main Runtime、Ask/Execute、权限、取消、超时和审计边界。 diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..a8a879e --- /dev/null +++ b/README.en.md @@ -0,0 +1,77 @@ +# GoodBuddy + +English | [简体中文](README.md) + +A secure, cross-platform, local-first desktop AI assistant and Agent workspace. + +![GoodBuddy workspace](docs/screenshots/workspace-overview.png) + +## Highlights + +- **Controlled execution**: `Ask` stays read-only; `Execute` runs only enabled tools within defined boundaries and records their activity. +- **Local-first data**: Conversations, tasks, artifacts, memory, knowledge bases, and graphs are stored in local SQLite. API keys are encrypted by the operating system. +- **Multiple runtimes**: Connect directly to models or use OpenCode and Continue, with cancellation, timeouts, output limits, and process cleanup. +- **Open integrations**: Supports OpenAI Responses, OpenAI-compatible Chat Completions, Anthropic Messages, OpenAI Images, Embeddings, Skills, and MCP. +- **Knowledge workspace**: Import files, folders, and web pages, then search them with full-text, phrase, vector, and graph retrieval. +- **Work management**: Organize projects, conversations, tasks, activity, artifacts, memory, Magic Notes, and Smart Heartbeat. +- **Remote channels**: Connect WeChat ClawBot, WeCom, and DingTalk with separate remote sessions for each sender. +- **Desktop context**: Add selected files, screenshots, application windows, clipboard content, and voice. +- **Offline speech**: Use local SenseVoice, Paraformer, and Whisper models. +- **Rich responses**: Render Markdown, LaTeX, and controlled Mermaid diagrams. + +![GoodBuddy knowledge workspace](docs/screenshots/knowledge-workspace.png) + +![GoodBuddy knowledge graph](docs/screenshots/knowledge-graph.png) + +![GoodBuddy Magic Notes](docs/screenshots/GoodBuddy_MFSGeK0NoT.gif) + +![GoodBuddy Smart Heartbeat](docs/screenshots/smart-heartbeat.png) + +See [FEATURES.md](FEATURES.md) for the detailed feature matrix and roadmap. + +## Install + +Download a build from [GitHub Releases](https://github.com/mesalogo/goodbuddy/releases): + +| Platform | Architectures | Formats | +| --- | --- | --- | +| Windows | `x64`, `arm64` | NSIS, portable ZIP | +| macOS | `x64`, `arm64` | DMG, ZIP | +| Linux | `x64`, `arm64` | AppImage, DEB | + +Code signing and macOS notarization are not configured yet, so your operating system may display a security warning. + +## Run from source + +Requires Node.js 24 and npm: + +```bash +git clone https://github.com/mesalogo/goodbuddy.git +cd goodbuddy +npm ci +npm run dev +``` + +See [BUILD.md](BUILD.md) for build and packaging instructions. + +## Privacy and security + +- Model requests are sent only to services selected by the user. +- Local data stays in the operating system's application data directory by default. +- The Renderer has no access to raw Electron APIs or model credentials. +- Remote delegation is disabled until the user configures an endpoint and token. +- Private-network compatibility permits in-app HTTP and non-standard HTTPS certificates. WeChat credential and media endpoints remain strictly validated. + +## Contributing + +Issues and pull requests are welcome. Read [AGENTS.md](AGENTS.md) first, then run: + +```bash +npm test +npm run typecheck +npm run lint +``` + +## License + +Original GoodBuddy code is released under the [0BSD License](LICENSE). You may use, modify, distribute, and commercialize it freely. Third-party components and resources retain their respective licenses. diff --git a/README.md b/README.md index 34af5c4..d4e1921 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # GoodBuddy +[English](README.en.md) | 简体中文 + 安全、跨平台、本地优先的桌面 AI 助手与 Agent 工作空间。 ![GoodBuddy 工作空间](docs/screenshots/workspace-overview.png)