# sid-code > 长在企业研发环境里的 coding agent —— 你能改、能量、能审、数据不出门的 agent 底座。 本文件是给大模型读的全站索引(共 129 页)。 `/ref/` 下的参考页除术语表外由 `scripts/docs-gen-reference.ts` 从源码生成,与实现同源。 ## 站点 - [sid-code](/) - [更新日志](/changelog): 每个版本对用户有什么变化,按新功能/改进/修复/破坏性变更分类,带独立搜索。 ## 开始 - [sid-code 是什么](/start/): 一句话定位、它能替你做什么的具体例子,以及和 Claude Code 的关系与差异。 - [配置 LLM Provider](/start/configure): anthropic / openai / ollama 三族各一份可直接粘的 settings.json(openai 族含 Chat Completions 与 Responses 两种),含 base_url 的 /v1 两族相反规则。 - [跑通第一个任务](/start/first-task): 一个真实小任务的全过程:改一个函数并跑测试,逐屏解说。 - [安装](/start/install): 一条 curl 命令装好 sid-code,以及 PATH / 权限 / 架构识别三类常见失败的处理。 - [接下来读什么](/start/next): 按你的目标给出四条阅读路径,每条带一句为什么。 ## 指南 - [扩展方式总览](/extend/): 教它新本事(CLAUDE.md / Skill / Hook / 子代理 / Workflow / MCP / 插件)与接进现有环境(LSP / IDE / 无头)的选择表:什么场景用哪个。 - [无头模式与脚本化](/extend/headless): 在 CI / 脚本里非交互地跑 sid-code:三种输出格式怎么选、stdout 什么时候会被污染、结构化输出的坑。 - [Hook 指南](/extend/hooks): 用三个可直接粘的真实场景讲清 Hook 怎么写、怎么调、怎么排错。 - [IDE 集成](/extend/ide): 在 VS Code / Cursor / Windsurf 里用 sid-code:选区同步、@提及、diff 视图、自动发现。 - [代码智能(LSP)](/extend/lsp): 了解 LSP 符号导航、诊断注入与修复建议;交互式会话自动注册已安装的 language server。 - [MCP](/extend/mcp): 接入 MCP server,把企业内部系统变成可调用的工具:五种传输方式、四层作用域、为什么工具"看不见"。 - [插件与 Bridge](/extend/plugins): 插件目录的加载规则与扩展边界,以及 Bridge 远程控制模式。 - [Skill](/extend/skills): 把团队的流程与规范封装成可复用的 skill:3 个内置 skill 干什么、自定义怎么写、为什么写了不生效。 - [子代理](/extend/subagents): 把任务派给子代理,用自定义 agent 固化职责,并按类型分级模型省钱。 - [Dynamic Workflows](/extend/workflows): 什么时候该用多 agent 编排、pipeline 和 parallel 怎么选、跑挂了怎么 resume、结论怎么回收不撞上下文上限。 - [自动更新](/use/auto-update): 自动检测并安装新版本,支持 auto、notify、off 三种模式以及 stable、beta 通道。 - [上下文与压缩](/use/context): 上下文窗口如何管理、auto-compact 何时触发、怎么少花 token。 - [成本与用量](/use/cost): 单次任务花了多少、prompt cache 命中率怎么看、怎么把成本降下来、怎么设花费上限。 - [交互模式与键位](/use/interactive): 常用键位、和弦、中断与排队输入的行为。 - [记忆与 CLAUDE.md](/use/memory): 项目指令、个人记忆、团队记忆三层的作用范围与优先级。 - [性能与延迟](/use/performance): 用 /perf 看本机的首字延迟、生成速度、端到端耗时和工具耗时,判断慢在模型、网关还是工具,并跨天、跨版本对比。 - [权限与人工确认](/use/permissions): 八种权限模式怎么选、allow/deny/ask 规则怎么写,以及 --dangerously-skip-permissions 到底跳过了哪些层。 - [Plan Mode 与 Todo](/use/plan-mode): 先规划后动手的用法,以及 todo 清单在长任务里的作用。 - [隐私与数据流向](/use/privacy): sid-code 在本机存了什么、什么会离开这台机器、每条出网受哪个开关控制。 - [会话管理](/use/sessions): 会话持久化、恢复(-c)、checkpoint 与回滚。 - [排障](/use/troubleshooting): 真实踩过的坑:症状 → 原因 → 解法。 - [Worktree 隔离](/use/worktree): 在独立 worktree 里干活,含 symlink node_modules 的跨分支 lockfile 风险。 ## 参考 - [CLI 参数与子命令](/ref/cli): sid-code 的全部命令行参数与子命令。 - [环境变量](/ref/env): 全部可用环境变量及其作用。 - [术语表](/ref/glossary): 本站反复出现的术语的准确定义。读文档时遇到不认识的词,来这里查一句话。 - [Hook 事件](/ref/hooks): 全部 Hook 事件的配置键名、是否会触发与触发时机。 - [settings.json 字段](/ref/settings): settings.json 的全部可配字段、类型与默认值。 - [斜杠命令](/ref/slash-commands): 交互模式里可用的全部斜杠命令。 - [内置工具](/ref/tools): 全部内置工具的名称、用途与入参。表里的名称就是你在权限规则、子代理工具清单、hook matcher 里要写的字符串。 ## 团队部署 - [团队默认配置分发](/team/defaults): 用 team-defaults.json 给全团队统一 provider 与默认配置,新人装完即可用。 - [企业登录](/team/login): 用飞书身份登录企业后端:/login、/logout、/whoami,凭据存在哪、多久过期、不登录会怎样。 - [从 Claude Code 迁移](/team/migrate): 哪些配置不用动就能用、哪些必须改结构、以及用内置 skill 半自动迁移。 - [轨迹采集与可观测](/team/observability): 每次会话落盘了什么、能回答什么问题、怎么用一条命令做事后诊断、怎么聚合到团队。 - [企业 policy 与安全边界](/team/policy): 企业侧能强制约束哪些行为、哪些约束用户绕不过去,以及当前的能力边界在哪。 - [配额与成本控制](/team/quota): 给会话、给团队设花费上限;四级预警、按周期的预算规则、超限自动停止。 - [定时与无人值守](/team/scheduled): 会话内 /loop、跨会话 durable 定时任务、daemon 常驻守护、GitHub webhook 触发——整条无人值守链路。 ## 博客 - [博客](/blog/): sid-code 的机制解析与工程实测:一个机制为什么这么设计、实现里踩了哪些坑、实测数据是多少、当前边界在哪。带 file 级证据,不写"据说"。 - [Claude Code 源码解析(零)· 引言](/blog/cc-00-introduction): 一份意外泄露的 Harness Engineering 教材:51 万行 TS、1902 个文件。这个系列拆什么、适合谁读、以及一份快照解析的局限在哪。 - [Claude Code 源码解析(一)· 启动与引导](/blog/cc-01-bootstrap): 一个功能复杂的 CLI 工具如何做到启动不卡顿?如何在毫秒级完成快速路径分发,同时延迟加载重量级运行时? - [Claude Code 源码解析(二)· 核心对话循环](/blog/cc-02-query-loop): LLM 的单次 API 调用如何变成持续的"对话-执行-反馈"循环?上下文窗口有限,长对话如何不丢失关键信息? - [Claude Code 源码解析(三)· 工具系统](/blog/cc-03-tool-system): 如何让 LLM 从"只会聊天"变成"能读写文件、执行命令、搜索代码"?30+ 工具如何统一管理,又如何安全地并发执行? - [Claude Code 源码解析(四)· 权限与安全](/blog/cc-04-permission-security): LLM 拥有执行 Shell 命令和修改文件的能力,如何确保用户始终拥有控制权?如何在"自动化效率"和"安全可控"之间找到平衡? - [Claude Code 源码解析(五)· Agent 与多任务](/blog/cc-05-agent-task-system): 单个 Agent 处理复杂任务力不从心,如何派生子代理并行工作?多个 Agent 之间如何隔离状态、共享基础设施、协调分工? - [Claude Code 源码解析(六)· MCP 集成](/blog/cc-06-mcp-integration): Claude Code 不可能内置所有工具,如何通过标准化协议让外部服务(GitHub、数据库、Slack 等)无缝接入 LLM 工具链? - [Claude Code 源码解析(七)· Hooks 系统](/blog/cc-07-hooks): "Hook"在 Claude Code 中有双重含义——用户如何通过配置实现"每次执行前自动检查"的自动化?React Hooks 又如何驱动 UI 与生命周期? - [Claude Code 源码解析(八)· 状态管理](/blog/cc-08-state-management): 对话消息、后台任务、权限配置、MCP 连接、UI 状态……一个终端应用如何管理如此复杂的全局状态而不失控? - [Claude Code 源码解析(九)· 命令系统](/blog/cc-09-command-system): 80+ 斜杠命令如何做到按需加载而不拖慢启动?命令如何注册、发现、解析参数并执行? - [Claude Code 源码解析(十)· 插件系统](/blog/cc-10-plugin-system): 第三方开发者如何扩展 Claude Code 的能力?插件如何加载、隔离、热重载,又如何确保不破坏宿主安全? - [Claude Code 源码解析(十一)· Skills 系统](/blog/cc-11-skills-system): 通用 Agent 在垂直领域(PDF 处理、前端设计、API 开发)表现平平,如何通过预打包的 prompt + 工具组合让它变成领域专家? - [Claude Code 源码解析(十二)· 终端 UI 渲染](/blog/cc-12-terminal-ui): 如何在终端这个"原始"环境中实现权限弹窗、Diff 高亮、代码着色、虚拟滚动等富交互体验?React + Ink 如何驱动 TTY 渲染? - [Claude Code 源码解析(十三)· API 与网络层](/blog/cc-13-api-networking): 与 Anthropic API 的通信远不止发个请求——流式响应如何实时解析?网络抖动如何优雅重试?Prompt Cache 如何节省 token 开销? - [Claude Code 源码解析(十四)· 记忆与上下文持久化](/blog/cc-14-memory-context-persistence): 每次新会话都要重新介绍项目背景?Claude Code 如何跨会话积累知识——记住你的编码偏好、项目约定和团队规范? - [Claude Code 源码解析(十五)· 设置与配置系统](/blog/cc-15-settings-configuration): 全局默认、用户偏好、项目约定、企业管控——四层配置来源如何合并?Feature Flags 如何实现灰度发布和运行时切换? - [Claude Code 源码解析(十六)· IDE 集成与 Bridge](/blog/cc-16-ide-integration-bridge): Claude Code 不只是终端工具——它如何与 VS Code 等 IDE 双向通信,实现选区同步、Diff 预览、诊断信息获取? - [Claude Code 源码解析(十七)· 遥测与分析](/blog/cc-17-telemetry-analytics): 如何在充分尊重用户隐私的前提下收集产品使用数据?事件日志、诊断追踪、Opt-out 机制如何工程化落地? - [Claude Code 源码解析(十八)· 高级特性](/blog/cc-18-advanced-features): Plan 模式如何让 LLM "先想后做"?Worktree 如何实现零风险的代码实验?语音输入、Swarm 协作、Computer Use 等前沿能力如何实现? - [Claude Code 源码解析(十九)· SDK 与编程接口](/blog/cc-19-sdk-programmatic-api): 不想用 CLI 交互,想把 Claude Code 嵌入自己的工具链?SDK 入口、非交互式会话、HTTP Server 模式如何满足编程式调用需求? - [Claude Code 源码解析(二十)· 工程模式总结](/blog/cc-20-engineering-patterns): 51 万行 TypeScript 代码库中反复出现的架构智慧——延迟加载、注册表模式、Zod 运行时校验、最小权限、分层错误处理……这些模式为何被选择,又如何协同工作? - [上下文压缩:压缩有没有真的发生,靠什么验证](/blog/context-compaction): TUI 弹出"对话已压缩",占用率却一直是 17%,模型连续 30 条自我否定——2026-07-29 那次事故的真因不是压缩策略差,是压缩根本没跑却被硬编码返回了成功。这篇讲那次事故怎么用"实测差值"取代"代码路径宣告",再交出同一个模式的第二现场:负责让压缩"越用越省"的自适应调参,从接线那天起读到的 100% 是单元测试写脏的假数据,而显式设置项目统一的隔离变量对它完全无效。 - [AI 提效的熵账本:熵不会减少,它只会搬家](/blog/entropy-accounting): 「花钱买负熵」是个很吸引人的说法,但把 Landauer 和 Bennett 的原话读准,它推出的结论是反的——AI 压缩的是生成,不是擦除,于是熵必然堆到你没装仪表的那一侧。这篇把熵拆成可信度递减的三层,淘汰掉四个直觉上的「熵减指标」、换上五个能过筛的角度,最后给出明天就能动手的四步。 - [JIT 上下文:让规则在正确的时刻进入上下文](/blog/jit-context): 规则写了却不被遵守,多半不是模型不听话,而是那条规则当时根本不在上下文里。这篇从"为什么不能全塞进去"这个约束推出 JIT 的形状,交出实测基线,交代三个只能靠实测发现的静默缺陷,并记录原本五条的边界表怎么被消到两条——其中一条根本不是缺口,是把领先写成了短板。 - [主循环机制:六道闸门守着一个几乎没人经过的出口](/blog/main-loop): 一个 agent 主循环里最复杂的一段代码,是模型说"我做完了"之后才跑的那 400 行——六道闸门依次拦它。实测 426 轮里只有 40 轮走到那里,六道闸门总共只响了 1 次。这篇把闸门链的形状从约束推出来,交出触发率实测,指出真正的偏差发生在闸门之前(一个模型宣称 end_turn 却仍在调工具,3/6 轮),以及为什么这个偏差只写进了 warn.log 而没进结构化轨迹。 - [Prompt Cache:一个读错的字段名,把 95% 的命中率记成 2.2%](/blog/prompt-cache): 一个模型的命中率记成 2.2%,判据看着很硬——同代码路径的对照组命中、它 67/67 次恒零,于是结论写成"网关后端不支持"。这个结论错了:判据方法对,但认错了代码路径,真实命中率是 95.2%。这篇从协议约束推到唯一解,用受控实测拿到三族 95%+ 的稳态基线,再交出八个把自己骗过去的度量事故——包括一次目标指标归零、测试全绿、机理讲得通,却让真实命中率降了 11 个点的"优化"。 - [CC Switch 深入研究(2026-08 快照)](/blog/ref-cc-switch): 26 章逐节成册,按目录跳章查阅——把 CC Switch 的产品形态、架构与实现细节交叉核验到版本号级别:名字是「配置切换器」而实体是 16.9 万行 Rust 的本地 API 网关、8 个被管理的工具与两种写入模式、25 条代理路由、7 个协议转换器、448 条预设背后的 86 家厂商、rquickjs 用量脚本沙箱。这是一份手册,不是读完就走的文章。 - [Claude Code 深入研究(2026-08 快照)](/blog/ref-claude-code): 20 章逐节成册,按目录跳章查阅——把 Claude Code 的功能、架构与实现细节交叉核验到版本号级别:20+ 内置工具、6 种权限模式、20+ Hook 事件、MCP 三大原语、Auto Mode 分类器、OS 沙箱、Dynamic Workflows。这是一份手册,不是读完就走的文章。 - [OpenAI Codex 深入研究(2026-08 快照)](/blog/ref-codex): 26 章逐节成册,按目录跳章查阅——把 Codex 的产品形态、架构与实现细节交叉核验到版本号级别:96% Rust 重写、App Server 双向协议、三平台内核沙箱(Seatbelt / Landlock+seccomp / restricted tokens)、Shell-Centric 工具设计、11 类 Hook 事件、Auto-review 事前审查、Codex Cloud 与 Security。这是一份手册,不是读完就走的文章。 - [Gemini CLI 深入研究(2026-08 快照)](/blog/ref-gemini-cli): 20 章逐节成册,按目录跳章查阅——把 Gemini CLI 的产品形态、架构与实现细节交叉核验到版本号级别:7 包 monorepo、5 层策略优先级、11 类 Hook 事件、5 种沙箱后端(含 567 行 C# 原生实现)、27 个内置工具名、4 个内置子代理、Conseca 上下文感知安全层。这是一份手册,不是读完就走的文章。 - [Hermes Agent 深入研究(2026-08 快照)](/blog/ref-hermes-agent): 20 章逐节成册,按目录跳章查阅——把 Nous Research 的 Hermes Agent 交叉核验到版本号级别:三套版本号并存且 PyPI 上有官方包却被文档判为不支持、83 个内置工具 / 59 个 toolset、24 个渠道平台、7 个终端后端、24 个插件 Hook、95 条斜杠命令、27 个 LSP server、单文件 27814 行的 gateway、以及一条真的接线了的学习闭环。这是一份手册,不是读完就走的文章。 - [Kimi Code 深入研究(2026-08 快照)](/blog/ref-kimi-code): 21 章逐节成册,按目录跳章查阅——把 Kimi Code CLI 的产品形态、架构与实现细节交叉核验到版本号级别:17 包 monorepo、双引擎并存(agent-core / agent-core-v2)、DI × Scope 四层作用域、12 节点有序权限链、20 类 Hook 事件、AgentSwarm 128 子代理、Goal 自治模式。这是一份手册,不是读完就走的文章。 - [LangChain 深入研究(2026-08 快照)](/blog/ref-langchain): 15 章逐节成册,按目录跳章查阅——把 LangChain 的包拓扑、API 契约与升级边界交叉核验到版本号级别:一个仓库 21 个包各自独立版本号、`libs/langchain/` 装的包叫 langchain-classic 而 `langchain` 在 langchain_v1/、核心 API 面四个口径差 10 倍、114 处 @deprecated 有 113 处瞄准 2.0.0、langchain 钉住 langgraph<1.3.0 而 langgraph 已到 1.2.10。这是一份手册,不是读完就走的文章。 - [Langfuse 深入研究(2026-08 快照)](/blog/ref-langfuse): 22 章逐节成册,按目录跳章查阅——把 Langfuse 的产品形态、架构与实现细节交叉核验到版本号级别:一个名字下三个不同的「v4」、v3/v4 两条发布线并行维护、v4 用 events 表取代 traces/observations、37 个队列、79 个 MCP 工具、376 个环境变量、企业许可校验只是一次字符串前缀匹配。这是一份手册,不是读完就走的文章。 - [LangGraph 深入研究(2026-08 快照)](/blog/ref-langgraph): 19 章逐节成册,按目录跳章查阅——把 LangGraph 这个「框架」核验到包名与版本号级别:一个仓库 8 个包 8 组版本号、langgraph 1.2.10 撞在 langchain 钉的 <1.3.0 上界、create_react_agent 已弃用搬去 langchain、docs/ 只剩 294 条重定向的空壳、checkpoint 契约不是 ABC 而是 16 个 NotImplementedError、msgpack 反序列化默认宽松、8 条已公开安全公告。这是一份手册,不是读完就走的文章。 - [LiteLLM 深入研究(2026-08 快照)](/blog/ref-litellm): 26 章逐节成册,按目录跳章查阅——把 LiteLLM 的产品形态、架构与实现细节交叉核验到版本号级别:Rust 核心已装进每个 wheel(占体积 84%)却默认关闭、五个数据源给出五个不同的 provider 数、9 种缓存后端、51 个回调白名单、49 个 guardrail、925 个环境变量、616 条代理路由。这是一份手册,不是读完就走的文章。 - [OpenClaw 深入研究(2026-08 快照)](/blog/ref-openclaw): 22 章逐节成册,按目录跳章查阅——把 OpenClaw 的产品形态、架构与实现细节交叉核验到版本号级别:五次改名的沿革、Gateway 单进程控制面、27 个内置聊天渠道、51 个核心工具 / 13 个工具组 / 4 档 profile、16 个内部 Hook 事件 + 17 个插件 Hook、155 个 extensions、4 种沙箱后端、npm stable 停在 21 天前。这是一份手册,不是读完就走的文章。 - [opencode 深入研究(2026-08 快照)](/blog/ref-opencode): 26 章逐节成册,按目录跳章查阅——把 opencode 的产品形态、架构与实现细节交叉核验到版本号级别:客户端/服务器分离、TUI 从 Go 重写为 TypeScript+Solid、13 类权限键、8 层配置优先级、28 类插件事件、75+ Provider、Zen/Go 两套自营网关。这是一份手册,不是读完就走的文章。 - [promptfoo 深入研究(2026-08 快照)](/blog/ref-promptfoo): 22 章逐节成册,按目录跳章查阅——把 promptfoo 的产品形态、架构与实现细节交叉核验到版本号级别:66 类断言、155 个红队插件(其中 117 个需托管推理)、37 种攻击策略、89 个 provider 前缀、9 种配置文件扩展名、14 个 MCP 工具、31 个模型扫描器。这是一份手册,不是读完就走的文章。 - [Reasonix 深入研究(2026-08 快照)](/blog/ref-reasonix): 26 章逐节成册,按目录跳章查阅——把 DeepSeek-Reasonix 的产品形态、架构与实现细节交叉核验到版本号级别:v0.x TypeScript 到 v1.x Go 的整体重写、围绕前缀缓存稳定性组织的内核、20 个编译期内置工具、三档运行模式、17 个扩展拦截点、44 个 Provider 预设。这是一份手册,不是读完就走的文章。 - [Agent Runtime(01)· Agentic Loop:主循环里到底发生了什么](/blog/sc-01-agentic-loop): 「agent 就是一个 while 循环」这句话没错,但真实实现会长到五千行。这篇从一次 HTTP POST 讲起,把循环凭什么停、状态怎么在迭代之间传、那五千行在处理什么逐层拆开。 - [Agent Runtime(02)· 上下文工程:什么内容在什么时刻进入上下文](/blog/sc-02-context): System Prompt 分层装配、compact 压缩、JIT 按需加载、prompt cache 前缀稳定化——四件事共用一个约束:窗口是有限的,而无关内容不只是浪费钱,它会主动干扰模型。 - [Agent Runtime(03)· 工具调用:模型只会「说」,是谁在「做」](/blog/sc-03-tools): 模型输出的从来只是一段 JSON。从「谁真正执行了它」讲起,拆开工具定义、schema 方言、并发编排、结果回注与失败语义——以及两家协议对同一件事的相反叫法。 - [Agent Runtime(04)· 权限系统:凭什么允许它动这个文件](/blog/sc-04-permission): 一个能改代码、能跑命令的 agent,靠什么拦住它不该做的事。拆开规则匹配、优先级语义、HITL 确认与静态防护层,以及「最高优先级」到底是哪一种语义。 - [Agent Runtime(05)· 任务规划:agent 的「计划」到底是什么东西](/blog/sc-05-plan): 计划不是一段文本,是一个有状态机、有审批闸门、有恢复路径的运行时对象。这篇讲 plan mode 怎么把「先想再做」变成机制,而不是一句提示词。 - [Agent Runtime(06)· Multi-Agent:多个 AI 怎么协作,以及为什么大多数时候不该协作](/blog/sc-06-multi-agent): 子代理隔离、后台任务注册表、输出落盘、通知回注、驱逐分级、end_turn 单飞闸门。同时说清一件反直觉的事:多代理在多数任务上是净亏的。 - [Agent Runtime(07)· 记忆系统:跨会话记住什么、凭什么记住](/blog/sc-07-memory): 记忆不是「把对话存起来」。拆开分层记忆、检索时机、写入判据与团队记忆的凭证拦截——以及为什么「写盘前命中 secret 要拒绝写入」而不是脱敏后写入。 - [Agent Runtime(08)· 会话持久化与检查点:怎么把中断的活接回来](/blog/sc-08-session-checkpoint): 会话落盘、恢复、检查点回滚三件事共用一个难点:一致性。这篇讲存储选型为什么不是 SQLite、恢复路径为什么是踩出来而不是设计出来的。 - [Agent Runtime(09)· MCP:一个 agent 怎么接住外面的整个世界](/blog/sc-09-mcp): MCP ≠ Function Calling,这是第一道翻车点。从协议三种消息类型讲到传输层、OAuth 2.1 授权、工具膨胀与语义路由。 - [Agent Runtime(10)· Skills:从「录一次」到「每次都照着做」](/blog/sc-10-skills): Skill 是什么、由什么组成、怎么被加载与激活。含四条实测缺口:压缩重注入无预算、降级无埋点、条件激活是单向的、加载优先级的实际顺序。 - [Agent Runtime(11)· Hooks:让别人的 agent 听你的话](/blog/sc-11-hooks): 「Hook」这个词指三种不同的东西,混着说必然出错。拆开事件模型、matcher 匹配、输入输出契约与 PreToolUse 和权限层的顺序问题。 - [Agent Runtime(12)· 命令系统:怎么接住上百条斜杠命令](/blog/sc-12-command-system): 从参数展开、命名空间、来源优先级到内置与用户命令的冲突解析。一个看着简单的功能,规模上去之后每一层都要有判据。 - [Agent Runtime(13)· 配置系统:五层来源怎么合成一个值](/blog/sc-13-settings-config): 配置的难点不在读文件,在于合并语义、写回不能有损、以及「改一个字段」为什么会抹掉用户的密钥。含 Zod round-trip 有损这个真实事故。 - [Agent Runtime(14)· Goal & Gates:让 agent「干完再停」而不是「说完就停」](/blog/sc-14-goal-gates): 模型说 end_turn 不等于活干完了。Stop Hook → Todo → Hypothesis → Goal 四道闸门顺序放行,以及一个更要紧的事实:这些闸门的实测触发率极低。 - [Agent Runtime(15)· LSP 代码智能:让 agent 看懂符号而不只是文本](/blog/sc-15-lsp): 定义跳转、引用查找、实现跳转、诊断回灌。讲清 LSP 在 agent 里的位置:它不是给人用的编辑器功能,是给模型补一层它靠 grep 拿不到的结构信息。 - [Agent Runtime(16)· 编排与调度:确定性的骨架配非确定性的肉](/blog/sc-16-workflow-schedule): 两部分:编排(怎么用脚本确定性地驱动一群子代理)与调度(怎么让任务在正确的时刻自己跑起来)。含三层各自的「不可用条件」。 - [Agent Runtime(17)· SDK 与插件:把 CLI 变成别人能调、能扩的底座](/blog/sc-17-sdk-plugins): 两部分:SDK(让别的程序调得动)与插件(让别人加得上能力)。核心是接口契约——一旦有人依赖,它就不能再随便改。 - [Agent Runtime(18)· IDE 与 Bridge:一个终端程序怎么长出手脚](/blog/sc-18-ide-bridge): 两个进程怎么说话、选区与 @提及 怎么传、diff 怎么回显、远程控制的 WebSocket 协议长什么样。含重连与心跳的全部实测常量。 - [Agent Runtime(19)· Worktree 工作区隔离:让多个 agent 同时改一个仓库](/blog/sc-19-worktree): 并行开发的前提是隔离。这篇讲 git worktree 怎么当运行时隔离用,以及它自带的几个坑:node_modules 向上解析、per-worktree exclude 不存在、路径本身会命中敏感路径守卫。 - [Agent Runtime(20)· 终端 UI 渲染:在只认字节的黑框里做 Web 级界面](/blog/sc-20-tui): 从字节到像素:ANSI、光标、双缓冲、React 协调器、静态区与动态区的切分。以及流式输出防闪烁为什么必须靠稳定前缀切分而不是按视口截断。 - [Agent Runtime(21)· 多 Provider:一套代码同时接住十几家大模型](/blog/sc-21-provider): 「OpenAI 兼容」是营销词。拆开五个正交件、六类线格式差异、差异的三种表达形态,以及重试/超时/降级/冷却这套韧性工程的全景。 - [Agent Runtime(横切一)· 可观测性:没有轨迹就画不出任何一条曲线](/blog/sc-x1-observability): trace / telemetry / analytics 三层各自的职责,日志与指标与追踪怎么落盘。重点是指标口径的陷阱:TTFB 为什么禁止跨网关路由汇总,实测差 17 倍。 - [Agent Runtime(横切二)· 可评测性:怎么知道这一版没有变差](/blog/sc-x2-evaluation): 评测 agent 不等于测试代码。三件套、判据的五种形态、LLM-as-Judge 与校准、pass@k 与方差、外部锚 vs 内部集,以及会「绿着坏掉」的那些失效模式。 - [Agent Runtime(横切三)· 工程化与交付:门禁、选测、发布通道、决策留痕](/blog/sc-x3-engineering): CI 门禁怎么设计成不能静默失效、按 diff 选最小测试集怎么与 PR 化成对、四平台交叉编译加双通道灰度加秒级指针回滚、以及为什么否决论证是最贵的资产。 - [Agent Runtime(横切四)· 企业级能力与数据出境控制](/blog/sc-x4-enterprise): 「企业级」是一个独立命题:内部网关、内网 GitLab、SSO、团队配置分发、企业 policy。以及企业敢装的前提——隐私三级递进、内容级 tracing 默认全关,和一次「开关看起来生效了但轨迹照传」的静默事故。 - [子代理隔离:五次修复都在补同一个洞](/blog/subagent-isolation): 你派一个子代理去读文件,它读完,主代理的「先读后写」护栏就失效了——因为两者共用同一个 tracker。这篇把子代理隔离的五次修复排成一条线,指出它们修的是同一类缺陷:状态是隔离的,但持有状态的那个对象是共用的。附一个实测:本该做兜底的 spawn 隔离在编译二进制里可达性为零,以及 5621 个共享黑板文件里 94.5% 是测试灌进去的。 - [子代理的容错与降级:同一个 429,主循环重试到成功,子代理 1ms 就死了](/blog/subagent-resilience): 6 个子代理并行做审计,网关返回 429,两个在 1ms 内失败。第一反应是"给子代理也补一套重试"——那个方向错了,它制造的第二份实现在四个月里漂移出六个缺口。真正的根因在更下一层:韧性层带实例状态,因而不可被并发共享。这篇讲那次改错的方向怎么被推翻、"能力写好了但从未生效"这个形态如何连续复发五次,以及为什么改完之后我仍然测不出它有没有用。 - [系统提示词的编排:一次 11 token 的改动,让 5201 token 重新计费](/blog/system-prompt-composition): 系统提示词有两个正交的编排维度——注意力位置和缓存稳定性——而输出只有一根字符串。这篇实测两者打架的后果:priority 排序被缓存分区静默覆盖,声明「不越过项目规则」的段落实际排在项目规则之前;动态区里 95.7% 是会话内根本不会变的内容。然后淘汰掉三个看着都对的修法,交代为什么最省的那条路在直连 Anthropic 下必然返回 400。 ## backend - [企业后端概览](/backend/): 企业后端是什么、能管什么管不了什么,员工的 sid-code 和它之间有哪几条通道,管理台每个页面做什么。 - [审计](/backend/audit): 看懂管理台的「审计」页:员工端的事件从哪来、白名单里有哪些事件、每一块数字怎么读,以及策略、预算、Flag、设备等各自的变更记录在哪里看。 - [遥控](/backend/bridge): 管理员在管理台接管员工机器上的 sid-code 会话:怎么配对、能做什么、看得到什么、员工那边是什么样,以及部署要求和限制。 - [预算](/backend/budget): 在管理台给组织、团队或单台设备配远程预算:按什么周期算、超限告警还是硬拦、员工端什么时候知道,以及拉取失败或员工关了遥测时会怎样。 - [成本](/backend/cost): 管理台「成本」页的数字从哪来、按人和按设备怎么看、会话明细里每一列的口径,以及哪些花费看不到。 - [部署与配置](/backend/deploy): 企业后端怎么装:本地试用的逐条命令、生产部署的步骤骨架、环境变量全表、飞书开发者后台清单和首个管理员引导。 - [设备与注册码](/backend/devices): 设备从哪来、设备凭据怎么续期和失效、怎么把设备分进团队、怎么吊销,以及给 CI 和无浏览器机器签发注册码。 - [飞书文档授权](/backend/feishu): 让员工的 Agent 以员工本人的飞书权限只读访问飞书云文档:开启条件、怎么分发给员工、三个工具、授权状态与调用审计。 - [Feature Flag](/backend/flags): 在管理台维护全局 Feature Flag:能用来做什么、不能用来做什么、员工端什么时候拿到、拉取失败或员工本地覆盖时会怎样。 - [插件市场](/backend/marketplace): 在管理台登记、上传、发布、下架企业插件,员工端怎么安装和更新,以及给 CI 签发只能上传草稿的凭据。 - [组织与团队](/backend/org-team): 组织和团队是策略、预算、市场可见范围的作用对象:怎么建、ID 规则、设备怎么分进团队,以及为什么飞书登录的设备默认不在团队里。 - [策略](/backend/policy): 在管理台给组织、团队或单台设备下发企业策略:怎么求值、能配哪些字段、员工端什么时候生效、拉取失败时会怎样。 - [快速上手](/backend/quickstart): 后端装好之后,管理员第一次用管理台:建团队、接入第一台设备、下发一份策略和一份预算,并确认它们真的生效了。 - [接口、鉴权与枚举](/backend/reference): 企业后端的四种鉴权方式、员工端会请求的全部路由、管理接口的模块前缀、状态码总表、枚举和硬编码上限。 - [仪表盘与轨迹](/backend/trajectories): 员工上传的会话轨迹在管理台里怎么看、怎么筛、怎么标注和导出,以及这份数据的归因口径和隐私边界。 - [排障与常见问题](/backend/troubleshooting): 按症状排查企业后端的常见问题:策略没生效、被预算停了、登录失败、插件装不上、飞书工具报错、审计页看不到设备。 - [用户与登录](/backend/users): 谁能进管理台、怎么授予和收回管理员、员工离职时吊销账号会连带发生什么,以及登录失败时每个错误码的原因。