领域特定示例
特定领域的智能体示例。
金融合规智能体
金融交易合规检查智能体。
位置: 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(())
}
检查流程
- 金额检查 — 判断是否需要额外审查
- AML 检查 — 反洗钱数据库查询
- KYC 验证 — 客户身份验证
- 风险评估 — 综合风险评分
- 决策输出 — 批准/拒绝/人工审核
医疗诊断辅助
医疗诊断辅助智能体。
位置: 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 | 人在回路秘书 |