用途:agentdoc 是 NVIDIA OO 智能体用于生成 LLM 可读文档的机制。LLM 了解 API 的途径来自 doc(self)(注入每个提示)、doc(self.tool)(工具发现)以及 CodeAct 预填充时的 pprint()。采用两步模型:spec() 规定类型如何渲染,doc() 渲染 API 契约,pformat()/pprint() 是底层值级打印器。
主要能力:doc(User) 会输出类文档字符串、字段注释、约束(如 [≥0, ≤150])、枚举与引用类型展开,隐藏字段不出现;doc(instance) 用实时值替代默认值。支持 dataclass、NamedTuple、TypedDict、attrs、enum 与普通类,字段跨 MRO 合并(叶子优先)。
使用方式:from nooa.agentdoc import doc, spec, hidden, pformat, pprint。spec() 有四种形式:字段注解、方法/类装饰器、第三方补丁、实例级;kwargs 含 hidden、description、expand、concise、max_length、max_string、max_depth。hidden 可作装饰器、Annotated 标记或模块级上下文管理器。doc() 支持 concise、多对象、inline_depth。pformat/pprint 可设 max_length、max_string、max_depth 等,截断总带标记;可实现 instance_values 控制实例渲染字段。
适用场景:为智能体 API 生成紧凑文档、渐进式披露、控制噪声字段与隐藏机密/缓存/接线。
限制:init 声明字段依赖源码 AST 解析,在 REPL/exec 中静默失效;无文档字符串和注解的类几乎不渲染;需注意 token 成本;Pydantic model_* 等方法被列入黑名单。未提供的内容以官方资料为准。