【免费下载链接】CoreCoderMinimal AI coding agent (~1,000 lines of Python) inspired by Claude Code. Works with any LLM. Think NanoGPT for coding agents. Formerly NanoCoder.项目地址https://gitcode.com/gh_mirrors/co/CoreCoder点击查看免费下载CoreCoder 是一个约一千行 Python 代码的极简 AI 编码代理任何人都可以接入任意大模型。但它真正让人放心的是内置的三层安全机制权限确认每个写操作先问你、Plan 模式只许看、不许动先出方案再动手、危险命令拦截正则黑名单拦住rm -rf /这类灾难命令。这三道防线层层设卡让 AI 帮你改代码的同时你的代码库始终在你手里。为什么 AI 编码代理需要安全层AI 编码代理和聊天机器人最大的区别是它能动手。它会读你的文件、改你的代码、执行 shell 命令。一旦模型手滑写错一个bash命令后果是真实的磁盘事故。CoreCoder 的答案是把一次工具调用拆成多道关卡任何一道都不放行改动就不会发生。核心逻辑都在 corecoder/agent.py 的主循环里模型提出工具调用 → 钩子检查 → 权限确认 → 才真正执行。第一道防线权限确认机制权限层的实现只有 75 行在 corecoder/permissions.py设计思路很直白工具分两类只读的放行改动的先问。只读工具直接放行写操作先问一声CoreCoder 内置了一个只读白名单READ_ONLYread_file、glob、grep、todo_write。这些工具不改任何东西模型想调就调零打扰。而edit_file、write_file、bash和子代理agent属于改动型工具每次调用都会停下来征求你的同意。在交互式终端里你会看到这样的提示permission requested:bash(commandpython -m pytest)[y] allow once [a] always allow this tool [n] deny:三种回答对应三种信任级别yallow once只放行这一次下次还问aalways allow记住这个工具本会话内不再问ndeny拒绝。模型会收到一句用户拒绝了这次调用不要原样重试问问用户想要什么注意总是允许是按工具记忆的不是按命令。你批准过bash跑测试不代表下次它跑bash删文件时你还会同意——所以授权粒度被刻意做粗了。交互式会话的授权会持久化到~/.corecoder/permissions.json重启后依然有效见 corecoder/permissions.py 的_save。无人可问时拒绝比卡住更聪明还有一个容易忽略的细节一次性模式corecoder -p ...下没有人在终端等着回答 y/n。此时改动型调用不会被卡死等待输入而是直接拒绝并告诉模型这是非交互会话没人能批准重跑时加--yes或把具体步骤说给用户。拒绝以普通工具结果的形式返回主循环安然无恙模型还能自己绕路见 corecoder/permissions.py。第二道防线Plan 模式——先出方案后动代码有时你不只是想少点几次确认而是想让代理先讲清楚再开工。CoreCoder 用一个布尔值plan_mode就实现了这个工作流在终端输入/plan进入 Plan 模式提示符会变成You (plan) 此后所有改动型工具一律拒绝只读工具照常工作——模型只能调研代码模型调研完会列出一份编号方案然后停下你看完方案输入approve批准或直接/plan再次退出相关交互逻辑在 corecoder/cli.py给模型的行为约束则在 corecoder/prompt.py 的PLAN_MODE_PROMPT。Plan 模式的优先级最高连--yes都压不过这是整套安全设计里最反直觉、也最关键的一处。CoreCoder 支持--yes一键自动批准所有工具调用给脚本和 CI 用但 Plan 模式开启时--yes也照样被压住一行改动都不会落盘。判断就一行代码且写在权限检查之前corecoder/agent.py 的_permitplan mode outranks consent, even--yes: while its on nothing mutates想想为什么用户开 Plan 模式是要先让代理把方案讲清楚这项权利而不是放弃它。约束的可信度恰恰来自它没有留任何后门。想离线看一遍完整流程项目里带了个不需要 API key 的演示脚本 examples/plan_hooks_demo.py运行python examples/plan_hooks_demo.py就能看到Plan 模式拦截 → 呈现方案 → approve → 执行的全过程。第三道防线危险命令拦截bash工具是代理里破坏力最大的一只手。CoreCoder 在 corecoder/tools/bash.py 里放了一张 11 条的正则黑名单命令执行前先过一遍命中就直接拦下命令根本不会真的跑拦截类型示例风险递归删除根目录/家目录rm -rf /、rm -r ~清空系统或用户目录强制递归删除任意顺序rm -fr、rm --force --recursive不可恢复的批量删除格式化文件系统mkfs销毁磁盘全部数据裸盘写入dd ... of/dev/sda直接覆写磁盘块设备覆写 /dev/sdb数据直接抹除根目录改 777chmod -R 777 /全盘权限失控Fork 炸弹:(){ :|: };:耗尽系统资源下载即执行curl ... \| sh远程代码直接运行写这张表的人显然认真想过对手rm -rf、rm -fr、rm -r -f、rm -f -r是同一件事的四种写法朴素匹配会漏掉后三种所以正则用了双前瞻断言不管标志顺序和长短写法都能命中测试 tests/test_tools.py 把每个变体都验证了一遍。同时它放过正常的rm -f notes.log、rm -r ./build_output不一杆子打死所有rm。被拦下时模型收到的是⚠ Blocked: ...加如果是有意的请把命令改得更具体它会自己调整。但也要说清楚边界黑名单是防手滑的闸不是安全沙箱——编码、拼接都能绕过它。要面对不可信场景还得自己补沙箱。三道防线的优先级谁先说话三道防线不是并列的而是有明确顺序的corecoder/agent.py钩子hooks→ Plan 模式 → 权限确认 → 执行Pre 钩子最先触发退出码 2 即否决理由原样喂回模型后面的关卡根本不用出场Plan 模式次之开启时改动型调用直接被拒最后才是权限确认问你 y/a/n任何一道关卡拒绝返回的都是一段模型读得懂的文本循环继续转模型据此调整下一步这套拒绝也是返回值的设计保证安全层永远不会把主循环搞崩。组合行为被 tests/test_safety_matrix.py 系统性钉住钩子否决时没人被问权限、Plan 模式下一个并行批次里读照常跑写被拒、中断不遗留脏历史……快速上手 CoreCoder 的安全机制安装只需三步需要 Python 3.10git clone https://gitcode.com/gh_mirrors/co/CoreCoder cd CoreCoder pip install -e .配置好任意一家 OpenAI 兼容模型的 API key 后运行corecoder进入终端。建议的安全使用姿势陌生仓库或重要改动前先输/plan看方案再 approve首次让某工具动手时回答y确认它靠谱后回答a脚本/CI 场景才用--yes且建议配合--yes之外的 Plan 习惯想看本次会话改了哪些文件用/diff改错了/undo回滚最近一次改动小结一千行代码里的三层保险权限确认只读放行、改动先问y/a/n 三档信任按工具记忆授权Plan 模式一个布尔值实现先方案后动手优先级高于--yes危险命令拦截11 条正则黑名单拦rm -rf全家、格式化、fork 炸弹、管道执行值得记住的是它的整体哲学每一道防线拒绝时返回的不是异常而是一段模型能读懂、能据此修正的文本。安全机制没有杀死循环而是把不许做翻译成了接下来该做什么。这正是 CoreCoder 值得一读的原因——它用最少的代码诚实地演示了一个 AI 编码代理该怎么保护你的代码库。赞分享【免费下载链接】CoreCoderMinimal AI coding agent (~1,000 lines of Python) inspired by Claude Code. Works with any LLM. Think NanoGPT for coding agents. Formerly NanoCoder.项目地址https://gitcode.com/gh_mirrors/co/CoreCoder点击查看免费下载相关推荐C Cleaner Plus 安全机制深度解析系统保护路径与分级拦截如何做到清理零风险C Cleaner Plus 安全机制深度解析系统保护路径与分级拦截如何做到清理零风险 C Cleaner Plus 是一款 Windows 开源强力清理工具Destructive Command Guard 备份工具防护包Backup Packs解析Borg、Rclone、Restic 与 Velero 危险命令拦截机制Destructive Command Guard 备份工具防护包Backup Packs解析Borg、Rclone、Restic 与 Velero 危险AI 安全治理应用安全CLI开发工具Handy 离线语音转文本实战指南30 秒安装到 3 个调优技巧Handy 离线语音转文本实战指南30 秒安装到 3 个调优技巧 你正在写报告光标停在输入框里但就是不想敲键盘按一下某个键说一段话再松开一整段文字桌面应用语音音频AI 应用本地部署创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?