正在统计访客…
浏览全部文档
开始 · 9找到适合你的 Runifold 学习路径45 分钟掌握 Runifold理解完整的 Runifold 平台第一次可信运行选择正确的执行 API选择 Crate 与 Cargo Feature构建常见 Runifold 应用Runifold 常见问题排查 Runifold 应用故障
执行内核 · 7理解 RunContext安全协调外部副作用使用预算与取消限制工作安全地处理错误与重试事件、Journal 与执行证据设计 Capability 安全执行从 Checkpoint 安全恢复
模型与服务商 · 7在避免重复输出的前提下路由模型选择并配置模型服务商使用服务商中立的模型协议基于 Provider Runtime 契约构建使用 OpenAI 控制面与 Realtime API测试与 Benchmark Provider Adapter配置 OpenAI、Anthropic、Gemini 与 Ollama
Agent · 7构建并配置 Agent为 Agent 添加类型化工具加入会话与语义记忆安全地委派给子 Agent返回结构化 Rust 值在不丢失语义的前提下流式输出使用检索为 Agent 提供事实依据
持久工作流 · 7组合确定性工作流让工作流持久化运行持久工作流 Worker协调 Timer、Signal 与持久等待运行多租户工作流基础设施运行并行 Branch 与安全 Race对持久 Workflow 进行版本管理
集成 · 7通过 MCP 连接外部能力选择存储与持久化边界通过 MCP Tasks 暴露持久工作构建并评估检索流水线使用 MCP Resources、Prompts 与 Sampling在不跨越权限的前提下缓存 MCP 响应在 Rust Web Service 中部署 Runifold
质量与运维 · 10在没有网络的情况下测试评估质量并阻止回归观测完整运行树在浏览器与边缘环境安全运行准确理解可靠性声明在 CI 中运行可复现评测使用 SLO 运维 Runifold治理 Task 保留与删除把审计证据归档到 S3-Compatible WORM 存储管理兼容性与可信发布
文档/构建 Agent
第一次使用?通过 45 分钟核心课程建立完整心智模型
构建 Agent

返回结构化 Rust 值

请求由 Schema 约束的模型输出,并显式处理不同服务商的能力差异。

实践指南·8 min

定义输出类型

用 Rust 类型表达模型与业务代码之间的契约。类型同时派生 DeserializeJsonSchema;字段尽量具体,并为容易混淆的选项写清说明。

cargo add serde --features derive
cargo add schemars
use runifold::JsonSchema;
use serde::Deserialize;
 
#[derive(Debug, Deserialize, JsonSchema)]
struct Triage {
    category: String,
    urgent: bool,
    explanation: String,
}

不要在反序列化过程中执行写操作。解码完成后,再单独验证业务规则。

构建结构化 Agent

build_structured::<T>() 会把 Schema 加入请求,并返回强类型 Agent。运行结果既 保留解析后的值,也保留完整的规范化执行结果。

let agent = runtime
    .agent("triage")
    .system("Classify the request. Keep the explanation short.")
    .build_structured::<Triage>("triage_result")?;
 
let result = agent.run("Payment failed twice", &run).await?;
println!("{:?}", result.output);
println!("turns: {}", result.outcome.turns);

生产环境应传入显式 RunContext,让预算、权限、取消和可观测性覆盖同一次调用。

验证与错误

需要区分两类失败:

  • 服务商拒绝或忽略了输出格式;
  • 返回的 JSON 无法反序列化,或不满足业务规则。

两者都应视为数据质量错误,不能静默退回未经验证的文本。可以记录响应 ID 与模型 身份,但默认不要记录敏感正文。

服务商支持

结构化输出是一项能力契约:有的模型支持严格 Schema,有的只有 JSON 模式,兼容 端点也可能声明了实际并未严格实现的能力。请测试线上使用的准确组合。

必须严格保证时,让能力策略失败关闭;允许降级时,应在产品行为与监控中明确暴露。