Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

领域特定示例

特定领域的智能体示例。

金融合规智能体

金融交易合规检查智能体。

位置: examples/financial_compliance_agent/

use mofa_sdk::react::ReActAgent;
use mofa_sdk::kernel::Tool;

// 合规检查工具
struct AmlCheckTool;  // 反洗钱检查
struct KycCheckTool;  // 了解你的客户
struct RiskScoreTool; // 风险评分

#[tokio::main]
async fn main() -> Result<()> {
    let agent = ReActAgent::builder()
        .with_llm(LLMClient::from_env()?)
        .with_tools(vec![
            Arc::new(AmlCheckTool::new()?),
            Arc::new(KycCheckTool::new()?),
            Arc::new(RiskScoreTool::new()?),
        ])
        .with_system_prompt(r#"
            你是金融合规专家。检查交易是否符合监管要求。
            遵循以下规则:
            1. 大额交易需要 AML 检查
            2. 新客户需要 KYC 验证
            3. 高风险交易需要人工审核
        "#)
        .build();

    let transaction = json!({
        "amount": 50000.0,
        "currency": "USD",
        "sender": "Alice",
        "receiver": "Bob",
        "type": "wire_transfer"
    });

    let input = AgentInput::from_json(transaction)?;
    let output = agent.execute(input, &ctx).await?;

    println!("合规结果: {}", output.to_text());
    Ok(())
}

检查流程

  1. 金额检查 — 判断是否需要额外审查
  2. AML 检查 — 反洗钱数据库查询
  3. KYC 验证 — 客户身份验证
  4. 风险评估 — 综合风险评分
  5. 决策输出 — 批准/拒绝/人工审核

医疗诊断辅助

医疗诊断辅助智能体。

位置: examples/medical_diagnosis_agent/

use mofa_sdk::react::ReActAgent;

// 医疗知识库工具
struct SymptomCheckerTool;
struct DrugInteractionTool;
struct MedicalGuidelineTool;

#[tokio::main]
async fn main() -> Result<()> {
    let agent = ReActAgent::builder()
        .with_llm(LLMClient::from_env()?)
        .with_tools(vec![
            Arc::new(SymptomCheckerTool::new()?),
            Arc::new(DrugInteractionTool::new()?),
            Arc::new(MedicalGuidelineTool::new()?),
        ])
        .with_system_prompt(r#"
            你是医疗诊断辅助系统。提供诊断建议供医生参考。
            注意:
            1. 不做最终诊断,只提供建议
            2. 提醒患者咨询专业医生
            3. 检查药物相互作用
            4. 遵循临床指南
        "#)
        .build();

    let symptoms = json!({
        "chief_complaint": "头痛和发烧",
        "duration": "3天",
        "severity": "中等",
        "history": ["高血压"]
    });

    let input = AgentInput::from_json(symptoms)?;
    let output = agent.execute(input, &ctx).await?;

    println!("诊断建议: {}", output.to_text());
    Ok(())
}

安全特性

  • 不做最终诊断
  • 药物相互作用检查
  • 临床指南遵循
  • 专业医生转诊建议

秘书智能体

人在回路工作流管理。

位置: examples/secretary_agent/

use mofa_sdk::secretary::{SecretaryCore, DefaultSecretaryBuilder};

#[tokio::main]
async fn main() -> Result<()> {
    let behavior = DefaultSecretaryBuilder::new()
        .with_name("项目秘书")
        .with_llm(llm_provider)
        .with_auto_clarify(true)
        .with_auto_dispatch(false)  // 需要人工批准
        .build();

    let core = SecretaryCore::new(behavior);
    let (handle, _) = core.start(connection).await;

    // 5 阶段工作循环:
    // 1. 接收想法 → 记录 TODO
    // 2. 澄清需求 → 生成项目文档
    // 3. 调度分配 → 调用执行智能体
    // 4. 监控反馈 → 推送关键决策
    // 5. 验收汇报 → 更新 TODO

    Ok(())
}

运行示例

# 金融合规
export OPENAI_API_KEY=sk-xxx
cargo run -p financial_compliance_agent

# 医疗诊断
cargo run -p medical_diagnosis_agent

# 秘书智能体
cargo run -p secretary_agent

可用示例

示例描述
financial_compliance_agent金融合规检查
medical_diagnosis_agent医疗诊断辅助
secretary_agent人在回路秘书

相关链接