面向 AI 应用架构师:模型分工路由 ➔ Google ADK Harness 编排 ➔ 六重 SRE 自愈 Loop ➔ 三维 AI 安全防线
纯 Prompt 导致大模型虚构数据与逻辑,在金融、医疗、法律场景产生致命后果。
全场景套用顶尖大模型造成高昂 token 成本与高延迟,缺乏场景化智能分工。
缺少与真实数据源硬连接的 Tool Calling 架构,流式解析易发生 Token 丢包。
依靠人工看 Log、修代码;API 限流或坏格式引发全线崩溃,缺乏自愈闭环。
多轮对话 & ADK 工具调用
高并发量化风险拟合
机构级深度定性研报
sequenceDiagram
actor User as 用户 (提出业务问题)
participant ADK as Google ADK Agent Harness
participant Gemini as Gemini 2.5 Flash Model
participant Engine as [ADK Tool] 17-Quarter TTM Engine
User->>ADK: "PATH 过去几年的 P/E 估值区间是多少?"
ADK->>Gemini: 注入 Prompt 与 Registered Tools
Gemini->>ADK: 决策触发 Tool Call: get_stock_historical_valuations('PATH')
ADK->>Engine: 运行数据精炼引擎,提取 17 季度真实 TTM 财务硬数据
Engine-->>ADK: 返回 P/E 18.5x, P/B 3.2x, FCF Yield 6.51%
ADK->>Gemini: 将真实 Tool Response 喂回模型
Gemini-->>User: 输出无幻觉、严密的结构化解答
模型包含思考 Token 时调用 chunk.text 会返回空字符串。通过 Candidate 级降级解析实现 100% 零丢包打字:
for chunk in response_stream:
txt = chunk.text
if not txt and chunk.candidates:
bits = [p.text for c in chunk.candidates if c.content
for p in c.content.parts if getattr(p, "text", None)]
txt = "".join(bits)
if txt: yield txt
契约模型定义在 models.py,通过 get_prompt_instruction() 动态导出,提示词与代码天然同步更新:
class StockAnalysisContract(BaseModel):
symbol: str
sentiment: str # Bullish/Bearish/Neutral
key_supports: List[float] = []
executive_summary: str
@classmethod
def get_prompt_instruction(cls) -> str:
return f"MUST strictly adhere to: {cls.model_json_schema()}"
Pydantic 拦截 Gemini 输出,校验失败自动组装 Reflection Error Prompt 重新推理(最多 3 次)。
以 FMP 为主力。失败跳闸 (CLOSED ➔ OPEN),自动无缝降级至 yfinance/缓存。
GCP Cloud Scheduler 定时扫描 Firestore 缺失缓存,周报派发前自动补齐 Prewarm。
扫描近 30 天选股信号与 T+5 实际价格,计算盈亏比并输出 OPTIMAL/CRITICAL 评级。
FastAPI 崩溃拦截,直连 GCP Error Reporting,并在 Discord 发送带有代码修正建议的 Alert。
10% 流量 Canary 探针验证,若健康检查失败,秒级自动将流量切回上一 stable 版本。
sequenceDiagram
autonumber
participant CS as GCP Cloud Scheduler
participant BE as Cloud Run Backend
participant CB as Circuit Breaker
participant FMP as FMP Primary API
participant Gemini as Gemini 3.5 Flash (Reflection)
participant Disc as Discord SRE Webhook
CS->>BE: 1. Trigger Pre-Market Canary / Audit Job
BE->>CB: 2. Request Market Data
alt FMP Healthy
CB->>FMP: 3a. Query Quotes & Technicals
FMP-->>CB: 4a. Return FMP Data
else FMP Fails 3x (Tripped to OPEN)
CB-->>BE: 3b. Fallback to yfinance / Firestore Cache
end
BE->>Gemini: 5. AI Inference with Pydantic Contract Prompt
alt Gemini Validation Error
Gemini-->>BE: 6a. Invalid JSON / Missing Key
BE->>Gemini: 6b. Retry with Reflection Error Prompt (Max 3x)
end
Gemini-->>BE: 7. Validated Structured Report
BE-->>Disc: 8. Dispatch Delivery & SRE Status Alerts
SensitiveDataFilter 注册全局日志拦截器。| 性能/技术指标 | 测量数值 / 表现 | 技术实现与说明 |
|---|---|---|
| 首字呈现时间 (TTFT) | < 450 ms | 通过 HTTP/2 + FastAPI StreamingResponse 实现流式打字。 |
| 无服务器冷启动 (Cold Start) | < 1.8 s | 基于 Python 3.11-slim 与 Client 延迟加载优化。 |
| 基础固定月租开销 | $0 / 月 | 基于 Cloud Run 的 Scale to Zero 机制,按真实 API 流量计费。 |
| 全套自愈元测试结果 | 7/7 单元测试 100% 通过 | 验证了 AI Reflection、CircuitBreaker、Canary 探针与错误反哺。 |
| 数据去幻觉准确率 | 100% 贴合历史财报 | 强制通过 ADK Function Tool 实时计算 17 季度真实 TTM。 |