记忆
概述
IFLOW.md 是 iFlow CLI 的核心记忆文件,它为 AI 助手提供项目特定的指令上下文和背景信息。与传统的配置文件不同,IFLOW.md 使用自然语言编写,让 AI 能够更好地理解你的项目结构、编码规范和工作流程。对于CLI工作你有任何的说明和约束都可以编写在这个文件当中
主要功能
- 上下文提供:为 AI 提供项目背景、编码规范、架构信息
- 个性化定制:根据项目特点定制 AI 的行为和响应
- 分级管理:支持全局、项目和子目录级的分层配置
- 模块化组织:通过文件导入实现配置的模块化管理
- 记忆保存:通过 save_memory 功能持久化重要信息
文件存储位置和分级设计
IFLOW.md 采用分级系统,按照以下优先级加载(数字越大优先级越高):
1. 全局级别(优先级:低)
~/.iflow/IFLOW.md
- 作用范围:所有 iFlow CLI 会话
- 用途:存储个人偏好、通用编码规范、全局记忆
- 示例内容:个人编程习惯、常用库偏好、个人信息
2. 项目级别(优先级:中)
/path/to/your/project/IFLOW.md
- 作用范围:特定项目
- 用途:项目架构、技术栈、团队规范
- 示例内容:项目概述、API 文档、部署说明
3. 子目录级别(优先级:高)
/path/to/your/project/src/IFLOW.md
/path/to/your/project/tests/IFLOW.md
- 作用范围:特定目录及其子目录
- 用途:模块特定的指令和约定
- 示例内容:模块说明、特殊测试要求
加载机制
iFlow CLI 会从当前工作目录开始,向上搜索到项目根目录和用户主目录,加载所有找到的 IFLOW.md 文件。内容会按照优先级顺序合并,高优先级的内容会覆盖低优先级的内容。
自定义文件名
可以通过配置文件自定义上下文文件名:
{
"contextFileName": "AGENTS.md"
}
或支持多个文件名:
{
"contextFileName": ["IFLOW.md", "AGENTS.md", "CONTEXT.md"]
}
/init 操作详解
/init 命令是快速开始的最佳方式,它会自动分析你的项目并生成定制化的 IFLOW.md 文件。
执行流程
- 检查现有文件:如果当前目录已有 IFLOW.md,会提示不进行修改
- 创建空文件:首先创建一个空的 IFLOW.md 文件
- 项目分析:扫描项目结构、依赖、配置文件
- 内容生成:基于分析结果生成定制化内容
- 文件填充:将生成的内容写入 IFLOW.md
分析 内容
/init 命令会分析以下项目特征:
- 技术栈识别:基于 package.json、requirements.txt 等文件
- 项目结构:目录布局、关键文件位置
- 构建工具:webpack、vite、rollup 等配置
- 测试框架:jest、mocha、pytest 等
- 代码规范:ESLint、Prettier、Black 等配置
- 文档结构:README、API 文档等
使用示例
# 在项目根目录执行
$ iflow
> /init
# 输出示例
Empty IFLOW.md created. Now analyzing the project to populate it.
Analyzing project structure...
Generating customized context...
IFLOW.md has been successfully populated with project-specific information.
生成内容示例
# 项目上下文
## 项目概述
这是一个基于 TypeScript + React + Node.js 的全栈应用。
## 技术栈
- 前端:React 18, TypeScript, Vite
- 后端:Node.js, Express, TypeScript
- 数据库:PostgreSQL
- 测试:Jest, React Testing Library
## 项目结构
src/ ├── components/ # React 组件 ├── services/ # API 服务 ├── utils/ # 工具函数 └── types/ # TypeScript 类型定义
## 开发规范
- 使用 TypeScript 严格模式
- 组件采用函数式写法
- 使用 ESLint + Prettier 代码格式化
- 提交前运行 pre-commit hooks
模块化管理(导入功能)
IFLOW.md 支持通过 @ 语法导入其他文件,实现配置的模块化管理。
导入语法
# 主 IFLOW.md 文件
@./shared/coding-standards.md
@./project-specific/architecture.md
@../global/personal-preferences.md
支持的路径格式
相对路径
@./file.md # 同目录
@../file.md # 父目录
@./components/readme.md # 子目录
绝对路径
@/absolute/path/to/file.md
文件组织示例
project/
├── IFLOW.md # 主配置文件
├── .iflow/
│ ├── architecture.md # 架构说明
│ ├─ ─ coding-style.md # 编码规范
│ └── deployment.md # 部署说明
└── src/
└── IFLOW.md # 源码目录特定配置
主 IFLOW.md:
# 项目总体配置
@./.iflow/architecture.md
@./.iflow/coding-style.md
@./.iflow/deployment.md
## 项目特定指令
请在处理这个项目时遵循上 述架构和编码规范。
安全特性
- 循环导入检测:自动检测并阻止循环引用
- 路径验证:确保只能访问允许的目录
- 深度限制:防止过深的导入嵌套(默认最大 5 层)
- 错误处理:优雅处理文件不存在或权限问题
调试导入
使用 /memory show 命令查看完整的合并结果和导入树:
Memory Files
L project: IFLOW.md
L .iflow/architecture.md
L .iflow/coding-style.md
L .iflow/deployment.md