用途:为 ADK 的一个代码单元撰写“as-built”(按实现现状)架构文档。单元测试是按其实现现状来验证代码的,单元设计文档同理,只记录已实现的内容,不写提案或设想。读者关心的是“改动这里会破坏什么”,而不是“如何调用它”。
输入:需要源文件,或源文件内某个类/方法的名称;如存在还应阅读该单元实现的基类与接口、单元测试(理解预期行为的最佳证据)以及示例用法。
写作前分析:从源码逐项回答——单元用途与预期使用方式;执行流程及流入流出的数据;上游依赖以及哪些类依赖本单元;扩展面(抽象方法、钩子、回调、可配置字段);约束(子类或调用方不得更改什么及原因);运行限制。代码未体现的内容不写入文档,不从命名推断设计意图。
文档位置:在 docs/design/ 下镜像源码路径,每个单元一个目录,文档名为 index.md,去掉私有模块的前导下划线。例如 src/google/adk/workflow/_function_node.py 对应 docs/design/workflow/function_node/index.md;src/google/adk/events/event.py 对应 docs/design/events/event/index.md。若该路径已有文档,原地更新,代码未变处保留原措辞,使差异只反映实际改动。仓库中尚无 docs/design/,首个设计文档创建该目录;docs/guides/ 是已有的同级目录树,可参照其目录形态。
链接规范:文档在 GitHub 上渲染,本地路径无效。将 {repo_root}/src/google/adk/{topic}/{unit}.py#L93 重写为 https://github.com/google/adk-python/blob/main/src/google/adk/{topic}/{unit}.py#L93。
结构:按 references/design-template.md 逐节编写。