CodeSmith
一个实现 Agent 约束工程的系统,通过代码化的规则引擎(如三值判决 Decision 枚举、命令 Arity 表)将业务规则编码为不可绕过的守门员,而非仅写在提示词中
核心事实
时间轴 (近 90 天)
裁决作为合成的 <codesmith:runtime_event> 用户消息冲刷进对话,只追加在尾部,绝不改写历史。
声称检测使用连续短语匹配而非正则表达式,因为否定词会打断短语,例如“测试未通过”不包含“测试通过”子串。
构建类白名单刻意排除了裸 make 和 cargo clippy。
复合命令按 && 和 ; 拆分后逐段判断,VAR=value 环境赋值会先被剥掉。
裁决以四元组形式写回对话,四元组包含结论、维度、证据位置和失败类型。
只有以已知测试/构建前缀开头的命令才有资格被重放,测试类白名单有20个前缀,构建类有14个前缀。
重放遵循 approved-replay only 安全契约:使用对话自己的工具分发器,逐字符复用模型本轮已发送的输入,不授予任何新权限。
引擎侧接线只有两个钩子点:轮次结束钩子扫描最终的助手消息,请求前冲刷钩子将缓冲的裁决渲染为 runtime_event 并推入历史。
CodeSmith v0.5.0 实现了一个测试声称核查机制,当模型声称测试通过时,引擎会重放模型本轮执行过的验证命令,并用退出码进行核对。
该验证机制默认开启,实现于一个914行的模块中。
还有 26 条时间轴事件
全部知识事实 (20)
Skill Creator是Claude Code的核心子系统,本质上是一套「提示词+代码生成+文件管理」的自动化框架,允许用户将高频操作封装为可复用的结构化技能单元
75%待验证声称匹配率的分母只计真正有命令支撑的可验证声称,Unsubstantiated 永不计入分母。
50%待验证该验证机制默认开启,实现于一个914行的模块中。
50%待验证裁决以四元组形式写回对话,四元组包含结论、维度、证据位置和失败类型。
50%待验证系统定义了四种裁决类型:VerifiedPass、VerifiedFail、VerifyError 和 Unsubstantiated。
50%待验证Unsubstantiated 表示模型声称成功但本轮从未执行任何验证类命令,是检测成本为零的最强幻觉信号。
50%待验证引擎侧接线只有两个钩子点:轮次结束钩子扫描最终的助手消息,请求前冲刷钩子将缓冲的裁决渲染为 runtime_event 并推入历史。
50%待验证重放遵循 approved-replay only 安全契约:使用对话自己的工具分发器,逐字符复用模型本轮已发送的输入,不授予任何新权限。
50%待验证只有以已知测试/构建前缀开头的命令才有资格被重放,测试类白名单有20个前缀,构建类有14个前缀。
50%待验证复合命令按 && 和 ; 拆分后逐段判断,VAR=value 环境赋值会先被剥掉。
50%待验证构建类白名单刻意排除了裸 make 和 cargo clippy。
50%待验证声称检测使用连续短语匹配而非正则表达式,因为否定词会打断短语,例如“测试未通过”不包含“测试通过”子串。
50%待验证裁决作为合成的 <codesmith:runtime_event> 用户消息冲刷进对话,只追加在尾部,绝不改写历史。
50%待验证每条裁决追加到 ~/.codesmith/evolution/verdicts.jsonl,记录时间戳、裁决、声称原文、命令、退出码及模型标识。
50%待验证创建一个高质量 Agent 远比生成普通应用代码复杂,常见缺陷包括:上下文管理草率(轨迹压平塞入上下文导致 KV Cache 优化丢失)、工具设计缺乏纪律、技术选型过时、与活跃生态脱节。
50%待验证CodeSmith 的 doctor 主体是纯确定性检查,不应被夸大描述为 AI 自愈。
50%待验证CodeSmith 内置 `codesmith doctor` 命令(函数 run_doctor 位于 crates/tui/src/main.rs:2310),可一次性检查版本、配置文件、API 密钥来源、网络连通性、MCP 服务器健康度、外部依赖解析和平台沙箱可用性。
50%待验证CodeSmith 在 crates/agent-runtime/src/dependencies.rs 中采用 '先探测再决策' 方式按顺序探测 Python 候选命令(PYTHON_CANDIDATES = ["python3", "python", "py -3"]),并将结果缓存于进程生命周期的 OnceLock 中以避免每轮模型交互重复执行探测。
50%待验证CodeSmith v0.5.0 的 doctor 补齐了 LLM 分析层(crates/tui/src/doctor_llm.rs):确定性检查后收集警告/错误并序列化为结构化 findings,交给单次咨询式 LLM 调用推断根因并建议后续操作,确定性结果优先,LLM 只分析不执行,失败或超时(30秒)则静默跳过。
50%待验证CodeSmith 维护 prompt_zones.rs 模块来划分稳定区与变化区,其目的是为提升 KV Cache 命中率而做的工程约束。
50%