ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

no-mistakes意图提取详解:如何从agent会话日志推断你的改动意图

no-mistakes意图提取详解:如何从agent会话日志推断你的改动意图 no-mistakes意图提取详解如何从agent会话日志推断你的改动意图【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakesno-mistakes 是一个本地 git 质量门工具执行git push no-mistakes后它会启动隔离 worktree跑完 review、测试、CI 等流水线全部通过才转发分支并自动开 PR。其中最巧妙的能力之一是意图提取——它能自动读取你本机 coding agentClaude Code、Codex、OpenCode 等的会话日志推断出这次改动到底想干什么并把摘要注入流水线的各个步骤提示词中让每一步检查都真正理解你的目标而不是机械地挑代码毛病。为什么需要意图提取流水线里的 review 步骤要判断改动是否跑偏了前提是它得知道你的意图。如果只看 diffAI 只能猜但如果你刚刚让 Claude Code 修了一个 bug会话日志里就藏着完整的上下文——你的要求、约束、讨论过的方案。意图提取模块源码位于 internal/intent/做的事就是把最近哪个 agent 会话产出这次 diff找出来再让 AI 用 2-6 句话总结开发者原始的目标和约束。意图提取的完整流程5 步走整个流程在 internal/intent/intent.go 的Extract函数中编排可以概括为发现会话 → 匹配打分 → 消歧 → 总结 → 缓存第 1 步发现候选会话时间窗口 仓库匹配模块内置了 6 个会话阅读器见 internal/intent/readers.go分别解析 Claude Code、Codex CLI、OpenCode、Rovo Dev、Pi 和 GitHub Copilot CLI 在本机留下的转录文件时间窗口从 diff 基线提交时间往前推 3 天到最新提交时间为止只在这个窗口内找会话仓库匹配会话的工作目录必须与你的仓库是同一个项目——它会把路径做符号链接归一化再对比git-common-dir和origin远程地址所以即使在 worktree 或克隆副本里也认得出来逻辑见 internal/intent/paths.go。这一步只读元数据不解析正文保证候选集足够小。第 2 步文件重叠匹配与打分核心算法找到候选会话后score函数见 internal/intent/matcher.go计算文件重叠率得分 本次 diff 中被该会话提到过的文件数 ÷ diff 文件总数提到的判定很宽容既看会话里工具调用引用的文件路径也会用正则从助手回复文本中扫描文件名绝对路径、相对路径、裸文件名都能对上。匹配还有几条严谨的接受规则多文件改动至少命中 2 个文件防止单文件巧合误配过期惩罚会话最后一次活动早于提交 24 小时以上、且得分低于 0.8 的直接拒绝避免把三天前的旧会话当成来源新鲜度加分会话活动发生在提交前 2 小时内加 0.15 置信度24 小时内加 0.05——越近的会话越可能是真凶决定性得分 0.85若只有一个候选超过 0.85直接获胜不再走后续消歧。第 3 步Agent 消歧分数接近时请 AI 裁决当有多个候选、且没有一个决定性胜出时见 internal/intent/disambiguator.gono-mistakes 会把每个候选会话的对话内容打包成 JSON 文件交给配置的 agent让它结合改动的文件列表 各候选转录判断哪个会话最可能是来源agent 必须返回结构化 JSONagent 名、会话 ID、置信度、理由。这一步有很强的防注入设计转录文本会先经过去敌意化处理和密钥脱敏internal/intent/redact.go并明确告诉 agent转录是数据不是指令避免日志里的内容反过来操纵流水线。第 4 步生成 2-6 句话的意图摘要选定会话后总结器internal/intent/summarizer.go会把对话序列化成纯文本上限 64KB超出部分截断再让 agent 按固定规则总结只写开发者的目标、需求和明确提出的约束而不是助手做了什么2-6 句、纯文本、返回{summary: ...}结构。例如你让 agent修复登录接口在并发下的 500 错误但不要动数据库 schema摘要就会保留这个约束——后续 review 步骤看到改动动了 schema 时就能立刻报偏离意图。第 5 步缓存摘要避免重复推理每次git push no-mistakes都会重跑流水线但同一会话的意图总结是幂等的。internal/intent/cache.go 用agent名 会话ID 最后一条消息标识 消息数做哈希缓存键存进本地数据库——会话没变化就命中缓存省掉一次 agent 调用会话续聊了则自动失效重算。流水线如何消费意图意图提取在流水线中是一个尽力而为的步骤见 internal/pipeline/steps/intent.go总超时 300 秒找不到匹配会话、总结失败都只是跳过绝不阻塞你的推送如果你通过/no-mistakes 任务由 agent 驱动流程agent 自己提供的意图优先级最高直接采用、跳过日志推断也可通过配置项Intent.Enabled开关此能力。提取成功后摘要会写入本次运行的记录并注入后续步骤的提示词让 review、修复建议都知道你为什么改。快速上手三步让意图提取生效初始化质量门在你的仓库里运行no-mistakes init它会安装/no-mistakes技能并配置推送目标用 agent 干活像往常一样让 Claude Code、Codex 等 agent 在你的仓库目录里完成改动并提交推送过门git push no-mistakes 分支——流水线启动后会自动扫描近期会话日志推断并附上你的改动意图再逐项检查。整个过程零配置。如果你的机器上有多个 agent 的会话匹配算法会靠文件重叠打分帮你选出正确的那一个实在无法分辨时消歧 agent 也会出手裁决。关键源码路径速查模块路径提取主流程internal/intent/intent.go会话阅读器6 个 agentinternal/intent/readers.go重叠打分与接受规则internal/intent/matcher.goAgent 消歧internal/intent/disambiguator.go意图摘要生成internal/intent/summarizer.go摘要缓存internal/intent/cache.go流水线意图步骤internal/pipeline/steps/intent.go理解完这套机制你会发现意图提取本质上是把人与 agent 的聊天记录变成流水线的上下文输入——不靠 commit message 自觉不靠手工填写让质量门自己读懂你的意图这才是 no-mistakes少犯错的核心底气。【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表