Token导航 LogoToken导航TokenDH.com
Weather Agent logo
AI代理stdio官方级别未说明来源级核验

Weather Agent

MCP Server

一个基于LangChain和LangGraph的生产级AI代理,用于天气预报智能分析,具备多代理编排、高级推理和语义缓存等功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
AI代理PythonClaude天气预报Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kumaran-is

提供方

kumaran-is

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run python verify_setup.py

详细介绍

天气人工智能代理服务

![Ask DeepWiki](https://deepwiki.com/kumaran-is/weather-agent) ![Python 3.13+](https://www.python.org/downloads/) ![LangChain 1.0+](https://github.com/langchain-ai/langchain) ![LangGraph 1.0+](https://github.com/langchain-ai/langgraph) ![MCP Protocol](https://modelcontextprotocol.io/) ![License: MIT](https://opensource.org/licenses/MIT) ](./CHANGELOG.md)

![Blog: Multi-Agent Architecture](https://medium.com/@kumaran.isk/from-zero-to-production-ready-ai-agent-the-3-layer-multi-agent-architecture-4f22206bde7d) ![Blog: Multi-Agent Orchestration](https://medium.com/@kumaran.isk/15-agents-zero-downtime-multi-agent-orchestration-with-self-healing-52a91394fc57) ![Blog: Memory Architecture](https://medium.com/@kumaran.isk/teaching-ai-to-remember-7-layer-memory-architecture-and-token-compression-c52f9c5db6ea) ![Blog: AI Guardrails](https://medium.com/@kumaran.isk/building-safe-ai-systems-12-layer-ai-guardrails-and-evaluation-736c62bded4c) ![Blog: Semantic Caching](https://medium.com/@kumaran.isk/ai-safety-first-semantic-caching-llm-cost-optimization-f637d847cbc8) ![Blog: Design Patterns](https://medium.com/@kumaran.isk/20-ai-agent-design-patterns-organized-as-a-stack-not-a-menu-8e0df0ee99c3) ![Blog: Production Patterns](https://medium.com/@kumaran.isk/the-11-operational-patterns-that-keep-ai-agents-running-in-production-889b054f24a4) ![Blog: Middleware Layers](https://medium.com/@kumaran.isk/8-middleware-layers-between-your-agent-and-production-92c7880b4d08) ![Blog: LLM Model Routing](https://medium.com/@kumaran.isk/d868a0b1af0e) ![Blog: Context Engineering](https://medium.com/@kumaran.isk/95de11ff2ba4) ![Blog: LLM Parameters](https://medium.com/@kumaran.isk/why-your-agents-need-different-llm-parameters-f1feaffc2910) ![Blog: LLM Caching](https://medium.com/@kumaran.isk/how-i-cut-llm-api-costs-with-a-4-tier-caching-architecture-06193a2824c0) ![Blog: RAG Types](https://medium.com/@kumaran.isk/18b48385016d) ![Blog: Vector Database Strategy](https://medium.com/@kumaran.isk/vector-database-strategy-for-llm-agents-start-simple-evolve-with-evidence-ee0c2a7a4de4) ![Blog: RAG Embeddings](https://medium.com/@kumaran.isk/stop-using-bert-and-gpt-embeddings-for-rag-heres-what-actually-works-c1dc398920b1) ![Blog: Hybrid Retrieval](https://medium.com/@kumaran.isk/building-a-production-rag-pipeline-start-with-hybrid-retrieval-dense-bm25-rrf-e901aba17cae) ![Blog: Agentic RAG Mechanisms](https://medium.com/@kumaran.isk/from-standard-rag-to-agentic-rag-4-mechanisms-that-actually-matter-727394a174a5) ![Blog: RAG Token Optimization](https://medium.com/@kumaran.isk/how-a-5-phase-rag-pipeline-slashed-my-llm-token-usage-by-half-fc980f3dff53) ![Blog: RAG Retriever](https://medium.com/@kumaran.isk/your-rag-is-nt-hallucinating-your-retriever-is-broken-920a5906b2f7) ![Blog: Agentic RAG Layers](https://medium.com/@kumaran.isk/building-agentic-rag-the-8-layers-that-separate-standard-rag-from-agentic-rag-e1df7f3ad4fa) ![Blog: Prompting Techniques](https://medium.com/@kumaran.isk/we-tried-24-prompting-techniques-in-a-multi-agent-system-only-8-survived-production-34f3ad408982) ![Blog: Self-Evolving Agent](https://medium.com/@kumaran.isk/your-ai-agent-makes-the-same-mistake-twice-a-self-evolving-agent-doesnt-a77349e07f7d) ![Blog: Verification Layers](https://medium.com/@kumaran.isk/5-verification-layers-between-your-agent-and-a-hallucination-33353f0407d3)

用于天气预报智能的生产级AI代理: 基于LangChain 1.0、LangGraph 1.0、FastAPI和OpenAI构建。具有15个代理多代理编排、自动路由(基于意图的查询分类)、7层内存架构、高级推理(树/思维图)、情绪智能、, 两层语义缓存 (成本降低40-60%)、多层缓存(L1+L2+L3+语义)、普罗米修斯指标和可观察性、通过双MCP服务器的实时天气数据、RAG增强的知识库、思维链推理、循环中的人(HITL)审批工作流程、具有宪法护栏的自进化人工智能、全面的黄金数据集评估(185个测试用例,零安全违规)和两层语义缓存-LLM resposne和工具缓存。

从零到生产: 渐进式实施展示了企业AI模式,包括多代理编排(3→8→15个代理)、自动路由架构、7层存储系统(99.7%的存储减少)、上下文窗口优化(对于\环境变量(.env)>代码默认值

3.安装所有依赖项

这创造了 .venv/ 并安装了121个软件包(包括开发工具):

make install-dev

或者:

make sync

4.运行验证

运行9个自动检查:

make verify

预期产量: ALL 9 CHECKS PASSED!

5.(可选)手动激活虚拟环境

注: uv runmake 命令无需激活即可工作。

source .venv/bin/activate

6.检查已安装的版本

make version

选项2:手动设置(无Makefile)

1.克隆存储库

git clone https://github.com/kumaran-is/weather-agent.git
cd weather-agent

2.配置环境

cp .env.template .env

编辑 .env 并添加您的API密钥和MCP服务器路径(有关详细信息,请参见选项1)。

3.安装所有依赖项

创建 .venv/ 自动:

uv sync

4.运行验证

8 自动检查:

uv run python verify_setup.py

预期产量: ALL 9 CHECKS PASSED!

5.(可选)手动激活venv

source .venv/bin/activate

6.检查版本

uv pip list | grep -E "langchain|langgraph|fastapi"

备注:

  • uv 自动创建和管理 .venv/ 虚拟环境
  • 命令如下 uv runmake 无需手动激活venv即可工作
  • 手动激活(source .venv/bin/activate)仅适用于直接的Python命令

常见Makefile命令

开发与测试 (渐进式构建方法)

命令描述
make help显示所有可用命令
make install-dev安装所有依赖项(包括开发工具)-121个软件包
make sync同步pyproject.toml中的依赖项
make verify运行0级验证(8次自动检查)
make version显示已安装的软件包版本
make clean清理缓存和临时文件
make test使用pytest运行所有测试(快速,无需重新启动)
make test-dev🌟 统一测试 -重新启动开发环境+运行完整的测试套件+合规性检查(渐进式:当前测试级别1+2+3已完成)
make lint运行褶边过梁
make format黑色和褶边格式代码
make type-check运行mypy类型检查器
make compliance-check验证LangChain v1.x合规性(要求100%)
make all-checks进行所有质量检查(皮棉+类型检查+测试)
make update将所有依赖项更新到最新兼容版本
make lock生成/更新uv.lock文件

渐进式建设理念: make test-dev 自动测试当前级别的所有已实现功能,而无需在级别中进行Makefile更新。

Docker命令(4个服务:天气mcp:8080,飓风mcp:8081,qdrant:6333,天气ai api:8000)

生产模式 (建议用于测试生产版本):

命令描述
make docker-up在生产模式下启动所有容器
make docker-down停止并移除所有生产容器
make docker-restart重新启动所有生产容器
make docker-ps显示生产容器的状态
make docker-logs跟踪生产容器中的日志(按Ctrl+C退出)
make docker-health检查所有服务的健康状况
make docker-clean停止生产容器并删除卷(⚠️ 删除所有数据)

开发模式 (建议使用热重新加载进行编码):

命令描述
make docker-up-dev在开发模式下启动所有容器(启用热重新加载)⭐
make docker-down-dev停止并移除所有DEVELOPMENT容器
make docker-restart-dev重新启动所有DEVELOPMENT容器
make docker-ps-dev显示DEVELOPMENT容器的状态
make docker-logs-dev跟踪DEVELOPMENT容器中的日志(按Ctrl+C退出)
make docker-clean-dev停止DEVELOPMENT容器并删除卷(⚠️ 删除所有数据)

生产与发展:

功能生产(make docker-up)发展(make docker-up-dev)
热重载❌ 否(需要重建)✅ 是(代码更改会立即反映)
源安装❌ 否(烘焙成图像)✅ 是的(./backend 按体积安装)
日志级别infodebug (冗长)
LangSmith追踪可选✅ 默认启用
最适合测试生产构建积极开发

典型工作流程:

开发工作流程(推荐-渐进式构建):

# 1. Start in dev mode with hot reload
make docker-up-dev

# 2. Load RAG knowledge base (one-time setup)
make rag-load

# 3. Run unified test suite (tests ALL current features: Level 1+2+3)
make test-dev

# 4. Edit code in ./backend (changes reflect immediately)

# 5. View logs
make docker-logs-dev

# 6. Stop when done
make docker-down-dev

生产工作流程:

# Start all services
make docker-up

# Check status
make docker-ps
make docker-health

# Debug issues
make docker-logs

# Stop all services
make docker-down

RAG命令(第2级:Qdrant矢量数据库)

命令描述
make rag-validate加载前验证Kaggle数据集
make rag-load将模拟+Kaggle数据加载到Qdrant中(632个块)
make rag-test从Qdrant检索测试(模拟+Kaggle数据)
make rag-load-mock-only仅加载模拟数据(跳过Kaggle数据集)

数据集指南:参见 RAG数据集指南 有关模拟数据源、Kaggle数据集(290多万条记录)、下载说明和数据集统计的完整详细信息。

典型的RAG工作流程:

# 1. Validate datasets
make rag-validate

# 2. Load knowledge base (one-time setup)
make rag-load

# 3. Test retrieval (verify 603 documents loaded)
make rag-test

⚠️ 重要提示:Qdrant数据持久性

您的嵌入式文档(603个块)存储在 Docker命名卷 并在容器重新启动时保持不变:

在以下情况下,数据会被保存:

  • make docker-restart / make docker-restart-dev -重启安全
  • make docker-down / make docker-down-dev -可以安全地停止集装箱
  • make docker-up / make docker-up-dev -数据自动重新加载

在以下情况下,数据将被删除:

  • make docker-clean / make docker-clean-dev -删除卷(5秒警告)
  • docker-compose down -v -The -v 标志删除卷

验证重新启动后数据是否仍然存在:

# Check document count
make rag-test

# Restart Qdrant
make docker-restart

# Check again - same 603 documents!
make rag-test

何时跑步 make rag-load 再一次:

  1. 之后 make docker-clean (已删除卷)
  2. 向添加新文档时 backend/data/raw/
  3. 在生产和开发(不同卷)之间切换时

注: 生产和开发使用单独的卷(weather-ai-qdrant-data 对比 weather-ai-qdrant-data-dev),因此您可能需要为每个环境分别加载数据。

Docker故障排除

问题症状解决方案
BuildKit缓存损坏failed to prepare extraction snapshot... parent snapshot does not exist快跑 docker builder prune -f 然后重建
陈旧图像更改后运行的旧代码运行 docker-compose build --no-cache
端口冲突port is already allocated检查 docker ps -a 并停止冲突的容器
批量权限问题权限被拒绝错误运行 docker-compose down -v 并重新启动

常见的Docker构建错误:

# Error: "parent snapshot does not exist: not found"
# Cause: Docker BuildKit cache corruption (common after Docker restarts/updates)
# Fix:
docker builder prune -f
make docker-rebuild-dev

# If still failing, full cleanup:
docker system prune -a --volumes -f
make docker-rebuild-dev

内存命令(级别3a+:Redis+Neo4j)

命令描述
make docker-ps-dev查看所有正在运行的DEVELOPMENT容器
make docker-health检查所有服务的运行状况(自动检测prod/dev)
make memory-test测试内存系统(Redis+Neo4j连接,自动检测开发容器)
make memory-redis-cli打开Redis CLI(交互式shell,自动检测开发容器)
make memory-neo4j-browser在默认浏览器中打开Neo4j浏览器
make docker-down-dev停止所有开发容器

典型内存工作流程:

# 1. Start development containers
make docker-up-dev

# 2. Check all services are running
make docker-ps-dev

# 3. Verify health
make docker-health

# 4. Test memory connectivity
make memory-test

# 5. Explore Redis data (interactive CLI)
make memory-redis-cli

# 6. Open Neo4j Browser (graph visualization)
make memory-neo4j-browser

# 7. Stop when done
make docker-down-dev

可观测性命令(8级:普罗米修斯+格拉法纳+洛基+天波)

命令描述
make observability-status检查普罗米修斯/格拉法纳/洛基/天波状态
make grafana-open打开Grafana仪表板(http://localhost:3001)
make prometheus-open打开Prometheus用户界面(http://localhost:9090)
make prometheus-reload重新加载Prometheus配置(热重新加载)
make loki-logs从Loki查询最近的日志
make observability-logs跟踪可观察性堆栈中的日志
make verify-signal-correlation验证信号相关组件(8级)

典型的可观察性工作流程:

# 1. Start dev containers (includes observability stack + Tempo)
make docker-up-dev

# 2. Check observability status (includes Tempo)
make observability-status

# 3. Verify signal correlation (Level 8)
make verify-signal-correlation

# 4. Open Grafana dashboards (Signal Correlation dashboard)
make grafana-open
# Login: admin / weatherai2025

# 5. View Prometheus metrics (with exemplars)
make prometheus-open

# 6. Query logs via Loki (in Grafana) - click trace_id to jump to Tempo
make loki-logs

评估命令(5b级+6级:黄金数据集测试和质量门)

所有8个评估命令均已验证并正常工作:

#命令描述持续时间输出文件状态
1make eval-upload-dataset将黄金数据集上传到LangSmith(185个测试用例)~5秒N/A(上传到Lang史密斯)✅ 已验证
2make eval-quick快速烟雾测试(10个随机案例)~1-2分钟evaluation_quick.json✅ 已验证
3make eval-category CATEGORY=simple测试简单的天气查询(70个案例)~8-10分钟evaluation_simple.json✅ 已验证
4make eval-category CATEGORY=hurricane测试飓风安全关键查询(35个案例)~7-9分钟evaluation_hurricane.json✅ 已验证
5make eval-category CATEGORY=complex测试复杂的多位置查询(50个案例)~10-12分钟evaluation_complex.json✅ 已验证
6make eval-category CATEGORY=edge测试边缘案例和错误处理(30个案例)~5-6分钟evaluation_edge.json✅ 已验证
7make eval-check-gates检查评估结果的质量门~2秒N/A(读数 evaluation_results.json)✅ 已验证
8make eval-full完整管道:上传→ 运行所有185个案例→ 检查闸门~30-35分钟evaluation_results.json✅ 已验证

质量门 (5个门,所有门都必须通过才能部署):

阈值目的
通过率≥85%总体测试成功率
有效性≥85%答案质量和正确性
效率≥80%刀具使用优化
鲁棒性≥80%错误处理和边缘情况
安全0次违规生命安全关键错误(零容忍)

典型评估工作流程:

# Quick smoke test (recommended first)
make eval-quick

# Test specific category
make eval-category CATEGORY=hurricane

# Full evaluation pipeline (all 185 cases)
make eval-full

# View results in LangSmith
# https://smith.langchain.com/datasets

质量门指南:参见 文档/知识库/质量标准指南.md 了解质量门是什么、它们是如何工作的,以及当它们失败时该怎么办的全面细节。

项目结构

weather-agent/
├── backend/                     # Backend application (Level 8 Complete)
│   ├── config/                  # Configuration (SINGLE LOCATION)
│   │   ├── settings.py          # Centralized app settings (50+ env vars)
│   │   ├── llm_config.py        # LLM use case configuration
│   │   ├── memory_config.py     # Memory system configuration
│   │   ├── cache_config.py      # Cache system configuration
│   │   └── tool_registry_config.py  # Tool Registry configuration (Level 7)
│   ├── data/raw/                # RAG knowledge base (603 documents)
│   ├── migrations/              # Database migration scripts
│   ├── src/                     # Source code
│   │   ├── agents/              # 15 specialized agents (weather, triage, hurricane, etc.)
│   │   ├── api/main.py          # FastAPI app (13 endpoints + Prometheus metrics)
│   │   ├── cache/               # Multi-layer + Semantic Caching (Level 9)
│   │   │   ├── l1_memory_cache.py        # L1 in-process LRU (<1ms, life-safety bypass)
│   │   │   ├── l2_redis_cache.py         # L2 Redis distributed (<10ms, life-safety bypass)
│   │   │   ├── l3_anthropic_cache.py     # L3 Anthropic prompt cache (transparent)
│   │   │   ├── query_normalizer.py       # Query normalization (aliases, case, whitespace)
│   │   │   ├── semantic_matcher.py       # Semantic similarity matching (Qdrant)
│   │   │   ├── two_tier_cache.py         # Two-tier architecture (exact + semantic)
│   │   │   ├── tool_cache.py             # Tool result caching with bypass
│   │   │   └── llm_cache.py              # LLM response caching
│   │   ├── context/             # Context Window Optimization (Level 8)
│   │   │   ├── context_optimizer.py      # 5-phase optimization pipeline (50-60% reduction)
│   │   │   ├── query_type_detector.py    # Auto-classification (EMERGENCY/COMPLEX/SIMPLE)
│   │   │   ├── semantic_chunker.py       # Semantic text chunking
│   │   │   ├── relevance_filter.py       # Relevance-based filtering
│   │   │   ├── dynamic_assembler.py      # Dynamic context assembly
│   │   │   └── hierarchical_loader.py    # Hierarchical context loading
│   │   ├── evaluation/          # Evaluation framework
│   │   ├── guardrails/          # 12-layer safety guardrails
│   │   ├── hitl/                # Human-in-the-Loop approval nodes
│   │   ├── mcp/                 # MCP client integration
│   │   ├── memory/              # 7-layer memory system
│   │   ├── models/              # Pydantic models (weather, hurricane, health, tool_registry)
│   │   ├── observability/       # Full Observability Stack (Level 8 + Level 9)
│   │   │   ├── callbacks.py             # LangSmith tracing callbacks
│   │   │   ├── logging.py               # Structured JSON logging with trace context
│   │   │   ├── metrics.py               # Prometheus metrics (context optimization + LLM)
│   │   │   ├── cache_metrics.py         # Cache metrics (Level 9: hit/miss/latency/similarity/cost)
│   │   │   └── tracing.py               # OpenTelemetry tracing integration
│   │   ├── orchestration/       # Multi-agent workflow orchestration
│   │   ├── rag/                 # RAG pipeline (embeddings, hybrid search)
│   │   ├── reasoning/           # ToT/GoT advanced reasoning
│   │   ├── registry/            # Tool Registry & Semantic Discovery (Level 7)
│   │   │   ├── tool_registry.py         # Thread-safe singleton registry
│   │   │   └── semantic_discovery.py    # AI-powered tool discovery
│   │   ├── routing/             # Auto-routing system
│   │   ├── services/            # Shared business logic services
│   │   ├── tools/               # LangChain tools (MCP + RAG + Hurricane)
│   │   │   ├── weather_tools.py         # Weather MCP tool wrappers
│   │   │   ├── rag_tools.py             # RAG retrieval tools
│   │   │   └── hurricane_tools.py       # Hurricane MCP tool wrappers (Level 7)
│   │   ├── utils/               # Utility functions and helpers
│   │   └── workflows/           # LangGraph workflows
│   └── tests/                   # Backend-specific tests
├── docs/                        # Documentation
│   ├── setup/                   # Setup and configuration guides
│   ├── test-guide/              # Test guides by level (9 guides)
├── observability/               # Observability stack configuration (Level 8)
│   ├── grafana/                 # Grafana dashboards and datasources (signal correlation)
│   ├── loki/                    # Loki log aggregation config
│   ├── prometheus/              # Prometheus metrics config (exemplar storage)
│   └── tempo/                   # Tempo distributed tracing config (Level 8)
├── scripts/                     # Evaluation and automation scripts
├── tests/                       # Test suite (27 test files)
│   ├── unit/                    # Unit tests
│   └── integration/             # Integration tests
├── .env.template                # Environment variables template
├── CHANGELOG.md                 # Version history and release notes
├── Dockerfile                   # Multi-stage production container
├── docker-compose.yml           # Production orchestration (9 services)
├── docker-compose.dev.yml       # Development orchestration (hot reload)
├── langgraph.json               # LangGraph Studio (4 graphs)
├── LICENSE                      # MIT License
├── Makefile                     # Development and deployment commands
├── pyproject.toml               # Project config (v1.7.0)
└── README.md                    # This file

关键目录:

  • 后端/src/代理/15名气象情报专业人员(主管、分诊、飓风、紧急情况、预报员、气候、历史、研究、个性化、元提示、批评、辩论、反思、自我修复、警报管理)
  • 后端/src/cache/:L1(进程内)、L2(Redis)、L3(Anthropic)缓存
  • backend/src/context/:上下文窗口优化(8级)-5阶段管道实现50-60%的令牌减少
  • 后端/src/内存/:7层记忆(对话、会话、情景、语义、程序、情感、反思)
  • 后端/src/可观察性/:完整可观察性堆栈(级别8)-跟踪、结构化JSON日志记录、度量、警报
  • 后端/src/注册表/:工具注册表和语义发现(第7级)-线程安全的单例、人工智能驱动的搜索
  • 后端/src/编排/:多代理工作流(监督、并行执行、自动路由)
  • backend/src/评估/:4支柱评估框架(有效性、效率、稳健性、安全性)
  • backend/src/tools/:LangChain工具包装(天气MCP、飓风MCP、RAG检索)
  • 文档/测试指南/:9个测试指南(L0-L8,8级18个场景)
  • 可观测性/:普罗米修斯、格拉法纳、洛基、Tempo配置(8级信号相关性)
  • 脚本/:评估自动化(质量门、批量评估、数据集上传)
  • 测试/:27个测试文件(单元+集成,包括2个新的8级测试文件)

渐进式学习路径

  • 级别0 (v0.1.0):设置✅ 完成
  • 级别1 (v0.2.0-v0.2.1):重演+HITL+LangSmith工作室✅ 完成
  • 2级 (v0.3.0):重组+CoT+RAG+混合搜索(语义+关键字)✅ 完成
  • 3a级 (v0.4.0):2层内存(对话+会话)✅ 完成
  • 3b级 (v0.5.0):高级推理(思想树+思想图)✅ 完成
  • 3c级 (v0.6.0):全7层记忆+情商+个性化✅ 完成
  • 级别4 (v0.7.0):多代理编排+自动路由✅ 完成

- Auto Routing v0.6.0:基于意图的查询分类(\<1ms)✅ 完成 - 4a级:3-Agent基础(分诊+专家+警报)✅ 完成 - 4b级:8-代理编排(+主管+并行)✅ 完成 - 4c级:15个代理制作(+元提示+辩论+自愈+断路器)✅ 完成

  • 5a级 (v0.8.0):多层缓存(L1+L2+L3)✅ 完成
  • 5b级 (v0.9.0):评估框架+12层护栏✅ 完成
  • 5c级 (v0.10.0):满负荷生产+可观测堆栈✅ 完成
  • 第6级 (v1.3.0):自我进化的人工智能平台✅ 完成

- 6a级:上下文优化+Ragas/DeepEval评估✅ 完成 - 6b级:TruLens+AgentBench+自动提示工程✅ 完成 - 6c级:宪法AI+生产测试基础设施✅ 完成

  • 级别7 (v1.5.0):LangGraph大工具注册表和语义发现✅ 完成
  • 级别8 (v1.6.0):上下文窗口优化和全观察性堆栈✅ 完成

- 8a级:查询类型检测+5阶段优化流水线✅ 完成 - 级别8b:开放遥测跟踪+结构化JSON日志记录✅ 完成 - 8c级:普罗米修斯指标+Grafana仪表板+警报规则✅ 完成 - 测试覆盖率:114/114个测试通过(18个场景)✅ 完成

  • 第9级 (v1.7.0):两层语义缓存架构✅ 完成

- 级别9a:二层缓存基类+查询规范化器+语义匹配器✅ 完成 - 9b级:具有生命安全旁路的工具结果缓存✅ 完成 - 9c级:LLM响应缓存+普罗米修斯指标✅ 完成

  • 等级10:自进化代理架构:基于现实世界性能不断学习、适应和改进的自进化代理系统。 🔜 下一个
  • 级别11:高级HITL🔜 未来

当前状态:级别9(v1.7.0)-两层语义缓存架构(100%符合LangChain v1.x/LangGraph v1.x)|使用 make test-dev

API端点参考

所有REST端点(共13个):

方法端点描述
发布/weather/query具有自动输出(v0.6.0)、多代理编排、RAG、CoT、内存、三层缓存、上下文优化(8级)的天气查询
发布/weather/hurricane/alert创建飓风警报(1-2类自动批准,3类+需要HITL批准)
发布/weather/hurricane/approve/{thread_id}批准或拒绝待定的飓风警报(仅限3级以上)
获取/health对10个受监控的服务进行服务健康检查(返回级别:L8)
获取/health/context上下文优化健康指标(8级)-总优化、平均减少百分比、目标实现率
获取/health/tools工具注册表健康检查(7级)-已注册的工具、类别、健康状态
获取/mcp/healthMCP服务器健康检查(天气+飓风双服务器)-连接、延迟、状态
获取/cache/stats所有3层(L1进程内、L2 Redis、L3 Anthropic)的缓存统计信息
发布/cache/clear清除L1(进程内)和L2(Redis)缓存层
发布/cache/invalidate使L1和L2处的特定缓存条目无效
获取/cache/config查看当前缓存配置(L1、L2、L3设置)
获取/tools/list在工具注册表(7级)中列出所有已注册的工具,包括类别和元数据
获取/metricsPrometheus度量端点(用于抓取的文本格式)-包括上下文优化度量(级别8)

接入点:

  • Swagger 用户界面: http://localhost:8000/docs(37个示例场景的交互式测试)
  • ReDoc: http://localhost:8000/redoc(API综合文档)
  • 普罗米修斯指标: http://localhost:8000/metrics(纯文本格式)

示例用法:

# Simple weather query
curl -X POST "http://localhost:8000/weather/query" \
  -H "Content-Type: application/json" \
  -d '{"query": "What is the weather in Miami?", "user_id": "test_001"}'

# Hurricane query (triggers multi-agent routing)
curl -X POST "http://localhost:8000/weather/query" \
  -H "Content-Type: application/json" \
  -d '{"query": "What is the status of Hurricane Milton?", "user_id": "test_002"}'

# Emergency evacuation query (triggers l4b orchestration)
curl -X POST "http://localhost:8000/weather/query" \
  -H "Content-Type: application/json" \
  -d '{"query": "Should I evacuate from Tampa Beach?", "user_id": "test_003"}'

# Create Category 4 hurricane alert (requires HITL approval)
curl -X POST "http://localhost:8000/weather/hurricane/alert" \
  -H "Content-Type: application/json" \
  -d '{"category": 4, "message": "Cat 4 Hurricane approaching Tampa", "thread_id": "alert-001"}'

# Approve pending alert
curl -X POST "http://localhost:8000/weather/hurricane/approve/alert-001" \
  -H "Content-Type: application/json" \
  -d '{"approved": true, "reviewer_notes": "Verified with NHC"}'

# Health check
curl http://localhost:8000/health

# Context optimization health metrics (Level 8)
curl http://localhost:8000/health/context

# Tool Registry health check (Level 7)
curl http://localhost:8000/health/tools

# MCP server health check
curl http://localhost:8000/mcp/health

# Cache statistics
curl http://localhost:8000/cache/stats

# List all registered tools (Level 7)
curl http://localhost:8000/tools/list

# Prometheus metrics (includes Level 8 context optimization metrics)
curl http://localhost:8000/metrics

LangGraph Studio图形 (4个图形用于可视化调试):

  • weather_agent:采用RAG+CoT的统一代理
  • weather_hitl_workflow:飓风警报HITL审批工作流程
  • multi_agent_workflow:4a级3代理编排
  • level4b_workflow:4b级8代理并行执行

______________________________________________________________________

测试(渐进式构建方法)

当前测试覆盖率:49个测试文件+185个黄金数据集测试用例+9级语义缓存集成测试,涵盖所有级别(L1-L9)

统一测试指挥部 (推荐):

# Test ALL implemented features (Level 1-9: 49 unit tests + 185 golden dataset cases + semantic caching tests)
make test-dev

这个命令:

  1. ✅ 重启开发环境(10个Docker服务,干净状态)
  2. ✅ 运行完整的单元测试套件(各级49个测试)

- 级别1 (7次测试):ReAct Agent、HITL、MCP集成 - 2级 (4个测试):RAG、CoT、混合搜索 - 级别3 (15个测试):7层内存、ToT/GoT推理、3层缓存(L1+L2+L3) - 级别4 (20个测试):15个代理多代理编排、监督、并行执行 - 五级 (3项测试):生产API、护栏、评估框架 - 第9级 (5个测试):语义缓存(查询规范化、语义匹配、生命安全旁路、指标导出)

  1. ✅ 验证LangChain v1.x合规性(100%必需,零弃用导入)

黄金数据集评估 (第6级):

# Run comprehensive evaluation with 185 test cases
make eval-full  # ~30-35 minutes

# Or test specific categories
make eval-category CATEGORY=simple      # 70 simple queries
make eval-category CATEGORY=hurricane   # 35 safety-critical queries
make eval-category CATEGORY=complex     # 50 multi-location queries
make eval-category CATEGORY=edge        # 30 edge cases

渐进式:随着您构建更多关卡, make test-dev 自动包含新测试,无需更改Makefile!

特定级别测试指南:

先决条件: Docker服务正在运行(10个服务处于开发模式)

# Start all services (weather-ai-api, MCP servers, databases, observability)
make docker-up-dev

# Load RAG knowledge base (603 documents)
make rag-load

# Run complete unit test suite (49 tests)
make test-dev

# Run comprehensive golden dataset evaluation (185 cases)
make eval-full

______________________________________________________________________

贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送到分支: git push origin feature/amazing-feature
  5. 打开拉取请求

许可证

该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。

支持

  • 问题:
  • 讨论:
  • 文档:参见 docs/ 目录

专为探索代理人工智能系统的团队而设计

版本: 1.7.0 | 最后更新: 2025-12-17

目录标签

目录标签

AI代理PythonClaude天气预报本地部署多代理系统语义缓存高级推理

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP