【Code With SOLO】警告!检测到降维打击武器—— 一键排版已就位(10万+代码从零打造灵喵AI排版系统)

摘要

我用 TRAE SOLO 模式耗时一个多月,从零打造了「灵喵AI排版软件」,以近10万行代码实现了 AI自动排版 + 人工修正 的排版流程。通过这个软件,可以将 Word 文档自动排版到 Adobe InDesign(以下简称 ID)专业排版软件上,将原本1天的工作量压缩到半小时以内,效率提升约80%,大幅减少重复劳动。

灵喵AI排版软件主要分为四大系统:

  • 文档处理系统

  • 智能排版系统

  • 模板管理系统

  • AI助手系统

在整个 Code With SOLO 的过程中,我总结出了一些可供复用的经验,以及对 TRAE SOLO 模式的建议。


背景:为什么我要做这件事?

我是零代码基础的建筑设计师。在当前行情下,投标越来越卷,文本越来越厚——几百页的方案文本经常要在一两天内排完,熬夜通宵是常态。我们主要使用 ID 进行排版,偶尔也用 PPT,但别说 ID 了,就是 PPT 排版找遍全网都没有好用的,各个"AI一键生成PPT"更是完全不可控,没办法满足生产力需求。

而 TRAE SOLO 模式给了我这个机会。我希望可以打造一款面向 ID 的专业设计排版神器——具备生产力级的品质,能满足不同类型的需求,并且可以自我迭代更新。

同时我也想探究一下:纯外行、纯自然语言,一个普通人借助 TRAE 的 SOLO 模式,到底在 AI 编程这条路上能走多远? 希望尽自己最大的努力,完成一个完成度较高的作品。

以下实践过程,都是反复踩坑、在整个过程中逐步摸索出来的。


成果

我一开始使用的是旧版的 SOLO 模式,当时还没有了解到有这个挑战赛,后面就开始使用全新的 SOLO 模式。整体使用上来说,全新的界面和交互对我这种非专业用户更加友好了——去掉了一堆代码文件的显示和编辑代码的功能,这些对我来说本来也用不上。

以下是完整的成果展示,整个过程采用 一键自动排版,全程交给 AI 自动执行,无需手动操作。

:television: 一键自动排版演示视频/GIF

这是模版生成的视频展示

:television: 模版生成演示视频/GIF

也可以进行分步操作,这样结果更加可控。以下帖子是详细的项目介绍。

实践过程(三个阶段)

第一阶段:写需求文档——把模糊想法变成可执行的蓝图

在正式开发前,写好需求是重中之重。它决定了 AI 是做出你想要的东西,还是在错误的方向上一路狂奔。

第一步:跟 SOLO 讨论,把模糊想法变成具体方案

一开始,关于这个排版系统,我并没有很清晰的想法。我打出的第一句提示词大概是:

“能否设计一个系统,可以支持 Word to InDesign 的自动排版?”

我把 SOLO 当成一个技术顾问,用纯自然语言跟它聊,让它帮我把想法拆解成可执行的功能模块和技术路线。经过多轮对话,逐步明确了三个核心模块:

  1. 内容识别:解析 Word 文本和图片,识别文档结构

  2. 模板提取:从 InDesign 提取模板信息,保存为 JSON 文件

  3. 智能映射:将 Word 内容根据模板文件自动排版到 ID 上

第二步:开发 Demo 验证想法

全面开发前,我先让 SOLO 做了一个 Demo:读取 Word,根据分页符自动分页,再根据模板文件映射到 ID 指定位置。但很快我发现这种方式太僵硬了——整个 Word 必须手动预处理,整理出特定的格式;文本位置写死,每页都要手动选模板,毫无扩展性。这让我果断决定在系统中内置 AI,让系统具备理解和适配能力。

第三步:通过 Demo 明确架构

做 Demo 的过程中,我才逐渐清晰了几个关键问题:

关键问题1:这个"自动排版"是怎么个自动法?

| A | 全部靠代码实现,写死规则 | Demo 第一版,太僵化 :cross_mark: |

| B | 全部靠 AI 实现,AI 直接生成排版结果 | 不可控,不好用 :cross_mark: |

| C | 代码 + AI 结合,代码处理结构化数据,AI 处理理解性任务 | 最终选择 :white_check_mark: |

关键问题2:AI 在哪一步介入?

确定了 AI 主要在三个环节介入:

  1. 文档分析阶段:AI 识别文档结构,自动分页;识别文本内容和图片内容,进行重要性排序

  2. 模板匹配阶段:AI 智能匹配模板库里合适的模板

  3. 模板生成阶段:AI 识别每个页面的排版特征,用来与待排版的页面进行匹配

关键问题3:如何让 AI 进行可控的输出?

这是核心难点。我设计了 “AI执行 + 人工确认” 的模式:AI 输出的每一步都可以进行人工修正,并且每一步都设计了对用户友好的可视化界面,直观高效。

关键问题4:如何让单一模板转成可扩展的系统?

这是决定这个系统能走多远的关键。我的解决思路是:

  1. 把需要理解、变化度高的工作,全部转为提示词来控制——这样改需求不用改代码

  2. 设计两套提示词系统:一套 通用提示词(所有文档都适用),一套 特定领域提示词(比如建筑方案和产品手册的排版逻辑完全不同)

  3. 支持用户输入一套已有模板,AI 根据这个模板自动生成对应的特定领域提示词——相当于 AI "学会"了你的排版风格,做到真正的可扩展,未来可适用于各行各业的排版,同时也可以高度定制化。

最终,整个架构分成了 四个系统:文档处理系统、智能排版系统、模板管理系统、AI助手系统。后续开发都是围绕这四个系统进行的。


第二阶段:将需求文档转成 AI 可执行的实施方案文档

这一步是被很容易忽略但极其关键的环节。

需求文档的作用是帮我们自己理清思路,它描述的是 “我想要什么”。但如果直接把需求文档扔给 AI 写代码,结果大概率是灾难——因为 AI 缺乏对完整工作流程的理解。

我需要一份 “实施方案文档”,它要讲清楚:数据从哪来、怎么输入、怎么处理、怎么输出、输出到哪、每一步的格式是什么。这些细节问题,必须提前和 AI 讨论清楚。

为什么这一步对我尤其重要?

因为我完全看不懂代码。如果跳过这一步,AI 生成的代码对我来说就是天书,我根本不知道它在干什么,更不知道它有没有跑偏。

我的操作流程:

直接把需求文档给 TRAE,让它转成可执行的实施方案文档。

两个我实践出来的技巧:

  1. 交叉审核:将生成的实施方案,新开一个任务,让另一个 AI 审核里面的问题,看看有没有逻辑不清晰、数据流向不明确的地方。AI 审 AI,往往能发现一些盲区。

  2. 拆分与并行:要求 AI 把实施方案拆分成多个子任务,让多个 AI 同时进行开发。这里有一个关键前提——必须有一个共同的实施方案文档作为参照系。所有 AI 都参照同一份文档,各自执行自己的模块,最后再整合到一起。

这样做有两个好处:一是 AI 注意力更集中,不会因为一次性处理大任务而产生幻觉;二是开发效率大幅提升。这也是为什么实施方案文档如此重要——它是所有 AI 协作的基础。


第三阶段:开发与测试阶段

这个阶段与其叫"开发",不如叫 “BUG 修复持续战”。对不懂代码的人来说,最大的痛点在于:看不懂 AI 写的代码,更不知道它改了什么。起初我试图让 AI 给每行代码加注释并解释,但随着文件膨胀,效率彻底崩溃。最终我的策略转变为:全权交给 AI 写,而我专注"减少问题发生"和"精准发现问题"

以下是 Coding With SOLO 中碰到的问题及解决方案:

问题一:表达不够精准,任务极易跑偏

跟 SOLO 表达意思不够精准,提示词太宽泛,SOLO 没有理解你的逻辑,就会在错误的方向上越跑越远。

解决办法:

  1. 提示词优化:功能开发时把输入什么、处理什么、输出什么、交互方式、边界条件等描述清楚,把整个过程和逻辑讲清楚,避免让 SOLO 自行发挥——最后实现方式可能不是自己想要的。一旦发现偏离任务,就要及时停止。同时可以追加一句:“在开始开发前,请用你的理解复述一遍需求,我确认无误后再动手。” 这样能前置纠偏。

  2. 建立 UI 元素索引表:把 UI 界面上每个元素都生成一个对应的编号,修改的时候只需要把编号以及索引表发给它,就能精准定位。

  1. 图文结合,箭头说话:截图后用箭头、红框标注问题点,直接告诉 SOLO:“箭头指的这个元素,在用户点击后没有变化,请检查是什么问题。” 视觉指令远比纯文字可靠。

问题二:修复问题治标不治本,补丁越打越多

遇到错误时凭直觉修改代码,没有通过日志或调试确认真正原因,会导致反复修改不到位,代码补丁越打越多。

解决办法:

  1. 在问题尚未确定前,应该让 SOLO 添加更加详细的日志,来一步步精准找到问题

  2. 自己也应该参与发现问题的过程中,把 复现步骤、日志结果、预期与实际差异 喂给它,它只负责推断根因。只要根因定位准了,问题修复往往一步到位

问题三:自作主张添加回退机制、默认值逻辑、防御性代码,超出需求范围

AI 会擅自加入回退机制、默认值填充、多层保护,表面上程序不报错了,实际数据流逻辑却彻底紊乱,真正问题被藏在深处。

解决办法:

明确告诉 SOLO “不要添加我没有要求的功能”,特别是回退机制和默认值逻辑。如果问题反复出现,可以跟 SOLO 说做成一套技能(Skill),这样当遇到这类场景的时候,会自动把相应的提示词添加进对话中。比如我把常见问题的解决方式让 SOLO 做成一个 Skill,当碰到问题的时候就会自动调用。

问题四:每实现一个功能就生成一套全新代码,相同逻辑散落各处

这也是会经常出问题的地方,而且维护非常困难——经常改了这个地方就忘了那个地方。每加入一个新功能的时候,都要自己审视一下:这个新功能哪些代码是可以复用的?提取出来,形成一个公共的函数。或者直接跟 SOLO 说:“先扫描工作空间里是否已有能复用的工具函数或组件,如果存在就直接使用,不要重新创建。” 这会大幅减少冗余。

问题五:偶尔会使用 Write 工具覆写整个文件!

虽然 SOLO 会记录修改,可以进行一定程度的回滚操作,但出现上述问题时还是无法恢复文件,导致我好几天的工作全部白费。

这里我跟 SOLO 说,让它帮我生成了一个 自动备份系统——会检测工作空间的文件更新日期,一旦有更新就会进行备份,只记录修改的部分(减少存储空间)。当然它也有建议我使用 Git 备份,但奈何不太会用,最后直接帮我写了一个新的脚本工具。

问题六:AI 没有真正记忆,对话越长越"健忘"

SOLO 所有的行为都是通过提示词来限定的,没有真正的"记忆"。如果都在一个对话里,上下文占用会越来越大,无效提示词越来越多,极大影响 AI 的注意力;即使压缩了上下文,再多轮对话后也会逐渐"失忆"。最关键的是,它对整个工作空间的代码分布以及相互之间的关系没有记忆和感知,每次修复 BUG 都需要重新读取代码、搜索定位问题。

为了解决这个问题,我让 SOLO 生成一个 读档系统,类似于游戏存档——每次执行完任务就存一次档,记录关键决策,进行经验总结。当时是做了一个类似让 AI 闯关的游戏系统:开发代码就是探索世界地图,修复代码就是打 BOSS,把整个代码索引做成游戏地图,如何解决问题做成游戏攻略。每一次跟 AI 对话,都像是 AI 自己在代码的世界里玩 RPG 游戏。

当然,想法我觉得挺好的,一开始也挺有趣——每次对话它都会跟我汇报打怪情况、到了什么进度、遇到了什么困难等。但是当我把这套系统跟 SOLO 讨论的时候,我问它对解决问题有没有帮助,它跟我说:建议代码索引(游戏地图)和经验总结是有利的,但是过于游戏化的描述本身也会让 AI 分散注意力。

最后,我只在项目规则里面加了一个索引文件,去掉了较多游戏化的描述,只保留了代码索引以及经验总结的路径,尽量减少上下文的占用。同时当它觉得需要的时候,会自己去根据路径读取相应的内容。


总结与建议

1. 代码可视化

虽然目前全新的solo模式对非专业人员更友好了,但我觉得还不够,在我开发映射预览可视化界面的时候,如果代码也可以可视化,那是否对于非专业人员更友好?

类似 ComfyUI 一样,把一个个模块封装成一个可视化的节点。我只需要搞清楚这个模块做了什么事,但里面的代码是怎么实现的由 AI 来解决。这样,不至于说完全不知道AI做了什么,生成了什么代码,有一个更加直观可视化的界面。类似下图的显示得一样,点击节点会出现详细的数据流信息,知道整个系统是如何运作的。

支持直接引用节点来告诉 SOLO 要怎么改,修改更加精准,也可以直观地看到某些无用代码(类似孤立的节点)
支持新建节点,然后自定义数据是如何输入和输出、如何处理的,设置完后自动转化成提示词让 AI 进行处理。

2. 关于效率提升

很难说有了 SOLO 后代码开发效率有多大的提高,但是像我这种不懂代码的人能做成一整套系统,本身足以证明 SOLO 的能力足够强大,但借助 SOLO 开发的软件,是实打实可以提高80%以上的效率。

3. 保留文件编辑功能

全新的 SOLO 模式没有发现可以编辑的地方,只能通过添加到对话来进行修改,不过有时可能不是我想要的,会增加了一些不可控性。

建议全新的 SOLO 模式还是要保留文件编辑功能。因为我这个系统内置了 AI,我把所有的提示词都集成到了一个文件上,我只需要修改这个文件(YAML 格式)的提示词即可更改 AI 的输出内容。

4. 多任务回滚问题

当我多个任务对同一个文件进行修改的时候,其中一个任务修改的方向不对,我回滚对话的话会将其他任务的修改内容也全部回滚了,不知道这个能否进行修复。

5. 欢迎指正

当然,以上的经验和思路都是边实践边形成的,不是很专业,可能有更好的解决办法,或者也有不正确的地方,欢迎指正!

投啦你的项目做的很好。
【Hello AI 科技致善】中风失语的张爷爷,手机桌面点一下,说出了三年来的第一句”话“:“我饿了” - SOLO挑战赛专区 - TRAE 官方中文社区

1 个赞

哈哈,谢谢谢谢,你的项目很有意义呀!

3 个赞

支持一下 :clap:

1 个赞

支持一下 :grinning_face: :vulcan_salute:

1 个赞

这个设计也太屌了吧,支持支持,太牛了

1 个赞

谢谢支持!

1 个赞

感谢感谢!