OWOpenWorkBuddy
开发者指南 · 阅读、修改、验证

沿着现有结构添加新能力。

这份指南介绍仓库、Agent 运行时、工具、连接器、界面、测试和发布。实际行为以源码和详细架构说明为准。

1. 准备本地开发环境

使用 package.json 指定范围内的 Node.js,然后按 lockfile 安装固定依赖。

git clone https://github.com/CatCatUncle/openworkbuddy.git
cd openworkbuddy
npm ci
npm start

打开服务输出的本机地址。个人配置、API Key、任务数据和生成文件不要提交到 Git。首次启动说明见 《安装与启动》。

2. 阅读代码架构

server.js 和应用入口负责把服务接起来。Agent 主循环在 src/agent/;工具实现、模型适配、业务域、安全、存储和平台能力放在 src/ 下。

  • src/agent/:Agent 主循环、工具派发和权限闸门。
  • src/tools/:按职责拆分的工具实现。
  • src/core/:模型、计费、安全、记忆、扩展和自动化。
  • src/domains/:账号、内容、媒体、资料库等业务域。
  • src/server/routes/、src/cli/、src/im/、src/desktop/:各应用自己的入口部件。
  • public/:网页结构、样式和按顺序加载的经典脚本。

依赖按项目规定的层级向下流动,应用模块之间保持独立;需要共享能力时放入较低层或通过参数注入。改目录前先读 《代码架构》。

3. 添加或修改 Agent 工具

  1. 在 src/agent/tools.js 中查看工具定义和派发,再到相关 src/tools/ 文件定位实现。
  2. 限制输入范围,定义必填字段、边界、允许路径和清楚的报错行为。
  3. 文件写入和命令执行沿用现有权限及审批闸门,不要绕开它们另开通路。
  4. 返回模型和界面都能理解的结果;日志不要带密钥或无关文件正文。
  5. 在 test/ 添加成功、拒绝和畸形输入的用例,确保危险路径被拦。

新增 HTTP 路由时沿用鉴权方式,在入口校验请求,并在读取或写入用户数据前核对归属。

4. 添加 Skill 或连接器预设

Skill 通常放在 skills/<名称>/,由 skill.md 和 YAML frontmatter 中的名称、描述组成。步骤要具体、范围明确,并能安全地重复执行;模板和脚本放在同目录。

连接器预设在 src/core/ext/mcp-catalog.js。只提交字段名和占位信息,不能放有效凭证。补齐必填环境变量、文档链接、分类以及本地命令或远程 URL 类型。覆盖命令不存在、Secret 为空、连接器关闭和配置错误的情况。

完整用法见 《技能、连接器与插件》。

5. 修改前端

主界面入口是 public/index.html,脚本按顺序拆在 public/js/ 下,并共享经典脚本全局作用域。保持加载顺序,不添加内联事件处理器。

  • 用户可见文字加入 public/js/i18n.js,分别验证中文和英文界面。
  • 沿用已有设计令牌,使用语义控件、键盘焦点和无障碍名称。
  • 渲染用户输入时在边界转义;不可信文本用文本节点,不拼入 HTML。
  • 多人功能同时核对服务端权限和界面显示,不能只隐藏按钮。

6. 验证行为和安全

迭代时先运行最相关的套件,发布前再跑完整闸门。

node test/all.js --only e2e
npm test

全量测试包括架构、权限、本地化、打包和端到端检查。部分桌面与打包测试需要平台依赖,并可能运行数分钟。

  • 不要提交 API Key、访问令牌、本机配置、会话导出、客户资料或构建产物。
  • 除了正确流程,也要测试越界路径和权限不足时的拒绝结果。
  • 测试使用临时数据目录和假凭证,不连接个人账号。
  • 用户行为发生变化时,同时更新中英文变更记录。

另见 《安全基线》和 《编码规范》。

7. 参与贡献和准备发布

让改动范围集中,说明用户可见行为,并添加能在回归时失败的测试。提交前检查最终 diff,清理本机路径和凭证。

发布由 Git tag 触发。先更新 package 版本和变更记录,跑完整测试,然后推送匹配的 vX.Y.Z tag。工作流会核对版本号、先测试再打包,并上传各平台产物。

任务、连接器与审查实现

模块入口、OAuth 回调归属、分块回退冲突、操作录制隐私、团队费用与专项测试命令见任务与连接器开发参考.

英文界面对可见控件调用 I18N.untranslated,有漏翻就判失败;用户原文必须显式标记,避免误翻和误报。