跳到主要内容

CODELY.md

CODELY.md 是一个持久化记忆文件,为 Tuanjie AI 提供项目特定的指令和上下文。其内容会在每次对话时自动加载到系统提示词中,确保 Tuanjie AI 始终掌握项目的最新指引。

可以将其理解为 AI 在每次会话开始时都会阅读的"项目指南"。


工作原理

CODELY.md 采用层级化加载模型。系统按以下顺序查找两个位置:

优先级位置作用范围
1<workspace_root>/CODELY.md项目级 — 仅针对当前项目
2~/.codely-cli/CODELY.md全局级 — 跨所有项目共享

两个文件都会被加载并拼接在一起(项目级在前,全局级在后)。空文件会被自动跳过。

内容注入方式

每个文件的内容在追加到系统提示词之前,会被包裹在上下文标记中:

--- Context from: CODELY.md ---
(你的文件内容)
--- End of Context from: CODELY.md ---

--- Context from: ~/.codely-cli/CODELY.md ---
(你的全局文件内容)
--- End of Context from: ~/.codely-cli/CODELY.md ---

显示名称使用相对于工作区根目录的相对路径,因此你可以清楚地知道每个内容块来自哪个文件。


快速上手

通过/init 命令创建

当项目根目录下不存在 CODELY.md 时,新建对话面板会显示 "init" 的气泡。点击它(或输入 /init general/init unity)会发送一个提示,指示 AI 分析你的代码库并自动生成 CODELY.md 文件。

生成的文件通常包括:

  • 项目概述和用途
  • 关键技术和框架
  • 构建、测试和 lint 命令
  • 仓库结构
  • 开发规范
  • 常见工作流

生成后,由于 CODELY.md 已存在,"Init" 气泡会消失。

手动创建

创建项目级 CODELY.md

在项目根目录下创建 CODELY.md 文件:

CODELY.md
# 项目指南

## 概述
这是一个使用 npm workspaces 的 TypeScript 单仓库。

## 编码规范
- 仅使用 ESM 导入(不使用 CommonJS 的 `require`
- 遵循 2 空格缩进
- 所有函数必须有显式返回类型

## 测试
- 单元测试使用 Vitest
- 运行测试命令:`npm run test`

创建全局 CODELY.md

在全局 Codely 文件夹(~/.codely/CODELY.md)中创建 CODELY.md 文件,用于适用于所有项目的偏好设置:

~/.codely/CODELY.md
# 全局偏好

- 始终使用中文回复
- 优先使用函数式编程模式
- 为导出的函数添加 JSDoc 注释

验证是否生效

创建或编辑 CODELY.md 后,文件会在下次配置重新加载时自动加载。你可以通过向Tuanjie AI提问一个依赖你所写指令的问题来验证是否生效。


记忆工具(Save Memory)

AI 可以使用内置的 Save Memory 工具主动保存事实CODELY.md。这在以下情况发生:

  • 你明确要求 AI 记住某些内容(例如,"记住我们生产环境使用 PostgreSQL"
  • AI 识别出值得为未来会话保留的、清晰简明的事实

记忆范围

记忆工具支持两种范围:

范围文件路径用途
global~/.codely/CODELY.md个人偏好、跨项目标准
project<workspace>/CODELY.md项目特定的事实和指令

记忆区段格式

保存的记忆会追加到专用区段标题下:

## Codely Added Memories

- 本项目生产环境使用 PostgreSQL 15
- API 速率限制为每分钟 100 次请求
- 提交前始终运行 `npm run lint`

该工具会自动:

  • 如果 ## Codely Added Memories 标题不存在,则自动创建
  • 在标题下以列表项形式追加新条目
  • 保留文件中的所有现有内容
信息

记忆工具仅保存简短、自包含的事实。不适用于长篇文档或会话特定的上下文。如果不确定,AI 会询问 "需要我帮你记住这个吗?"


手动重新加载

如果在会话中途编辑了 CODELY.md,AI 不会自动感知变更。要重新加载而无需重启:

  1. ConfigHandler.updateUserMemory() 方法会仅重新读取层级化记忆文件,而无需完整重新加载配置。
  2. 实际操作中,触发配置重新加载(例如切换配置文件再切回来)即可重新加载 CODELY.md

最佳实践

推荐做法

  • 保持简洁 — 整个文件内容会注入到每次系统提示词中。避免用大量代码示例或冗长说明填充。
  • 聚焦于"为什么"和"怎么做" — 记录 AI 无法从代码中直接推断的规范、决策理由和工作流步骤。
  • 使用清晰的结构 — 使用 Markdown 标题(##)和列表来组织内容,方便 AI 解析各个区段。
  • 提交到代码仓库 — 项目级 CODELY.md 应纳入版本控制,让整个团队受益。
  • 使用记忆工具保存增量事实 — 让 AI 追加小事实,而不是每次新增偏好都手动编辑文件。

避免做法

  • 不要复制代码 — 不要粘贴大段代码片段;AI 可以直接读取文件。
  • 不要存放密钥CODELY.md 会被注入到提示词中,可能在日志中可见。切勿存储 API 密钥或凭据。
  • 不要用于会话特定上下文 — 会话上下文请使用对话本身。
  • 不要写得过长 — 过长的文件会在每次请求中消耗上下文窗口预算。

示例:完整的 CODELY.md

CODELY.md
# 我的项目 — AI 助手指南

> 最后更新:2025-01-15

## 1. 项目概述

基于 Node.js、Express 和 PostgreSQL 的电商后端服务。
使用 npm workspaces 管理的单仓库。

## 2. 常用命令

- **安装依赖:** `npm install`
- **构建:** `npm run build`
- **测试:** `npm test`
- **Lint:** `npm run lint`
- **格式化:** `npm run format`

## 3. 编码规范

- TypeScript 严格模式,仅使用 ESM
- 2 空格缩进,单引号,分号
- 所有导出函数必须有显式返回类型
- 使用命名导出(不使用默认导出)
- 错误处理:使用自定义 `AppError`

## 4. 架构

- `packages/api/` — REST API 服务器
- `packages/shared/` — 共享类型和工具
- `packages/db/` — 数据库模型和迁移
- `packages/cli/` — 管理任务 CLI 工具

## 5. 测试

- 单元测试:Vitest(`*.test.ts`
- E2E 测试:`integration-tests/`
- 提交前始终运行 `npm test`

## Codely Added Memories

- 生产数据库是 AWS RDS 上的 PostgreSQL 15
- 预发布环境地址是 https://staging.example.com