- 产品层:产品宪章与永久禁域、产品定义、完整 1.0 范围与发布门、道家文化语言体系、指标与反指标 - 研究层:参考项目研究(deepseek-harness、pi、MemOS、模型网关)、灵台原生引擎研究(业界原生引擎架构理念与道家文化出处) - 架构层:系统、Agent 运行时(周天体系)、插件系统、灵台引擎(C++ 双形态)、媒体与设备、社区协作市场、前端富内容渲染、数据、记忆与知识 - 契约层:协议与稳定标识、API 总体约定、Native API、兼容网关、实时与 Webhook、内部端口、统一 ContentBlock 与流式(含分支对话交互态)、灵台 C ABI 与 gRPC Service、API 表面、HTTP 与事件、运行观测 - 决策:ADR-001 至 ADR-023(模块化单体、每 attempt 持久化、候选记忆、OAuth 2.1、灵台引擎、双形态部署、大周天演化、宪章、三界作用域、私箧与保全态、叩心、周天统一等) - 交付:WP-01 至 WP-15 实施 TODO 与设计阶段交接文档 - 工程:AGENTS.md 工程规则(含 C++/灵台规范)、CLAUDE.md 引用、.gitignore
4.8 KiB
4.8 KiB
运行观测契约
1. 聚合层次
Run
└─ Turn
├─ ModelCall attempt
└─ ToolCall
普通 Run API 返回状态、可见消息和聚合 usage;详细对象只通过诊断 API 返回。
2. turn
必需字段:
id、run_id、可选parent_turn_id;turn_index、status、started_at、ended_at;input_message_ids、output_message_ids;context_snapshot_id、plugin_snapshot_id;finish_reason、error_code、trace_id。
3. model_call
每次上游 attempt 单独记录:
| 字段 | 说明 |
|---|---|
id、turn_id、attempt_index |
关联和重试顺序 |
provider、endpoint_id |
实际上游 |
logical_model、upstream_model |
业务模型与实际模型 |
request_started_at、first_token_at、completed_at |
时间点 |
latency_ms、time_to_first_token_ms |
延迟 |
input_tokens |
未缓存输入 |
cache_creation_input_tokens |
Provider 缓存写入 |
cache_read_input_tokens |
Provider 缓存读取 |
output_tokens |
Provider 输出 |
reasoning_tokens |
供应商明确返回时记录数量 |
audio_*、image_* |
适用且供应商返回时记录 |
cache_hit |
true / false / null |
cost_minor、currency、price_version |
可重算成本 |
request_id、upstream_request_id |
本地与供应商请求关联 |
finish_reason、error_type、error_code |
结果 |
usage_source |
provider / estimate / unavailable |
总输入:
total_input_tokens =
input_tokens +
cache_creation_input_tokens +
cache_read_input_tokens
cache_hit=true 仅当 cache_read_input_tokens > 0;供应商明确返回 0 时为 false;未提供相关字段时为 null。
上述公式定义的是 Hunjing 标准化语义。Adapter 必须先处理供应商差异:Anthropic 的 input_tokens 是未缓存部分,可直接映射;OpenAI 的 input_tokens 通常包含 input_tokens_details.cached_tokens,因此标准化时将后者映射到 cache_read_input_tokens,并将两者之差映射到本字段的 input_tokens。原始 usage 经脱敏后另存 usage_raw_redacted,便于核对,不能直接混加造成重复计数。
| 标准字段 | Anthropic | OpenAI |
|---|---|---|
upstream_request_id |
request-id / error request_id |
x-request-id |
input_tokens |
usage.input_tokens |
usage.input_tokens - usage.input_tokens_details.cached_tokens |
cache_read_input_tokens |
usage.cache_read_input_tokens |
usage.input_tokens_details.cached_tokens |
cache_creation_input_tokens |
usage.cache_creation_input_tokens |
无对应字段时为 null |
output_tokens |
usage.output_tokens |
usage.output_tokens |
字段路径按具体 API 端点和 SDK 版本适配;表中缺失表示“该端点未返回”,不是数值 0。
4. 字段来源
供应商原生
供应商返回且 Adapter 原样标准化:
- 上游模型 ID;
- request ID;
- stop/finish reason;
- input/output/cache/reasoning token(若存在);
- server tool usage(若存在);
- 供应商错误类型。
平台计算
latency_ms、time_to_first_token_ms;- logical model、endpoint、attempt index;
- 成本与价格版本;
- cache hit 三态;
- retry/fallback 关联;
- Context 和 Plugin snapshot;
- 业务 trace。
平台计算字段不能标记 usage_source=provider。
5. tool_call
字段:
id、turn_id、step_index、call_index;tool_id、plugin_id、plugin_version、execution_backend;arguments_redacted、arguments_hash、redaction_status;result_redacted、result_size_bytes、is_error;status、error_code、started_at、ended_at、latency_ms;confirmation_id、policy_decision_id;trace_id、idempotency_key、evidence_ids。
常规表禁止保存 Authorization、密钥、签名 URL、文件原文和第三方高敏正文。
6. Context Manifest
ContextSnapshot 保存:
- 来源对象 ID 与版本;
- 来源类型:system、character、message、memory、knowledge、tool result;
- 每项估算或真实 token;
- 采用、裁剪、压缩或拒绝原因;
- 最终顺序和不可逆内容摘要;
- cache breakpoint 位置与 Provider cache usage。
不保存隐藏 chain-of-thought。完整 Prompt 仅在用户明确生成敏感支持包时限期保存。
7. 普通与诊断响应
| 数据 | 普通 Run API | Summary | Detailed | Sensitive |
|---|---|---|---|---|
| 状态、可见消息 | 是 | 是 | 是 | 是 |
| 聚合 token/cost | 是 | 是 | 是 | 是 |
| Model attempt | 否 | 摘要 | 是 | 是 |
| Tool 名、状态、耗时 | 否 | 是 | 是 | 是 |
| 脱敏参数/结果 | 否 | 否 | 是 | 是 |
| 受限敏感内容 | 否 | 否 | 否 | 额外确认 |
| 隐藏推理 | 否 | 否 | 否 | 否 |