只用你拥有的文件约束编码智能体:四个杠杆的对照实验
只用你拥有的文件约束编码智能体四个杠杆的对照实验原文Tessl Blog《How to constrain a coding agent using only files you own》https://tessl.io/blog/how-to-constrain-a-coding-agent-using-only-files-you-own一个只过了一分的实验作者给自己的编码智能体一个工单但没有给它任何规范文件。这个仓库有三代历史一个 2026 年写对一切的领域层被一个 2023 年的巨型文件和 2021 年被冻结、谁都不许碰的模块以十比一的数量压过去。智能体从头到尾没打开正确的代码它去改了那个巨型文件用 random.randint 掷骰子且完全不设随机种子还两次伸手进冻结模块。评分器有八项检查结果只过了一项。仓库本身没坏智能体只是照着眼前的代码抄了一遍——所有本来能拦住它的东西都是作者当时还没写的文件。「写个 CLAUDE.md」只是四个杠杆中的一个写规范文件的建议到处都是这建议本身没错但那个文件只是四个杠杆之一另外三个就躺在同一个仓库里、同样属于你。作者把「约束」拆成四种文件杠杆位置作用指令 InstructionCLAUDE.md用现在时描述这个仓库是什么约束 Constraint.claude/rules/按路径生效的规则每条都带上引发它的那次事故的日期能力 Capability.claude/commands/、.claude/skills/、.claude/agents/、.claude/settings.json、.mcp.json智能体能够到什么、被允许运行什么检查 Check.claude/hooks/什么会拒绝它能力杠杆上还有四级台阶一条命令、一个技能、一个子智能体、一个 MCP server。怎么判断某个东西属于哪一级作者给了一个很实用的判别法把它拿走如果智能体能力变弱它就是能力如果它干同样的活、只是干得更差那你写的其实是一条规则只不过被包装成了技能。先做一个自检# 看看你的仓库里到底写了几种杠杆ls-R.claude/如果输出只有一个 settings 文件那你拥有四个杠杆却只发了一个。两个杠杆靠说服一个靠拒绝指令会被读路径规则也会被读。凡是被读的东西都可以被辩论——当周围的代码和规则互相矛盾时智能体会把自己说服过去。能力杠杆不参与辩论因为它改变的是「能够到什么」而不是「相信什么」。hook 根本不被读。它是回合内执行的一个谓词直接返回一个拒绝没有谈判空间。作者的实现大约四十行 Python一头挂在 PreToolUse 钩子上在写入发生之前拦截另一头是 make gate也就是 CI 跑的那条命令。同一个谓词两个挂载点逻辑不重复。# 示意写法一个谓词两个挂载点非官方实现字段以官方文档为准ALLOWED_PREFIXsrc/features/defin_scope(path:str)-bool:这次写入是否落在本工单允许的范围内。returnpath.startswith(ALLOWED_PREFIX)defpre_tool_use(tool_name:str,args:dict):# PreToolUse 在工具执行前调用返回 block 即拒绝iftool_nameWriteandnotin_scope(args.get(file_path,)):return{decision:block,reason:改动超出本工单范围}returnNone这段只是用来说明「同一个谓词挂在两处」这个形状。钩子的具体字段名与返回结构随版本演进以官方文档为准。规则要和代码「有分歧」才有价值一条你的代码库本来就遵守的规则约束不了任何东西。智能体照着模仿也能得到相同答案你无法判断到底是规则起了作用还是模仿起了作用。所以规则要写在「规则和代码互相矛盾」的地方。工作坊仓库里就有一组矛盾一个模块从会话中推导请求权限另一个模块直接从请求体里读权限。两种写法都在线上跑、都能用。规范文件必须做出选择——它的职责就是告诉智能体照哪一个抄。这也是绝大多数「事后补规范」的实际工作内容。机械可判定与无法判定九项检查里八项程序能给出结论改动是否留在范围内每次掷骰子是否都设了种子日志是追加还是重写其余几项都是同一类问题一个脚本就能不带任何意见地给出答案。第九项叫 authority.semantic问的是「这次权限检查对这个功能是否正确」。没有谓词能判定它所以评分器只能打印一个问号然后等人。在那次八项全绿的运行里一个审查子智能体读了 diff填上了第九列给出三个真实缺陷其中一个是权限 bug处理器用会话里的地牢主持人身份做判断于是玩家读取自己角色存档的请求被拒了而验收标准第 4 条要求放行。评分全绿不等于改动正确它只意味着「没有机械可发现的错」。这段距离就是人工审查注意力该放的地方。怎么把这套方法用在自己的仓库上作者的复现路径很短拿一个工单先在完全没有规范文件的仓库上跑一遍用你事先写好的检查项打分——这一遍就是「事故」之后每写一条规则都要能指回它接着一次只加一个杠杆重跑同一个工单并说清楚是哪个杠杆推动了哪一项检查。他自己在同一张工单上跑出的对照是裸跑改动 3 个文件、新增 49 行、八项过一项加上规范文件后改动 3 个文件、新增 102 行、八项全过。改动更大的那一版才是更好的那一版——这一点值得先说清楚免得有人开始优化「改动行数」。跑完你大概会发现两件事有些规则什么也没约束住因为代码本来就同意它们以及至少有一条你真正在乎的规则任何机器都判定不了——那正是最值得占用人力的一条。约束编码智能体的一切最终都是你拥有的文件。唯一的问题是这四个杠杆你到底写了几个。

相关新闻

2小时,我搭了一套生产计划排程系统,订单、产能、交期一次排清

2小时,我搭了一套生产计划排程系统,订单、产能、交期一次排清

很多企业最头疼的不是没有订单,而是订单来了,却没人说得清什么时候能交。 销售催计划:客户已经在问交期了; 计划问生产:这张单到底能不能插? 生产说前面还有一堆没做完; 仓库又说:关…

2026/10/16 6:34:54 阅读更多 →
31岁被裁,转行AI Agent开发3个月上岸:给迷茫程序员的救赎之路(收藏)

31岁被裁,转行AI Agent开发3个月上岸:给迷茫程序员的救赎之路(收藏)

本文讲述了作者31岁被大厂裁员后的迷茫与反思,决定转行AI Agent开发并分享3个月逆袭经验。核心内容为:传统互联网赛道内卷严重,大龄程序员应抓住AI Agent发展机遇;通过弃用框架死磕底层、做可上线项目、工程化赋能等步骤&#xff…

2026/10/16 6:33:54 阅读更多 →
TOGAF 信息系统架构 简介

TOGAF 信息系统架构 简介

TOGAF的信息系统架构位于ADM (Architecture Development Method) 的Phase C。 TOGAF中的信息系统架构(Information Systems Architectures)由应用架构(Application Architecture)和数据架构(Data Architecture&#xf…

2026/10/16 6:33:54 阅读更多 →

最新新闻

Win11地址栏拖拽失效:原因排查与替代方案指南

Win11地址栏拖拽失效:原因排查与替代方案指南

这事还得从上周整理文件说起。我在Win11的资源管理器里打开了一串多级目录,类似D盘-素材库-项目A-最终交付,手头有一份改完的压缩包要归位到上级的“项目A”目录。按照以前用Win10的习惯,我直接把文件往地址栏的面包屑路径上一拖就完事了&…

2026/10/16 7:15:04 阅读更多 →
PostgreSQL内核元数据核心:PG_CLASS系统表字段详解与实战排查指南

PostgreSQL内核元数据核心:PG_CLASS系统表字段详解与实战排查指南

维护基于 PostgreSQL 内核的数据库产品时,几乎每天都会和各种系统表打交道,而 PG_CLASS 是其中最绕不开的一张。HIGHGO 这个名字是我对某个基于 PG 内核的数据库项目的代号,它的目录体系和原生 PostgreSQL 保持一致,所以很多排查思…

2026/10/16 7:15:04 阅读更多 →
WinForms VS风格主界面框架:可继承可调试的桌面UI解决方案

WinForms VS风格主界面框架:可继承可调试的桌面UI解决方案

简介:这是一套高度仿Visual Studio界面风格的WinForms Docking框架源代码,面向C#桌面开发初学者与中级工程师,用于快速构建具备专业级停靠、浮动、标签页管理功能的MDI应用程序。资源包含230个文件,主体为95个C#核心逻辑文件&…

2026/10/16 7:15:04 阅读更多 →
分布式事务实战:8种方案的选型逻辑与踩坑指南

分布式事务实战:8种方案的选型逻辑与踩坑指南

1. 为什么“分布式事务”不是一道选择题,而是一场持续权衡的实战“8种常用的分布式事务解决方案”——这个标题听起来像一份技术选型清单,但在我过去十年参与过的二十多个中大型系统重构项目里,它从来不是“挑一个用”的简单动作。我见过某电…

2026/10/16 7:15:04 阅读更多 →
如何把电视盒子变成全屋打印服务器(Armbian + CUPS 完整实操)

如何把电视盒子变成全屋打印服务器(Armbian + CUPS 完整实操)

如何把电视盒子变成全屋打印服务器(Armbian CUPS 完整实操) 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905…

2026/10/16 7:15:04 阅读更多 →
面向对象核心知识详解:从类与对象到封装继承多态

面向对象核心知识详解:从类与对象到封装继承多态

最近重新翻出自己几年前记的一套面向对象基础笔记,边看边感慨。当年跟着一套讲得很细的Java基础课,逐行敲代码、抄概念、画内存图的日子,其实才是真正把编程底子打牢的阶段。面向对象这四个字,很多新手一听就觉得抽象,…

2026/10/16 7:14:04 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →