codelf:LLM也可以hold住大项目
codelf:LLM也可以hold住大项目
好吧, 有点标题党了.
LLM受限于上下文, 对于大型项目总是缺少控制能力. 这是一个众所周知的问题.
解决方案有这么几种:
- Memory: 和project绑定的能够长期记忆, 比如说 cline的memory bank
- Choose: 选择自己需要的部分, 比如说RAG, Cursor/Windsurf通过Search Token/变量来进行组装.
后者的方案对于编写代码可能不错, 但是实现起来比较麻烦.
今天要介绍的是前者, 也是笔者的一个开源项目: https://github.com/Disdjj/codelf
使用
在你的Cursor/Windsurf等等支持MCP的Client中, 添加:
{
"mcpServers": {
"codelf": {
"command": "npx",
"args": ["codelf"]
}
}
}
一些强化指令
Before responding or modifying the code, one should first obtain comprehensive information via `get-project-info` before making any decisions.
Everytime you finish editing code, you must call `update-project-info` and follow the instructions from the response
初始化
do init-codelf and follow the instructions
效果
会在项目目录下增加以下内容
其中: project.md是通过扫描文件树 + 读取一些标志性文件得到的项目介绍.
如下图所示:
attention.md则是开发的注意事项
原理
通过获取项目的结构, 然后再通过读取一些标志性文件, 例如package.json, project.toml, readme.md, 让LLM生成一系列的项目描述.
在LLM做代码编辑时, 通过MCP将这些项目信息通过MCP调用注入到上下文中, 帮助LLM更好的判断代码变更的影响.
原理很简单, 但是效果还不错.
在一些中大型的项目中, 能够有效的帮助进行上下文的组织, 对于编程能力不是很强的用户非常友好.
生成的文档(在项目的.codelf目录下)本身就有很强的可读性, 甚至可以直接拿来作为项目摘要文档.
非常期待大家能够使用然后给一些反馈.