merge: 并入近等距轮(写侧容差判据 + 显式路径报错线 + 护栏阈值证伪 + 评测 rig 探针稳健化) 三笔提交: 4e598987 test(knowledge): 近等距轮的定阈与判据探针组(五支 env 门控测量工具) 1a6fb6ef fix(knowledge): 评测 rig 的探针稳健化——暂态错误不死测试、轮收口即判失败 4ae3c058 fix(storage): 写侧退化判据改容差近等距 + 显式路径近等距报错线 净交付:写侧容差近等距判据(2e-3)+ 显式路径近等距报错线(2e-3); hybrid 弃权线保持 0.02 不动(本轮降阈 5e-3 经复跑证明收益为零、代价为负⇒回退)。
merge: 并入近等距轮(写侧容差判据 + 显式路径报错线 + 护栏阈值证伪 + 评测 rig 探针稳健化)
三笔提交:
净交付:写侧容差近等距判据(2e-3)+ 显式路径近等距报错线(2e-3); hybrid 弃权线保持 0.02 不动(本轮降阈 5e-3 经复跑证明收益为零、代价为负⇒回退)。
用 Go 打造的 LLM Agent 平台(对标 Claude Code / opencode,但不限于 coding):事件驱动、一切皆服务、一切皆插件。单仓 monorepo(go.work + 21 个模块),跨模块协作只经 icodes-core 的服务契约与事件总线。
go.work
icodes-core
两个入口 main:icodes-tui(交互终端)与 icodes-cli(headless CLI)。
icodes-tui
icodes-cli
TUI 默认是客户端模式:探测并 attach 已运行的 daemon;没有就后台拉起自己的 --serve 形态。本进程不装配宿主。真实 LLM provider 由 daemon 侧装配(anthropic/openai)。
--serve
go run ./icodes-tui # 默认:客户端模式(spawn-or-reuse daemon) go run ./icodes-tui --local # 进程内模式:本进程装配宿主,不起 daemon go run ./icodes-tui --serve # daemon 形态:无 UI,监听 unix socket 供客户端 attach
CLI 的 binary 名是 icode:
icode
go build -o icode ./icodes-cli ./icode run "任务文本" # 跑一次 headless agent turn(恒新会话) ./icode serve # 常驻 daemon ./icode --help # 全部子命令:config/event/mcp/session/version…
go install ./icodes-cli 产出的 binary 名取目录名(icodes-cli);要 icode 请用上面的 go build -o icode。
go install ./icodes-cli
go build -o icode
密钥只从环境变量或未入库的 .env 读取(AGENTS §16);.env 已在 .gitignore 中。
.env
.gitignore
本仓没有 CI,门禁脚本就是唯一入口:
scripts/check.sh # go.work 里的全部 21 个模块 scripts/check.sh icodes-common # 只跑指定模块(可传多个)
每个模块依次执行 gofmt -l .、go build ./...、go vet ./...、go test ./... -race;任一模块失败即非零退出,并在末尾汇总失败模块。
gofmt -l .
go build ./...
go vet ./...
go test ./... -race
icodes-codebase
icodes-host
CGO_CPPFLAGS
CGO_LDFLAGS
env -u CGO_CPPFLAGS -u CGO_LDFLAGS
go vet
go test
其余门禁:
scripts/arch-deps.sh # 依赖方向(例外清单 scripts/arch-deps-allowlist.txt) scripts/svc-topics.sh --check # svc.* 主题冻结清单 scripts/dir-flat.sh --check # 单目录生产文件数
顶层目录即模块名。模块清单与各自职责见 AGENTS.md §五、一行式索引见 docs/README.md;本文件不再手抄模块表,避免与 go.work 漂移。
icodes-tui/
icodes-cli/
icodes-host/
icodes-core/
icodes-common/
icodes-*
docs/
scripts/
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
icode-go
用 Go 打造的 LLM Agent 平台(对标 Claude Code / opencode,但不限于 coding):事件驱动、一切皆服务、一切皆插件。单仓 monorepo(
go.work+ 21 个模块),跨模块协作只经icodes-core的服务契约与事件总线。跑起来
两个入口 main:
icodes-tui(交互终端)与icodes-cli(headless CLI)。TUI 默认是客户端模式:探测并 attach 已运行的 daemon;没有就后台拉起自己的
--serve形态。本进程不装配宿主。真实 LLM provider 由 daemon 侧装配(anthropic/openai)。CLI 的 binary 名是
icode:go install ./icodes-cli产出的 binary 名取目录名(icodes-cli);要icode请用上面的go build -o icode。密钥只从环境变量或未入库的
.env读取(AGENTS §16);.env已在.gitignore中。门禁
本仓没有 CI,门禁脚本就是唯一入口:
每个模块依次执行
gofmt -l .、go build ./...、go vet ./...、go test ./... -race;任一模块失败即非零退出,并在末尾汇总失败模块。icodes-codebase、icodes-host、icodes-cli、icodes-tui卸载全局CGO_CPPFLAGS/CGO_LDFLAGS。本机若全局导出这两个变量会破坏 tree-sitter 构建;手动跑这四个模块时同样要加env -u CGO_CPPFLAGS -u CGO_LDFLAGS。go vet/go test的「matched no packages」按 AGENTS §11 特判跳过,不算失败。其余门禁:
目录
顶层目录即模块名。模块清单与各自职责见 AGENTS.md §五、一行式索引见 docs/README.md;本文件不再手抄模块表,避免与
go.work漂移。icodes-tui/、icodes-cli/:两个入口 mainicodes-host/:两个入口共用的宿主装配库icodes-core/、icodes-common/:内核契约与跨模块纯类型icodes-*:插件(provider/storage/tools/transport/mcp/rag/…)docs/:设计文档与需求工作区;scripts/:门禁脚本