AI 只解决眼前那个坑【下篇】:写进skills了,重建还是踩坑
上篇把「来源、图片、鲁棒性」一处一处补齐,可聊天照样半小时出一个寂寞。这次不修功能了,改做两件事:把一路上被坑出来的教训,一条一条写进 skills;再用一个全新的项目做一次实地验收------看它到底记住了没有。
前言
下篇是「半调教、半重建」:先顺着对话把调教 AI 的过程原样保留------哪些要求写成 skills,又踩了多少坑;然后让 opencode 创建一个新项目,把 rules 拿来实战。文中对话记录照旧一字不改,图片文件名与操作流水对应,情绪词原样保留。
一、调教AI:把这一章的经验一条条写进 skills
1.1 调教AI
太他妈的笨了,总想着要"完美",又不能思考,听说简单,立马高兴去掉所有。唉。真他妈的,日了狗了。
css
要按我的思路来写,不要搞那些p用没有的东西,默认肯定是在同一目录,加这些没用的东西干嘛,写进skills

不要缩减我的功能,代码可以重构,写在一起,但前端必须一个功能一个功能写。写进skills

ini
回到这个脚本java -Xmx512m -Dfile.encoding=UTF-8 -jar ivy-chat-docsolo.jar --spring.config.location=application.yml 文件名是run_jar.cmd 怎么显示中文
d WebApplicationContext
[19:47:27.533] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1628 ms
[19:47:28.310] INFO v.w.i.c.c.VectorStoreConfig - [vector] 鍒濆鍖栨湰鍦?TF-IDF 鍚戦噺瀛樺偍, dataDir=./data
[19:47:28.326] INFO v.w.i.c.c.LocalTfidfVectorStore - [tfidf] 鏃犳寔涔呭寲鏂囦欢, 鏂板缓鍚戦噺瀛樺偍: C:\Users\Administrator\Desktop\1\run\.\data\vector\tfidf.json
[19:47:28.334] INFO v.w.i.c.c.LuceneConfig - [lucene] 绱㈠紩鐩綍 = C:\Users\Administrator\Desktop\1\run\.\data\index
[19:47:28.628] INFO v.w.i.c.c.LuceneConfig - [lucene] IndexWriter 鍒濆鍖栧畬鎴?
[19:47:29.094] INFO v.w.i.c.t.ThreadPoolAutoConfiguration - 鍒濆鍖栫嚎绋嬫睜, 鍓嶇紑: ivy-default-, 鏍稿績鏁? 10
[19:47:29.130] INFO o.a.c.h.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8200"]
[19:47:29.147] INFO o.s.b.w.e.t.TomcatWebServer - Tomcat started on port 8200 (http) with context path '/'

ini
@SpringBootApplication
@EnableConfigurationProperties(ChatProperties.class)
public class KChatApplication {
private static final Logger log = LoggerFactory.getLogger(KChatApplication.class);
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(KChatApplication.class, args);
ConfigurableEnvironment env = run.getEnvironment();
String appName = "聊天版私文简搜后台接口";
String port = env.getProperty("server.port");
String slog = StringUtils.banner(appName, port, true);
log.error(slog);
} 这个功能要加上,写进skills,每个项目都要加上 StringUtils.banner,有doc.html 第三个参数为true

1.2 编写run_jar.cmd
前面和OpenCode对过话
cmd
@chcp 65001 >nul
java -Xmx512m -Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -jar ivy-chat-docsolo.jar --spring.config.location=application.yml

1.3 vs运行前端


确实改了,不知道能不能最终完成任务。


上传文件后,开始聊天


好长时间,但聊天内容还是没有


半个小时还是生成了个寂寞。

又是半个小时

二、我重来:先创建项目
2.1 创建自己的项目
让OpenCode创建项目,正好测试一下前面调教AI有没有效果。
scss
按skills创建一个新的项目 ivy-chat-xdocsolo-wrapper,目录架构和ivy-chat-docsolo-wrapper类似。
cores的内容复制过来,services里面创建ivy-chat-xdocsolo,
并创建TestController,可以直接直接返回 R.success()
具体内容我来填写,只创建项目,spring boot启动,TestController。



还少了一个日志
bash
还少了一个日志 logback-spring.xml <fileNamePattern>logs/knowledge-%d.log</fileNamePattern>
filename为项目名,写进skills

再按docsolo一样编写设计文档,以最新的方案编写。
再按docsolo一样编写设计文档,以最新的方案编写。


2.2 查看文档
一看文档就火大,肯定会犯同样的错误。

三个完整功能,一个不少:① 上传 zip;② 发布到知识库(deploy);③ 聊天问答。
这样写必然会在前端和前面一样拉拆。
python
**三个完整功能,一个不少**:① 上传 zip;② 发布到知识库(deploy);③ 聊天问答。这个就不严谨,还会按你那样编写,一个按钮做两件事。改上传zip并deploy
python
3.详细设计中的
3.1 上传 zip(独立功能 ①,绝不触发发布)
前面扯了几个小时还这样,还绝不触发发布,就是直接发布,真没办法。
我真无法想象,真正使用AI编程会是什么样的了。
python
3.详细设计中的3.1 上传 zip(独立功能 ①,绝不触发发布) 看看多sb 我们扯了几个小时为这个问题,怎么写的文档还这样,你是不是就抄过来就结束了?


写入skills的文档都是错的,真验证了我那句话,不能有否定。
python
**前端一个功能一个功能写**:上传=一步闭环,不再拆"上传按钮 + 发布按钮"两个互相纠缠的按钮;聊天独立。两个功能界面各自独立、清晰、一个不少。 这个就写错了,不是不再拆上传按钮 + 发布按钮。而是不要将两个功能放在一个按钮。真实开发不是一个上传zip,一个发布吗?我要的是两个功能是独立的,不要共用一个按钮。
也真好,这是测试项目,遇到这么多问题,可以为以后真实项目做一些准备工作。

操,又搞错了,真无语。

先停止了错误修改,不能一直错下去。
python
操,又搞错了,真无语。
写入skills的文档都是错的。
**前端一个功能一个功能写**:上传=一步闭环,不再拆"上传按钮 + 发布按钮"两个互相纠缠的按钮;聊天独立。两个功能界面各自独立、清晰、一个不少。 这个就写错了,不是不再拆上传按钮 + 发布按钮。而是不要将两个功能放在一个按钮。真实开发不是一个上传zip,一个发布吗?我要的是两个功能是独立的,不要共用一个按钮。
skills都写错了,能正确吗?妈的,为什么你会一直犯这种傻错误呢?牛也教会了呀,你还不行? 不要这么傻能不能写进skills?
这样写都无法理解。现在的人工智障啊。

只能先还原再来了。
全部改错了,先还原前两步再说。

没办法,搞不定这头猪。
python
操你妈?我要的是 1、上传zip, 并增加deploy 2、单独的deploy目录,3聊天。我说的是你的skills写错了。 这是skills的内容:**前端一个功能一个功能写**:上传=一步闭环,不再拆"上传按钮 + 发布按钮"两个互相纠缠的按钮;聊天独立。两个功能界面各自独立、清晰、一个不少。 要先改正确,再写文档。

markdown
脑子真是个好东西啊,写那么清楚还能搞错。
1. **上传 zip并deploy** ------两步操作,选择zip,另一个发布按钮
2. **发布到知识库(deploy目录)** ------ 独立按钮,对**单独的 deploy/ 目录**构建发布
3. **聊天** ------ 独立区域
能不能理解?要改skills。明白不1,不是上传zip 是两个操作,上传zip,然后deploy,2是独立功能,与一的deploy没有关系。
每次假马思考,看着都恶心,这么笨,一个这么简单的功能都搞不定。那些真正使用AI的人,我是真佩服。

我理解了一定要明确告诉这猪,一定要肯定语气或强烈的否定。不能让他想。不能让他想。唉,我已无力了。

还有脸问我要不要同步,真是猪啊,不同步和你说这么久干嘛

我的这次体验,一定要好好总结,对后面一定有用处。

小结
这一篇不修功能,只修「记性」。
调教 AI 这段时间下来,最大的体会是:跟它讲道理没用,得把要求一条一条写成 skills 钉进去,它才记得住。它有个很要命的毛病------总想着"完美",你一说简单,它立马高兴地把功能全删了。不写进 skills,永远记不住。但写进 skills 也不保险,规则本身还得复核,这次就把「两个独立功能」抄成了「不再拆两个按钮」,写错了比不写还坑。
重建项目验证又是一轮新发现:logback、设计文档、TestController 该有都有,表面看像模像样,但文档里的规则照样抄错。真验证了那句话------AI 只解决眼前那个坑,你写清楚一点,它少挖一铲。还有那个「不能有否定」的教训,肯定句式是铁律这一点算是彻底坐实了。
一句话:写进 skills 只是第一步,重建一个项目跑一遍,才能知道这猪到底记住了没。这次踩的坑,后面做真实项目时一定能用上。