文章目录
Toggle前言
由于近日以cursor、claude code为代表的vibing编程模型逐渐流行,本章将分享介绍近期工作中借助claude code+Kimi K2模型开发dify插件的实践过程。
文章概要
本文主要包含两个部分:
1、环境搭建:claude code+Kimi K2开发环境的配置
2、插件开发:使用claude code+Kimi K2开发dify插件
1.开发环境准备
1.1 安装node.js
- 访问https://nodejs.org/en/download
- 按照官网提示,安装node.js即可
1.2 安装claude code
确认node.js已经安装成功后,执行以下命令安装claude code
npm install -g @anthropic-ai/claude-code
安装需要一定时间,耐心等待安装完毕后,使用claude --version验证安装成功即可。
1.3 注册Kimi K2
备注:注册Kimi账号之后,默认会赠送15元额度,由于其有用量限速,所以最好充值50元以上。
1.4 配置claude code
Mac系统在终端下执行
export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic
export ANTHROPIC_AUTH_TOKEN=your-api-key
为了避免每次执行命令时都输入API KEY,我们可以将API KEY保存在环境变量中,在终端下执行
echo -e '\n export ANTHROPIC_AUTH_TOKEN=your-api-key' >> ~/.bash_profile
echo -e '\n export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic' >> ~/.bash_profile
echo -e '\n export ANTHROPIC_AUTH_TOKEN=your-api-key' >> ~/.zshrc
echo -e '\n export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic' >> ~/.zshrc
通过以上设置,在命令行(或者在cursor、vscode中启动终端)中,输入claude命令就可以启动claude了,如图:

2.Dify插件开发
接下来,我将借助一个实践项目,分享claude的使用过程。
特别说明:在开展本次调研的时候,我对dify平台的源码不了解,对于dify插件的开发更是一无所知,以下所开展的工作主要借助claude code以及dify的官方文档完成。
2.1 需求描述
需求:找到一种方法,能够将课件平台与Dify交互时所使用的sys.user_id传递给模型聚合平台One-API系统,从而使得One-API系统能够获取到用户信息,开展相关的业务逻辑。
2.2 需求调研
基于以上的需求,我们将通过claude来解决上述的工作问题。
第一步:由于问题的解决涉及到dify相关信息的调研,所以我们将dify平台和dify插件的源码进行clone。
# clone dify平台源码
git clone https://github.com/langgenius/dify.git
# clone dify插件源码
git https://github.com/langgenius/dify-official-plugins.git
第二步:启动claude,借助其代码理解能力进行分析调研
# 进入到dify-official-plugins目录
cd dify-official-plugins
# 启动claude
claude
第三步:输入我们的需求,让claude进行分析调研
我有一个需求,请帮我评估如何实现相应的需求。
背景:
1、我在Dify平台上配置了一个工作流,这个工作流中通过sys.user_id记录了用户的信息。
2、我在Dify平台上借助Dify平台的模型供应商功能,通过OpenAI-API-compatible配置了对应的模型提供地址http://192.168.6.188:3000/v1以及API-KEY
3、在工作流中会使用到上述OpenAI-API-compatible已经配置好的模型,例如:deepseek-chat
4、以上链路目前是可以运行的。
需求:
1、我现在希望将工作流中的sys.user_id信息透传给大模型供应商http://192.168.6.188:3000/v1,也就是说在工作流中使用大模型的时候,发送给大模型的请求会携带sys.user_id的信息,从而使得大模型供应商接收到sys.user_id,进而进行相关处理。
2、由于Dify平台后续会持续升级,所以我不太希望修改Dify平台的源码来实现,因为这样做每次升级Dify平台的时候都需要进行代码合并,最好能够借助插件系统实现上述功能。
3、我希望在openai_api_compatible插件的基础上进行功能添加
参考资料:
1、openai_api_compatible插件源码:位于当前工程下的models/openai_api_compatible
2、dify平台源码位置:/Users/deadwalk/Code/ai_proj_llm/dify
请你根据我的需求,仔细分析models/openai_api_compatible插件的实现和dify平台的源码实现,给出可行的解决方案输出到docs目录。
要求:
1、方案中需要详细说明实现原理
最终,经过claude的分析调研,给出了相应的解决方案,方案按照提示词要求,输出在了docs目录下。

2.3 插件开发
整个开发过程,claude code会按照拟定好的todo,一步一步执行。
- 基本上不需要人工参与,在需要一些有权限的操作时,claude code会进行提示获取权限。
- 为了省事,你也可以选择不再提示,这样claude code会直接进行编辑、改写等操作。
2.4 插件打包
插件开发完毕之后,通过dify plugin命令进行打包,然后在dify平台安装即可。
2.4.1 安装dify plugin
Mac下通过brew安装dify plugin
brew tap langgenius/dify
brew install dify
更多安装方式可以查看Dify官方文档:Dify插件安装
2.4.2 插件打包
切换到插件源码的上一级目录下,执行以下命令打包插件
dify plugin package ./openai_api_compatible
插件打包成功后,会生成一个.difypkg的文件
2.5 插件测试
2.5.1 关闭Dify平台的签名检查
# 切换到dify的docker目录
cd docker
# 编辑.env 搜索并修改FORCE_VERIFYING_SIGNATURE 的值为false
FORCE_VERIFYING_SIGNATURE=false
重启Dify的docker容器即可。
具体说明请见Dify官网FAQ
2.5.2 上传并安装插件
在Dify平台的插件管理页面,上传之前打包好的插件文件并安装

2.5.3 测试插件
可以看到,one-api上接受的服务日志X-User-Id与Dify运行时提供的sys.user_id一致。
备注:one-api服务我们已经进行了改造,可以将接收到的headers信息打印出来,方便我们查看透传信息
花费情况
总结
- 借助
claude code + Kimi K2模型,可以开展非常多的编码工作,比如:代码调研、方案评估、代码实现等。 - 相比
cursor的使用过程,claude code独立完成性更高,花费更加便宜。 - 相比
cursor动辄几十美元的花费,不但费用降低至原来的约1/10之一,整个代码实现过程中,不需要像cursor一样进行多次代码confirm的确认生成的代码质量。 - 同时使用
cursor和claude code并不冲突,完全可以在cursor中启动一个终端,在终端中运行claude code,然后通过terminal提供提示词。 - 对于开发人员而言,无论是
cursor还是claude code,能够提供结构化的提示词,同时具备清晰的问题分析和决策能力,是未来最为重要的能力。












