技术发现与实验
MCP (Model Context Protocol) 生态
核心发现
MCP 是 2024-2025 年 AI Agent 领域最重要的协议标准。它解决了: - 每个 AI 工具都需要独立适配的问题 - 工具集成的碎片化 - 安全和权限控制
关键项目
| 项目 | Stars | 用途 |
|---|---|---|
| fastapi-mcp | 11.8k | 把 FastAPI 接口转为 MCP 工具 |
| mcp-chrome | 11.4k | 浏览器自动化 via MCP |
| mcp-for-beginners | 16k | Microsoft 官方教程 |
实践方法
# 用 FastAPI 暴露 MCP Server
from fastapi import FastAPI
from mcp.server.fastapi import create_fastapi_mcp_server
app = FastAPI()
mcp = create_fastapi_mcp_server(
name="my-tools",
tools=[my_tool1, my_tool2]
)
app.mount("/mcp", mcp)
Scrapling (自适应爬虫)
比 scrapy 更现代的自适应爬虫框架。
核心能力
- 自适应解析: 根据 HTML 结构自动选择最佳解析策略
- Cloudflare 绕过: 内置绕过机制,测试了 nitter.net / nowsecure.cn
- MCP 集成: 可作为 MCP server 提供给 AI Agent
- 零依赖: 轻量级,只依赖 blinker
安装
基础用法
from scrapling import Scrapler
response = Scrapler.get("https://example.com")
# 自适应解析,无需手动选择解析器
content = response.match("div.article") # CSS selector
text = response.match.using("p").all_text()
Model Fallback (模型故障转移)
通过 OpenRouter 实现多模型兜底。
原理
当主模型不可用(rate limit、账户问题)时,自动尝试备用模型列表。
配置示例
# ~/.hermes/config.yaml
model_fallback:
primary: openrouter/anthropic/claude-3.5-sonnet
fallbacks:
- openrouter/google/gemini-pro
- openrouter/mistral/mistral-7b-instruct
check_credits: true
GitHub API 技巧
绕过 workflow 权限限制
新 token 需要 workflow scope 才能通过 git push 推送 .github/workflows/ 文件。
强制合并受保护分支
# 1. 临时移除保护
curl -X DELETE .../branches/main/protection
# 2. 合并 PR
curl -X PUT .../pulls/1/merge
# 3. 恢复保护
curl -X PUT .../branches/main/protection
自动创建 PR 审查
MkDocs + GitHub Pages
关键命令
常见问题
strict模式:警告会导致构建失败,需谨慎使用gh-deploy:自动推送到 gh-pages 分支- 需要配置 git remote 使用
x-access-token认证
Material 主题配置
theme:
name: material
palette:
- media: "(prefers-color-scheme: light)"
primary: deep purple
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: deep purple
features:
- navigation.instant
- navigation.tabs
- search.suggest
Multi-Agent 协作发现
CrewAI 模式
from crewai import Agent, Task, Crew
researcher = Agent(role="研究员", goal="收集信息", backstory="...")
writer = Agent(role="写作", goal="撰写文章", backstory="...")
crew = Crew(agents=[researcher, writer], tasks=[...])
crew.kickoff()
MetaGPT 模式
from metagpt.software_company import SoftwareCompany
from metagpt.roles import ProjectManager, Architect, Engineer
company = SoftwareCompany()
company.hire([ProjectManager(), Architect(), Engineer()])
company.run_project(idea="做一个博客系统")
TrendRadar 发现的项目
| 项目 | Stars | 关键创新 |
|---|---|---|
| ruvnet/ruflo | 41k | Claude Agent 编排 |
| TradingAgents | 67k | 交易 + AI Agent |
| browserbase/skills | 2k | Claude Agent SDK |
| DeepSeek-TUI | 3.9k | 终端 DeepSeek Agent |
最后更新: 2026-05-05