豆包也来加入协作团队啦!
给豆包的指令
G:\\dswork\\duan-light-merge\\light-merge 目录是光明(light)项目,它是中文编程语言的开拓者。 为了提高光明项目,我们制定了用光明来复刻deepseek harness项目,在复刻中发现光明的缺点,然后持续改进,达到实践中找到问题,解决问题,提升光明的企业落地能力,并最终让其成为像当前流行语言(python、go、rust、c等)那样的实用语言。 现在请你在目录G:\\dswork\\duan-light-merge\\lightharness进行deepseek harness(源码在g:\\github\\deepseek-harness)的复刻工作,使用光明语言来实现deepseek harness的功能! 尽量做到1:1复刻。在复现中发现光明还有什么不足,提出来,咱们光明开发团队一起讨论,一起努力改进!
此工作量极大,请不要轻言放弃,咱们的团队也非常强大,有把握最终实现这个看似不可能成功的目标! 现在,请先了解情况,有问题就讨论!
豆包工作回复
一、现状盘点(探查结论)
1. 光明语言:能力底座基本齐备,第九轮进行中
- 工作树干净,HEAD = c6223cc8,python cli/light.py run 冒烟跑通
- 第九轮 S2 已合入:并发内核(E9S2)、内置与直调(BI2)、分布式(DIST)、地板自举(FLOOR2)
- stdlib/ 现有 100+ .light 模块,harness 需要的能力底座基本都在:并发、流式 / SSE、大模型客户端、进程树、事件总线、JSONL/JSON、模式校验、代理循环、代理工具集、路径护栏、选择器、重试、度量、操作系统 等
- 此前已按「原生优先、双后端并跑」口径完成 9 轮迭代,语言缺陷(异步入口、yield from、kwargs、映射 / 筛选、SSE 等)已大量修复
2. deepseek-harness 的真实结构(关键事实,和直觉不同) 它不是 Python 项目,是一个 TypeScript monorepo,Cordis 插件驱动、一切皆插件:
- packages/ 50 个包(每个包内又是一组插件子包):core(agent-loop/session/tools/system-prompt/scope)、session(13 种持久化 / 投影 / 标题 / 遥测插件)、llm(deepseek/pi-ai/retry/token-meter)、hooks、context(agent-instructions/file-reference/time-context/tmux-context)、plan、sandbox、subprocess、terminal、shell、mcp、compaction、workflow、code-runtime、fs、storage、subagent…
- apps/ 2 个:cli + web(React Web UI,端口 3080)
- python/sdk 与 native/landlock-run 只是外围
3. 既有工作:light-merge 里已有一套「评测 harness」 examples/harness/ 已有用光明写的完整评测链(评测驱动.light 44KB、编排、打分、LLM 通道、真实通道、错误分类 + 分布式主控 / 节点 / 调度核心),功能对标清单 20 条:12 done / 7 partial / 1 none(MCP)。这是服务语言升级的「评测台」,定位与你要的「产品级 1:1 复刻工程」不同。
4. lightharness 尚不存在,是你指定的新工程起点。
二、需要你拍板的讨论点
① 复刻范围的界定(最关键) 全量 1:1 = 50 插件包 + Web UI + 完整生态,等于再写一个同量级框架,现实不可行,也不是 "压出语言缺陷" 的最优路径。我建议按功能等价分层复刻:
- P0 核心运行时(最值得复刻、最能暴露缺陷):agent-loop 多轮循环、session JSONL 持久化、llm-deepseek 流式客户端、tools 注册 / 校验 / 执行、上下文压缩(compaction)、hooks 事件、CLI 入口
- P1 运行层:subprocess/terminal/shell 进程执行、sandbox 安全边界、fs/storage
- P2 生态层(押后):mcp 客户端、subagent、code-runtime、e2b、遥测、Web UI
第一版 lightharness 做到 P0 全 + P1 部分,这个口径你认可吗?还是你有更强的全量要求?
② lightharness 与 examples/harness 的关系 建议:lightharness 作为独立工程从零搭骨架(镜像原版目录结构),但复用 stdlib 已验证能力(并发 / 流式 / 进程树 / 事件总线 / JSONL / 模式校验),并把 examples/harness 里可直接迁移的 .light(LLM 通道、真实通道、编排等)搬过来,不重复造轮子。是否同意这个迁移策略?
③ 工程形态
- lightharness 是独立 git 仓库,还是 light-merge 的子目录?
- 依赖光明 stdlib 的方式:直接引用 light-merge 的 stdlib,还是把所需模块复制进 lightharness 实现自包含?(影响可移植性,也影响后续 "原生可分发 exe")
④ "1:1" 的判定方式 建议沿用你方已成熟的对标思路:每个模块建一张功能对标卡(原版功能 → 光明实现 → 对齐度 done/partial/none + 证据 + 反跑判据),挂在 lightharness 里。"1:1" 按功能等价可度量,而不是行级照抄。是否认同?
⑤ 复刻中已知会撞到的语言缺陷 从第九轮文档看,还有一批待补:泛型空壳、可空 ?、最终/finally 语义、模块循环依赖硬拒绝、原生腿 ImportStatement no-op 等。复刻过程中撞到新缺陷,按你方既有流程登记(移交清单 → A9 泳道)即可。这部分机制已成熟,无需讨论,只是预告。
你先把 ①③(范围 + 工程形态)定了,我就可以开始搭 lightharness 的骨架。②④ 如果没异议,我按建议执行。
让豆包按建议执行
第一版 lightharness 做到 P0 全 + P1 部分,这个口径认可! ② lightharness 与 examples/harness 的关系 同意你的迁移策略! ③ 工程形态 lightharness 是独立 git 仓库 依赖光明 stdlib 的方式:把所需模块复制进 lightharness 实现自包含 ④ "1:1" 的判定方式 认同!
豆包做了大量工作
一、当前进度:P0 全绿,P1 覆盖 5/7
对标清单 14 条当前状态(全部有证据文件 + 反跑判据):
表格
编号 功能 光明模块 状态
1 会话事件日志 会话.light done
2 surface 折叠 会话.light done(本轮改原位替换)
3 JSONL 持久化 持久化.light done
4 消息词汇表 消息.light done
5 LLM 流式词汇表 流.light done
6 deepseek 流式客户端 客户端.light done
7 agent-loop 多轮循环 代理.light done
8 工具注册表 + 执行流水线 工具.light done
9 上下文压缩 压缩.light done
10 hooks 事件机制 事件.light partial(总线已通,三事件域未全建)
11 CLI 入口 总入口.light + 运行 CLI.light partial(已接通,需真实密钥联调)
12 子进程执行 子进程.light partial
13 沙箱边界 — none(下轮做)
14 文件与存储 文件.light partial
P0 八模块全部完成并有测试;P1 完成 1 个(压缩),4 个 partial,剩 1 个(沙箱)未做。全量回归 24 个测试 PASS / 0 FAIL。
本轮收尾动作:
提交了遗留的持久化 + CLI(总入口 / 运行 CLI,含内置 bash 工具,走环境变量传参)
新增 压缩 / 子进程 / 文件 三个 P1 模块
修复压缩替换语义:原 append-at-end(摘要被追加到末尾)改为原位插入(遮蔽段保留 + 摘要插回被替换区间位置),对齐原版 replace,会话与压缩测试同步更新
二、本轮新暴露的光明缺陷(已登记,待团队讨论)
缺陷账现有 L-001~L-010,本轮新增最值得讨论的 4 条:
L-010 模块名 / 字段名被关键字切开:主程序、主入口、外部命令 作模块名时 从 X 导入 直接解析失败(主/序/令 是关键字);命令结果.返回码 属性访问被拆成 .返回。直接导致:CLI 模块被迫改名 主程序→总入口,子进程拿不到精确退出码(只能以 0/-1 表示)。这对做 CLI / 运维类工具是硬伤。
light run 拦截自定义 argv:CLI 想加 -m "消息" 参数被 light run 拒绝("unrecognized arguments"),被迫改用环境变量。做真实命令行工具很别扭。
无动态属性访问(getattr):很多需要按字段名取值的场景绕不过去。
L-009 注释被文本批量替换误伤:PowerShell -replace 改 导入 builtins 时把注释行劈开成代码行,伪报语法错误,排查成本高。
老问题(L-004/L-007 家族)仍是最大痛点 ——标识符拆分有状态性,同一源码的拆分结果会因局部变量名、方法参数名而改变,导致大量 "看起来合法却跑不起来" 的改名踩坑。
三、下一步建议
沙箱边界(条目 13):路径护栏 + 进程隔离 v1(不做 landlock/seccomp)
hooks 三事件域(条目 10):会话 /agent/ 能力三总线 + 钩子协议
实时联调:配一把 DEEPSEEK_API_KEY 就能用 运行CLI.light 打通真实链路
语义深对齐:对照原版 agent-loop 的重试策略、tool-calls 的 parallel 并发,把 partial 项逐条做实
有需要先讨论的:L-010 那条(关键字开头模块名 / 字段名)是否值得优先给光明编译器提修复?它直接影响 "拿光明做 CLI 工程" 的可行性。你的意见?

