光明之路_Trae开发宣传_济宁聚会 9.12日《光明之路》讲演稿

光明之路_Trae开发宣传_济宁聚会 9.12日《光明之路》讲演稿

配套 PPT:光明之路_Trae开发宣传_济宁聚会.pptx(13 页)

建议时长:约 18--20 分钟(每页标注了参考时间)

场合:济宁 Trae 聚会

光明项目repo:GitHub - skywalk163/light · GitHub


开场白(约 1 分钟)

大家好,今天我分享的主题是《光明之路------用 Trae 开发一门中文编程语言》。

这个标题有两层意思:一是"光明"真的是一门编程语言,一门用中文关键字写代码的语言;二是这条路确实是一步一步走出来的------从 8 月的品牌焕新,到 9 月用这门语言去复刻一个 AI 智能体框架,全程都是用 Trae 开发的。

在座的如果用过 Trae 写小工具、改 bug,那今天你看到的是:Trae 不止能帮你改代码,它还能帮你研发一门语言。过程中我们沉淀了一套"任务书 + 契约 + 并行分发"的打法,最后我会把这些小技巧总结给大家,可以直接带走。


P1 封面 --- 约 0.5 分钟

(放 PPT,先别急着讲,停 1--2 秒)

"光明"是我们的名字,也是这个项目的名字。屏幕上是一小段光明代码------设 版本 为 "v7.0"段 主():输出("你好,光明!")。注意,它全是中文。右下角那句"打印 语言.自举率",指的是这个编译器有 72.41% 是用它自己写的。一会儿我会解释"自举"是什么意思。

今天的主线就一句话:一门用中文思考的语言,是怎么用 Trae 一路开发、测试、升级到现在的。

术语小贴士

  • 自举(Bootstrap):用一门语言自己写自己的编译器,就像"用自己的爪子把自己提起来"。
  • 光明(LightLang):本项目开发的中文编程语言,代码全中文关键字。

P2 目录 --- 约 0.5 分钟

我的分享分五块:

  1. 先认识光明这门语言;
  2. 再看它最近两个月用 Trae 开发的真实历程;
  3. 重点讲我们的核心打法------任务分发的三个特点;
  4. 讲一个我们引以为傲的案例:用光明去复刻 DeepSeek Harness;
  5. 最后总结 Trae 好在哪,以及 AI 开发的小技巧。

术语小贴士

  • Harness:直译是"缰绳/夹具",AI 圈子里指"给大模型套上工具、让它能动手做事"的智能体框架。

P3 光明是什么 --- 约 1.5 分钟

先回答"光明到底是什么"。

它是一门全中文关键字 的编程语言。左下这句是它的设计哲学:借鉴中文"3000 常用字覆盖各学科"的思路------用最少的核心字,组合出无限的表达。具体就是30 个 L0 核心字,像"若、否、当、遍"这些控制流字,"设、段、类"这些定义字,永久冻结、永不修改,全部高层语法都由它们组合出来。

右边的数字是它的家底:

  • 30 个核心字,构成稳定内核;
  • 109 个标准库模块,数学、网络、加密、中文分词、Agent 循环......应有尽有;
  • 711 项原生腿能力,内置函数加运行时函数,直接编进 C 运行时;
  • 72.4% 自举率,编译器大部分是它自己写的;
  • 三后端、两种方言------白话体像日常说话,给青少年入门;文言体精炼,给商用大项目。

术语小贴士

  • L0 核心字:光明语言最底层、永久冻结的 30 个关键字,所有复杂语法都由它们组合而来。
  • 标准库(stdlib):语言自带的常用功能集合,不用自己造轮子,直接导入就能用。
  • 原生腿(Native Leg):光明里"原生实现"的能力------内置函数(builtin)和运行时函数(runtime)直接编进 C/LLVM,不依赖 Python 解释器;团队还通过"原生腿覆盖"把标准库的 Python 实现逐步替换成纯光明实现。
  • 自举率:编译器代码里由语言自己实现的部分所占比例,72.4% 意味着编译器的"核心骨架"是光明自己写的。
  • 白话体 / 文言体:光明提供的两套"说话风格"------白话体像日常中文对话,低门槛;文言体像古文一样精炼、适合大型工程。
  • LLVM 原生编译:把光明代码编译成机器码,编译出来的程序不依赖 Python 运行时。

P4 真实历程 --- 约 1.5 分钟

这条时间线,是我今天最想给大家看的:一个真实项目,两个月,七大步,每一步都是"Trae 并行分发 + 契约合入"的产物。

  • 8 月 · 品牌焕新:项目原名"段言",更名为"光明",品牌名在代码、文档、Playground 里分三批清理干净;
  • 8 月 · 能力筑基:分布式、地板自举、并发内核、内置直调四批任务,把语言的内核能力补齐;
  • 8 月 · 原生腿批次 R10--R13:把标准库里的 Python 实现一批批"翻译"成纯光明实现,对拍测试每批全绿;
  • 9 月 · lightharness:开始用光明复刻 DeepSeek Harness,这是故事的转折点------语言第一次被拿来写"AI 工具本身";
  • 9 月 · 语言升级:写 lightharness 时踩出 11 条语言缺陷(L-068~L-078),登记成账本,分 D1--D3 批次修掉;
  • 9 月 · 6 路并行:0.88 验证机全量测试跑出 145 个失败,拆成 6 路并行,一次收敛干净。

术语小贴士

  • 原生腿覆盖:给标准库"换腿"------把用 Python 写的模块,改写成纯光明(.light)实现,让标准库真正"用光明写光明"。
  • Playground:在线写代码的实验场,光明用它做网页端快速试玩。
  • 0.88 验证机:团队里一台 FreeBSD 系统 + clang 编译器的远端验证机器(环境代号 0.88),专门用来做跨平台全量回归,补 Windows 本机测不到的平台差异。

P5 核心工作流 --- 约 1.5 分钟

这是我们的七步流水线,也是整个项目能运转起来的引擎:

  1. 需求 → 先做差距分析,搞清楚"现在差在哪";
  2. 任务书 → 把需求写成一份"任务书":目标、范围、契约、验收标准全写清楚;
  3. 并行派单 → 拆成多路,每一路交给一个独立的 agent 会话,一路一分支;
  4. 开发自测 → 每个 agent 改完先在自己分支上跑测试,对拍验证;
  5. 契约合入 → 走 PR 合并,契约不变,冲突天然少;
  6. 回归闸门 → 合入前跑基线检查,只拦"新增"的失败;
  7. 交付报告 → 每批交付"改了啥、验了啥、遗留啥",配上查收记录。

这套流程的关键词是"契约 "和"并行"------下面三个特点就是围绕它们展开的。

术语小贴士

  • 任务书:给 AI 的"单份作业说明书",把目标、范围、接口约定、验收标准一次写清,agent 拿到就能独立开工。
  • PR(Pull Request,合并请求):把分支代码合回主线的申请过程,合入前会被检查和评审。
  • 回归(Regression):改完代码后重跑全部测试,确保没把原本好的功能改坏。
  • CI(持续集成):代码一提交就自动触发测试和检查,问题越早暴露越好。

P6 特点① 任务书制 --- 约 1.5 分钟

第一个特点是外发任务 + 任务书

左边的五要素就是一份任务书的标配:目标与背景、任务拆分、共享契约、验收标准、交付要求。为什么这么写?因为 agent 没有"上下文记忆",它每次开工都是"新员工第一天"------你把作业写清楚,它就能直接干活,不用反复追问。

右边是真实案例:lightharness 的 E 批次任务书。我们把"复刻 deepseek-harness 核心能力"拆成 E1 到 E5 五个任务,共享 5 条契约:工具事件格式、会话 API、审批事件、agent 钩子、路由认证规则。

术语小贴士

  • 外发任务:把一个需求写成任务书,"外发"给一个独立的 agent 会话去执行,是团队最主要的派单方式。
  • 共享契约:任务之间提前约定好的接口格式------事件结构长什么样、API 路由叫什么、钩子函数怎么签名,大家照这个对接。
  • agent 钩子(Hook):在 agent 循环的固定位置留出的"插槽"(比如调用工具前、调用工具后),各任务往插槽里注册自己的逻辑,互不干扰。

P7 特点② 并行分发 --- 约 2 分钟

第二个特点是并行分发 。核心判断标准就一句话:任务粒度 = 一个 agent 会话能独立完成的范围

左边是 E1--E5 的依赖图:E1 工具系统、E2 会话持久化、E5 压缩与计量,三个任务零依赖,完全并行;E3 和 E4 依赖 E1/E2 的契约,就先搭 UI 框架,接口定好一天对接完。五个任务同时开工,一次集成全过。

右边是更"硬核"的例子:0.88 验证机全量测试跑出 145 个失败,我们把它按文件映射成 6 路------环境健康、stdlib 对齐、测试方言、运行时真 bug、语言升级、缺陷账收敛。每路一个 agent 会话,互不碰对方文件,最后 145 个失败全部有归属:已修、已 xfail、已登记待修,没有一个"无人认领"的红灯。

并行的底气来自两条纪律:分支纪律 (每人只动自己那路的文件)和基线闸门(只拦新增失败)。

术语小贴士

  • xfail:给测试打上"预期失败"标记,已知的暂时性限制先标出来,不让它拖红整条 CI。
  • 基线闸门(check_regression.py):维护一份"已知失败清单",CI 时只拦截清单之外的"新增"失败,避免存量问题反复误伤。
  • 验证机:独立于本机的远端测试环境,用于跑本地覆盖不到的跨平台回归。

P8 特点③ 缺陷账 --- 约 2 分钟

第三个特点是我个人最喜欢的:缺陷账,开发即测试

左边是语言升级的"正向飞轮",专业说法叫 Dogfooding------吃自家狗粮:我们用光明写 lightharness,写着写着就踩到语言本身的缺陷,比如不支持十六进制字面量、没有闭包。每踩一个,就登记一条缺陷账(L-068 到 L-078,一共 11 条),每条带上最小复现和期望行为,然后安排 D 批次并行修复。语言每强一点,我们就能写出更复杂的工具------飞轮就这样转起来。

lightharness 的 README 里那句话是最好的注脚:"复刻的目的不是照抄代码,而是检验这门语言------凡是写不出来、写出来是错的、绕不过去的地方,就是光明需要改进的清单。"

右边是 11 条缺陷的节选:类方法边界、JSON 布尔序列化、默认参数字面量、字典安全访问、转字符串、错误消息中文化、类型判型内置化、hex 字面量、 保留字、列表方法不全、闭包。每修一条,都补最小复现测试 + 双后端验证,保证不再复发。

术语小贴士

  • Dogfooding(吃自家狗粮):自己用自己做的产品,用出问题就修,产品因此越来越成熟。
  • 缺陷账:像记账一样把发现的语言缺陷登记在册,每条含"复现方式 / 期望行为 / 当前绕法",统一排期根治,而不是随手绕过去。
  • 闭包(Closure):嵌套函数能"记住"外层变量的能力。光明最初不支持闭包,团队只能用"类 + 绑定方法"绕行,修好后才能写有状态的回调。
  • 绑定方法(Bound Method):对象上带着自身状态的方法,闭包出现之前用它给回调传状态。
  • hex 字面量 :以 0x 开头的十六进制数写法,例如 0x4E00 直接表示"一"的 Unicode 码点。

P9 lightharness --- 约 1.5 分钟

第四部分是 lightharness,这是整个项目最"浪漫"的一页------用一门语言去复刻 AI 智能体框架

DeepSeek Harness 是 DeepSeek 开源的 agent 智能体框架,全插件化架构,60 多个包。lightharness 用光明把它 1:1 复刻出来,一开始只有"能聊天的网页",现在已经是"能调用工具做事的 agent harness":

  • E1 工具系统:bash、读文件、写文件、搜索四大工具,还带路径安全护栏;
  • E2 会话持久化:JSONL 存储,刷新不丢;
  • E4 权限与审批 :四种权限预设 + 危险命令检测,rm -rf / 直接拒绝;
  • E5 压缩与令牌计量:按 5 种模型单价估算花费,超长对话自动压缩;
  • E3 Web UI:三栏布局、工具调用卡片、移动端适配。

188 个回归测试全绿。而更重要的是互相成就:lightharness 踩出的每条缺陷都成为光明升级的输入,光明每升一级,lightharness 就能删掉一条"绕法"。

术语小贴士

  • agent 循环:大模型与工具之间反复"思考 → 调用工具 → 看结果 → 再思考"的循环,是智能体的心脏。
  • JSONL:每行一个 JSON 对象的存储格式,方便追加记录和回放历史,常用于会话日志。
  • 令牌计量(Token 计量):把对话消耗的 token 数换算成具体花费,避免不知不觉烧钱。
  • 上下文压缩:对话太长时,把旧内容压成摘要再继续,防止超出模型上下文窗口。
  • 危险命令检测 :对 rm -rf / 这类高危命令直接拒绝执行的安全机制。

P10 质量保障 --- 约 1.5 分钟

AI 写代码,最大的疑虑是"它写的对不对"。我们的答案就四个字:让 AI 验证 AI

  • 对拍测试:同一功能写两个实现(Python 转译腿 vs 原生光明),喂同样的输入,逐条比对输出,行为一致才算过;
  • 反跑判据:这是我们的"照妖镜"------故意把实现改成空壳,如果测试立刻变红,就证明这个测试真的在拦截;如果没红,说明测试是摆设,重写;
  • 基线闸门:只拦新增失败,不误伤存量;
  • 双环境验证:本地 Windows + 0.88 FreeBSD 双跑,平台差异当场现形。

每批任务交付还标配"三件套":交付报告 (改了啥、验了啥、遗留啥)、查收记录 (逐条核对验收)、集成验收清单(反跑 12 项 + 前端 5 项逐项打勾)。

术语小贴士

  • 对拍测试(Cross-check):两个实现跑同样的输入、逐条比对输出,是验证"转译/重写"是否正确最直接的方法。
  • 反跑判据:故意把实现改坏(改成空壳),测试必须变红,以此证明测试有真实的拦截能力。
  • 转译腿(Transcode Leg):先按 Python 语义"转译"出一版实现作为参照,再与原生光明实现对拍。
  • 集成验收清单:把验收动作一条条列成清单,逐项打勾,防止"觉得行了"但没真验证。

P11 为什么是 Trae --- 约 1.5 分钟

聊了这么多,回到最实际的问题:为什么是 Trae,而不是别的工具,甚至不是一个人力团队?

六条理由:

  1. 上下文与记忆:Trae 跨会话记得项目约束和历史决策,任务越做越顺,不用每次都重新交代背景;
  2. 并行 agent:一个需求拆 N 路,N 个会话同时开工,这直接支撑了我们前面讲的并行分发;
  3. 中文友好:任务书、代码、报告全中文,对一个中文编程语言项目来说零损耗;
  4. 规划先行:它能先出方案再动手,任务书、契约这些"文档活"都由 AI 自动产出;
  5. 测试驱动:让 AI 写测试来验证 AI 写的代码,就是我们"让 AI 验证 AI"的底层能力;
  6. 可视化一站:Web UI、图表、文档、甚至今天这份 PPT,都在同一个会话里完成。

最后还有一条红线:安全 。敏感信息只进 .env、不进代码,提交前自动检查------这是写进项目记忆里的硬规矩,Trae 每次都遵守。

术语小贴士

  • .env 文件:存放密钥、Token、IP 等敏感配置的本地文件,不提交进版本库,代码里只读环境变量。
  • 并行 agent:一次派多个独立的 AI 会话同时处理不同子任务,互不干扰、最后合流。

P12 小技巧 --- 约 2 分钟

最后,把这套打法浓缩成 8 条小技巧,大家拿回去就能用:

  1. 任务书思维:目标、范围、契约、验收一次写清,agent 拿来就干;
  2. 契约先行:先定接口格式再分头实现,这是并行不打架的前提;
  3. 粒度适中:任务 = 一个 agent 会话能独立完成的量,太大容易跑偏,太小浪费;
  4. 让 AI 写测试:对拍 + 反跑双保险,先证明测试有效,再让测试证明代码正确;
  5. 建立账本:缺陷、已知问题统一登记,不让坑消失,要根治;
  6. 双环境验证:本地 + 远端验证机双跑,平台差异当场现形;
  7. 分支纪律:一路一分支、PR 合入、回归闸门只拦新增;
  8. 交付报告:改了什么、验证什么、遗留什么,可追溯、可查收。

一句话总结:把 AI 当团队成员------给它任务书、契约和验收标准,再收它的交付报告。

术语小贴士

  • 分支纪律:每个任务在独立分支上开发,互不污染,最后统一 PR 合入。

P13 结语 --- 约 0.5 分钟

(语气放缓)

一门中文编程语言,用 AI 持续迭代;

一个 AI 智能体框架,用这门语言复刻;

语言因此更强,工具因此更懂语言。

这大概就是"人机协作"最理想的样子------AI 不是替我们写代码,而是和我们一起,把一件原本不可能完成的事,一步步做成。

任务书、共享契约、并行分发、缺陷账、对拍反跑------这套打法,你也能带走。

谢谢大家!济宁 Trae 聚会,我们下次见。


附录 A:备用 Q&A 提示

  • Q:光明是玩具语言吗?
    答:它已经自举、有 LLVM 原生编译、109 个标准库、能用它写出 agent 智能体框架并跑 188 个回归测试,且正在被用于真实工具的研发。
  • Q:145 个失败是怎么"6 路并行"收敛的?
    答:先把失败按文件归类,映射到 6 个主题(环境/stdlib/测试方言/运行时/语言/账本),每路一个独立会话,只动自己文件,最后统一回归 + 基线更新。
  • Q:Trae 和直接用 DeepSeek/其他模型有什么区别?
    答:区别在"工程化"------任务书、记忆、并行会话、代码审查、可视化,这些让 AI 从"问答工具"变成"能协作的团队成员"。
  • Q:普通人能用这套打法吗?
    答:能。任务书思维和反跑判据对任何项目都适用,从小脚本到大型工程,粒度不同、逻辑相同。

附录 B:术语速查表

术语 一句话解释
自举(Bootstrap) 用一门语言自己写自己的编译器
L0 核心字 光明最底层、永久冻结的 30 个关键字
白话体 / 文言体 光明两套书写风格:口语化入门 / 精炼化工程
标准库 语言自带的功能集合,不用造轮子
原生腿 编进 C/LLVM 的原生能力,不依赖 Python;"原生腿覆盖"= 把标准库 Python 实现换成纯光明
三后端 自研解析器 / ANTLR / LLVM 原生三条编译路径
任务书 给 AI 的单份作业说明书:目标/范围/契约/验收
共享契约 任务间提前约定的接口格式,保证并行不打架
外发任务 把需求写成任务书,外发给独立 agent 会话执行
并行分发 一个需求拆多路,每路一个 agent 会话同时开工
分支纪律 一路一分支、互不污染、统一 PR 合入
基线闸门 check_regression.py,只拦"新增"失败、不误伤存量
缺陷账 语言缺陷登记册:复现/期望/绕法,统一根治
Dogfooding 自己用自己做的产品,用出问题就修
对拍测试 两个实现跑同样输入、逐条比对输出
反跑判据 把实现改成空壳,测试必须变红,证明测试有效
转译腿 按 Python 语义转译出参照实现,与原生光明对拍
xfail 预期失败标记,已知限制不拖红 CI
验证机 / 0.88 远端 FreeBSD + clang 的跨平台全量回归环境
CI 持续集成:代码一提交自动跑测试
PR 合并请求:分支合回主线的过程
agent 循环 模型与工具"思考→调用→看结果→再思考"的循环
Harness 给大模型套工具、让它能动手做事的智能体框架
JSONL 每行一个 JSON 的日志格式,方便追加与回放
令牌计量 把 token 消耗换算成花费
上下文压缩 旧内容压成摘要,防止超上下文窗口
危险命令检测 对 rm -rf / 等高危命令直接拒绝
闭包 嵌套函数"记住"外层变量的能力
绑定方法 带对象状态的方法,闭包之前的绕法
.env 存放敏感配置的本地文件,不进版本库
相关推荐
今天AI了吗1 小时前
什么是 AI Agent?它与直接调用大模型 API 有何区别
java·网络·人工智能·架构·java-ee
Hopetree1 小时前
AI Agent 实战手记 04:给 Agent 选对 Loop 工作方式_AI
人工智能
掘金酱1 小时前
社区排行榜现已上线
前端·人工智能
zzjyr1 小时前
AI 问答的流式响应是怎么实现的?从 fetch 到 SSE 逐字解析
前端·人工智能·ai编程
用户521133498121 小时前
拍照识别试卷:我在一台 2016 年的 NAS 上做「错题本」,踩了 8 个坑
人工智能
Zzj_tju2 小时前
VLM 读图评测:先审计评分器,再判断读错还是算错
人工智能·深度学习·机器学习·语言模型
嘟嘟嘟95272 小时前
AI Agent 的边缘困境
人工智能·架构·agent
deepseek232 小时前
Claude Mythos 5越界投毒拆解:穿过CAPTCHA向PyPI投毒,82%重跑有害率背后的偏见推理与监控失效
人工智能·claude·ai agent
杨航 AI2 小时前
本地双4060ti16g加macmini不断优化私有化大模型
人工智能