正在统计访客…
浏览全部文档
开始 · 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 存储管理兼容性与可信发布
文档/快速定位
第一次使用?通过 45 分钟核心课程建立完整心智模型
快速定位

选择正确的执行 API

理解何时使用 prompt_text、prompt、stream,以及带显式 RunContext 的 run。

实践指南·10 min

决策表

选择能够返回应用所需信息的最窄 API。所有选项最终都会进入同一个 Agent 引擎,区别只在于调用方保留多少控制权与执行证据。

需求使用返回
只需要最终可见文本prompt_textString
需要 Transcript、用量、警告和服务商事件promptAgentOutcome
需要逐步处理事件与文本增量streamAgent 事件流
需要显式预算、截止时间、Capability 或 JournalrunAgentOutcome

**经验法则:**从 prompt_text 开始。当响应本身需要被检查时使用 prompt;当执行策略需要由应用控制时使用 run

prompt_text

当应用只需要最终面向用户的回答时,使用 prompt_text。它会在需要时构建 Agent、创建便捷的根 Run,并在构建或执行失败时返回错误。

let answer = agent
    .prompt_text("总结这次部署的风险。")
    .await?;

这条便捷路径仍然使用 Runifold 的规范执行引擎,不会绕过轮次限制、已注册 Capability、重试策略或流式内容累积。

prompt

当你需要完整规范化结果而不只是文本时,使用 prompt。结果会保留 Transcript、详细用量、警告,以及无法无损标准化的服务商事件。

let outcome = agent
    .prompt("总结这次部署的风险。")
    .await?;
 
println!("tokens: {}", outcome.usage.tokens);
println!("answer: {}", outcome.text());

不要从文本或 HTTP Header 反推用量。应从规范结果中读取,让模型适配器保留 各服务商原生的记账细节。

stream

交互界面、长回答,以及需要在模型结束前处理事件的系统应该使用 stream

流式响应不只是一串字符串。它还可能包含可见文本、推理、工具调用、用量、 警告、原始服务商事件与终止错误。必须消费到终止状态,才能保留完整用量和 重试安全信息。

let mut events = agent.stream(input, &run);
 
while let Some(event) = events.next().await {
    handle_event(event?);
}

run

当应用需要掌控执行策略时使用 run。调用方提供 RunContext,其中包含本次 操作真正需要的预算、Capability、截止时间、元数据与 Journal。

let run = RunContext::root(
    BudgetTracker::new(Budget {
        tokens: Some(8_000),
        turns: Some(6),
        tool_calls: Some(4),
        ..Budget::default()
    }),
    capabilities,
);
 
let outcome = agent.run(input, &run).await?;

这是租户预算、请求截止时间、权限收窄、持久化 Journal 与共享运行树身份的 生产级执行边界。