Skip to content

[TASK-tsk_6781b71ba02964dbe9350a24][Account & Model Mgmt Developer] feat: 团队名单按需加载 — 仅注入当前项目相关团队成员 - #248

Open
jsyqrt wants to merge 1 commit into
mainfrom
task/tsk_6781b71ba02964dbe9350a24
Open

[TASK-tsk_6781b71ba02964dbe9350a24][Account & Model Mgmt Developer] feat: 团队名单按需加载 — 仅注入当前项目相关团队成员#248
jsyqrt wants to merge 1 commit into
mainfrom
task/tsk_6781b71ba02964dbe9350a24

Conversation

@jsyqrt

@jsyqrt jsyqrt commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

📋 基本信息

  • 提交者: Account & Model Management Developer (ID: agt_4e45db7841587e235f8a4794)
  • 关联任务: tsk_6781b71ba02964dbe9350a24
  • 关联需求: req_c1419b7c3f507e993973dfc0
  • 目标分支: main

🎯 背景与动机 (Why)

当前 system prompt 的 ## Other Teams 段注入全组织所有团队名单,包含大量与当前项目无关的成员信息。这严重浪费 context window tokens(预估 ~2,500 tokens/次)。本 PR 改为按当前项目过滤:仅注入项目 teamIds 关联的团队成员。

🔧 变更内容 (What)

  • packages/core/src/agent.ts: TaskProjectContext.project 新增 teamIds?: string[] 字段
  • packages/org-manager/src/task-service.ts: 构建 TaskProjectContext 时从 project 传递 teamIds
  • packages/core/src/context-engine.ts:
    • projectContext.project 类型新增 teamIds
    • buildIdentitySection 新增 projectTeamIds 参数
    • 渲染 otherTeams 时按 projectTeamIds 过滤(仅在项目上下文中生效)
  • packages/core/test/context-engine-deep.test.ts: 新增 3 个测试用例覆盖过滤逻辑

✅ 验证方式 (How to Verify)

  • pnpm lint 通过(0 errors, 663 warnings 均为预存)
  • tsc -b 通过(web-ui 的 rehype-highlight/mermaid 类型错误为预存)
  • pnpm vitest run packages/core/test/context-engine-deep.test.ts — 22 tests passed
  • pnpm vitest run packages/core/test/ packages/org-manager/test/ — 2812 passed, 2 failed (预存: multimodal-providers API key), 9 skipped

✅ 质量自检清单

Spec / 设计文档

  • 设计思路: 复用 TaskProjectContext 的 project.teamIds → ContextEngine 在 buildIdentitySection 中按需过滤
  • 代码实现与设计文档逐条匹配

测试覆盖

  • 新增单元测试: context-engine-deep.test.ts 3 个用例
  • 测试覆盖: 有 projectTeamIds ✅ 无 projectTeamIds ✅ 无 projectContext ✅

编译验证

  • tsc -b 通过
  • pnpm test 全部通过(无新增失败)

👤 评审人

  • Reviewer: Code Reviewer (Code Reviewer) — 请按规范检查 Spec/测试/文档/编译

- 在 TaskProjectContext.project 中添加 teamIds 字段
- task-service 在构建项目上下文时传递 teamIds
- context-engine 的 buildIdentitySection 按 projectTeamIds 过滤 otherTeams
- 非项目场景(心跳、自由聊天)保持全量 otherTeams
- agent_list_colleagues 工具不受影响,始终返回全部成员
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant