跳到正文
社区版开源 Web · 0.2.8 发行文档 · 0.2.8内容核对:2026-10-23查看 Markdown

6.10 源码架构与包边界 ​

本篇面向修改 Teloa 源码的开发者。先找到功能所在的包,再沿用户操作、业务状态和执行结果检查完整链路。

从一项工作看代码分工 ​

text
用户提交 -> React 工作界面 -> Harness / RPC -> 业务服务 -> PostgreSQL
                                |
                                -> 原生会话、模型与工具
                                |
执行事件 -> Task / Run 状态与成果 -> 原会话和任务界面

Teloa 保存员工、任务、审批与成果的业务归属;DSH 提供原生执行。模型回复、执行结束和业务验收是不同事实。

修改什么,去哪里找 ​

目录主要职责常见变更
packages/contract类型、格式读取器和校验新字段、模板格式、请求与返回
packages/backend存储、事务、幂等与业务规则任务状态、固定结果、权限记录
packages/harness-dsh原生引擎适配与工具授权会话上下文、派发、停止、结果回流
packages/client/ui-workbench工作台界面与状态呈现员工、群、任务、设置与详情抽屉
packages/client/ui-kit共享界面组件通用控件与交互容器
packages/bundle固定插件组合与运行预设引擎组合和预设配置
packages/sdk对外员工调用合同与客户端HTTP、SDK、MCP 的共用格式
packages/cli原生安装与服务生命周期启动、停止、备份与升级
packages/mcp-reference只读资料 MCP 服务资料列举、固定版本读取与拒绝路径
packages/local-embedding本地检索适配权重准备、嵌入、索引与检索

产品的 AI Team、Agent Studio、Agent Harness 分层见产品架构。它们说明产品职责,不与上表逐包对应。

跟踪一次员工调用 ​

以对外员工 API 为例,按以下顺序读源码:

  1. packages/sdk/contract.mjs:检查请求字段、状态与结果格式。
  2. packages/harness-dsh/src/employee-integration-host.ts:看 HTTP/MCP 如何鉴权和派发。
  3. packages/backend/src/work/employee-integrations.ts:看员工版本、业务与权限如何固定。
  4. packages/backend/src/work/employee-api-work.ts:看工作、轮次、幂等、结果与事件如何保存。
  5. packages/harness-dsh/src/task-runs.ts:看原生执行如何准备、开始、核对和停止。
  6. packages/client/ui-workbench/src/client/EmployeeIntegrationSettings.tsx:看本人如何创建和管理集成。

接口行为的完整例子见调用员工。读代码时沿同一个 work ID、Task ID 和 Run ID 跟踪,不把日志中另一项工作的结果拼到本任务上。

修改一个跨包字段 ​

例如给任务增加一项可显示的信息:先修改契约和默认值,再修改数据库读写、适配层解析与客户端显示。增加必要的迁移和兼容读取,最后覆盖旧数据、新数据和非法值。

只改 TypeScript 类型不够:运行期读取器可能严格拒绝未知字段。也不要让 UI 直接读写数据库来绕过业务服务。

扩展点 ​

  • 新做事方法:优先SKILL,通常不需要修改核心。
  • 新外部系统:优先MCP 应用,权限在服务端和员工侧分别核验。
  • 新模板资源:修改契约读取器、预览、导入、分享与测试,核对四类主体的限制。
  • 新执行组件:按执行引擎边界保留身份、授权、取消与结果来源。
  • 本地模型:已有语音和检索配置见设置指南;新增 provider 需分别验证准备、运行与授权。

先按本地运行搭好隔离环境。完成变更的验证方法见测试与贡献。