我一直在开发一个人工智能音频工程师。它在 Reaper 数字音频工作站中运行,目前还远未完成,这或许才是重点 :)
早期的难点其实并不在于音频处理。更令人头疼且持久的问题是,如何在不同会话之间让 Claude 代码助手始终保持正确的方向。这个问题听起来微不足道,直到它变得无法忽视。
我创建了一个 claude.md 文件并将规则写入其中,随后在每次会话中再添加几条。不要修改数据库迁移文件。先运行测试。使用这种命名方式而非那种。大多是一些琐碎的小事。文件不断变大,起初感觉还好。
后来在某个时刻,Claude 开始忽略它曾经遵守的规则。那些是我精心编写的规则。从技术上讲,它们仍然存在于文件中。只是它不再执行这些规则了。
令人烦恼的是,当会话启动时,文件已经太长,无法被正确读取。claude.md 会在会话打开时加载到上下文中,而上下文容量是有限的,因此该文件需要与其他所有内容竞争空间。超过一定大小后,位于文件底部的规则就不再生效。从技术意义上讲,它们依然存在。只是不再被遵循。而且文件越长,这种情况就越严重。
因此,解决方案很平淡,我认为这通常是个好兆头。精简内容,重构结构,在下一次会话中测试,然后重复此过程。我阅读了大量文档以确定合适的结构,主要是 Anthropic 自家的文档。我没料到的是,我并非真的凭个人喜好选择结构。Claude 代码助手和文档不断引导我走向同一种结构,而最终奏效的方案恰好与 Anthropic 文档中的建议一致。所以这并非我的个人偏好,更像是一直存在的那种模式。
缩短文件的方法并不是随意删减。而是对每一行反复询问同一个问题。
机器可以检查这一点吗?如果是,那么它可能不属于自然语言描述的范畴。“永远不要编辑 /migrations/ 目录”不是 Claude 需要记住的事情;这类事情应该由钩子程序在每次操作时无条件强制执行,无需任何判断。
这需要真正的判断力吗?如果是,那就保留。“匹配你正在编辑的文件中的现有风格”很难成为一个钩子程序,因为模型必须查看并做出决定。这属于自然语言描述的领域。
这只是填充内容,或者是重复表述同一件事吗?如果是,那就删掉。“编写干净的代码”并没有增加任何实质内容。我曾以略微不同的措辞写了两次相同的测试规则,其中一条必须删除。
你将其指向你的 claude.md 文件,它会为每一行打上标签:移至钩子程序、保留为自然语言描述,或删除。它在离线状态下运行,因此不需要调用模型,这意味着同一个文件总是产生相同的结果:https://github.com/blacksundev/claudemd-audit。采用 Apache-2.0 许可证。
在你自己的 claude.md 文件上运行它,并告诉我哪里出错了。分类器基于启发式方法,因此当然会对某些行进行错误标记,老实说,这才是我最关心的部分。
claudemd-audit 是免费的,并将保持免费。如果你想要我最终确定的钩子程序和精简的 claude.md 模板包,这里有一个合集 -https://blacksundev.gumroad.com/l/ylbgvm ,售价 19 欧元。你不需要购买它也能使用该工具。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。