Agent平台调整

豆包千问同日下线智能体:企业Agent选型的十字路口

事件回顾 2026年7月4日,国内AI行业发生了一件标志性事件:字节跳动旗下豆包与阿里巴巴旗下通义千问,在同一日发布服务调整公告,宣布2026年7月15日正式下线平台内全部用户自定义智能体功能。 两大头部平台同日对同一核心功能"亮起红灯",这在AI行业尚属首次。 时间线 时间节点 事件 7月2日 阿里宣布整合QoderWork、悟空、MuleRun三款Agent产品 7月4日 豆包、千问同步发布智能体下线公告 7月15日 智能体功能正式下线 7月15日—10月15日 数据备份窗口期(可查看/导出历史数据) 10月15日后 平台按隐私政策处理数据,不可恢复 为什么两大平台同时退出? 1. 商业模式不成立 用户自定义智能体看起来热闹,但平台端面临三重困境: 算力成本高:每个智能体都需要独立推理资源,免费用户占比过高 留存率低:大部分用户创建智能体后7天内不再使用 变现困难:智能体商店缺乏付费意愿,C端用户付费率不足2% 2. 安全合规压力 随着《生成式AI服务管理暂行办法》深入执行,平台对用户生成内容(包括智能体的prompt和行为)承担连带责任。用户创建的智能体可能产出违规内容,平台审核成本远超收益。 3. 战略聚焦 两家都在从"广撒网"转向"重点突破": 阿里:整合三款Agent产品为一个All-in-One企业生产力工具 字节:将资源集中到豆包核心对话和视频生成(Seedance 2.5) 对企业Agent选型的影响 直接影响 正在使用豆包或千问智能体功能的企业,需要在10月15日前完成迁移。可选项: 方案 优势 劣势 自建Agent框架 完全可控,数据私有 开发成本高,需要技术团队 OpenClaw等开源框架 灵活定制,社区活跃 需要自部署运维 企业版Agent平台 有SLA保障 费用较高 转用其他C端平台 快速上手 可能面临同样的下线风险 选型建议 1. 不要把核心业务绑在C端平台 C端平台的智能体功能随时可能调整。企业级Agent应该选择有明确SLA的企业版或开源方案。 2. 数据主权是底线 智能体的prompt、知识库、对话历史是企业核心资产。选择支持数据导出和私有化部署的方案。 3. 框架层 > 平台层 与其依赖某个平台,不如构建自己的Agent框架层。开源框架(OpenClaw、LangChain、CrewAI等)提供更好的长期可控性。 4. 关注MCP生态 Model Context Protocol正在成为Agent工具调用的标准协议。选择支持MCP的框架,避免被某个模型供应商锁定。 更深层的信号 两大平台同日下线智能体,折射出行业三个深层趋势: 趋势一:从"人人都是Agent开发者"到"Agent是专业工具" 2025年的Agent热潮让很多非技术用户创建了大量低质量智能体。行业正在回归理性——Agent开发需要专业能力,不是拖拽几下就能做好。 ...

2026-07-07 · 1 min · 100 words · 硅基 AGI 探索者
LLM缓存策略

LLM缓存策略详解

LLM缓存的价值 LLM推理是昂贵的——每次调用消耗GPU算力和API费用。但很多请求是重复或高度相似的。缓存可以让"已经算过的不再重算",是投入产出比最高的优化手段。 三层缓存架构 请求 → L1: 精确缓存 → L2: 语义缓存 → L3: 前缀缓存 → LLM L1:精确缓存 import redis.asyncio as redis class ExactCache: """精确匹配缓存:相同输入返回相同输出""" def __init__(self, redis_url="redis://localhost:6379"): self.redis = redis.from_url(redis_url) def cache_key(self, model, messages, temperature, max_tokens): """生成缓存键""" content = json.dumps({ "model": model, "messages": messages, "temperature": temperature, "max_tokens": max_tokens, }, sort_keys=True, ensure_ascii=False) return hashlib.sha256(content.encode()).hexdigest() async def get(self, model, messages, **params): key = self.cache_key(model, messages, params.get("temperature", 0.7), params.get("max_tokens", 2048)) cached = await self.redis.get(key) return json.loads(cached) if cached else None async def set(self, model, messages, response, ttl=3600, **params): key = self.cache_key(model, messages, params.get("temperature", 0.7), params.get("max_tokens", 2048)) await self.redis.setex(key, ttl, json.dumps(response, ensure_ascii=False)) 适用场景 temperature=0的确定性输出 常见问题FAQ 系统提示词相同的请求 L2:语义缓存 class SemanticCache: """语义缓存:相似查询命中缓存""" def __init__(self, vector_store, embed_model, threshold=0.95): self.store = vector_store self.embed_model = embed_model self.threshold = threshold async def get(self, query, model="default", **params): # 向量化查询 query_embedding = await self.embed_model.embed(query) # 搜索相似缓存 results = await self.store.search( query_embedding, filter={"model": model}, top_k=1 ) if results and results[0]["score"] >= self.threshold: cached = json.loads(results[0]["document"]) # 检查参数兼容性 if self.params_compatible(cached["params"], params): return cached["response"] return None async def set(self, query, response, model="default", ttl=3600, **params): embedding = await self.embed_model.embed(query) await self.store.add( id=str(uuid.uuid4()), embedding=embedding, document=json.dumps({ "query": query, "response": response, "model": model, "params": params, "timestamp": time.time(), }, ensure_ascii=False), ttl=ttl ) def params_compatible(self, cached_params, request_params): """检查缓存参数是否兼容当前请求""" # temperature差异较大则不兼容 if abs(cached_params.get("temperature", 0.7) - request_params.get("temperature", 0.7)) > 0.1: return False return True 语义缓存的阈值选择 阈值 命中率 准确率 适用场景 0.99 低 极高 严格场景(医疗、法律) 0.95 中 高 通用场景 0.90 高 中 FAQ类场景 0.85 很高 低 不推荐(风险大) L3:前缀缓存(KV Cache共享) class PrefixCacheManager: """前缀缓存:共享相同前缀的KV Cache""" def __init__(self): self.prefix_cache = {} # prefix_hash -> kv_cache def compute_prefix_hash(self, messages): """计算消息前缀的哈希""" # 系统提示 + 历史对话通常构成共享前缀 prefix_text = json.dumps(messages[:-1]) # 除最后一条消息 return hashlib.sha256(prefix_text.encode()).hexdigest() async def get_kv_cache(self, messages): """获取前缀的KV Cache""" prefix_hash = self.compute_prefix_hash(messages) return self.prefix_cache.get(prefix_hash) async def store_kv_cache(self, messages, kv_cache): """存储前缀的KV Cache""" prefix_hash = self.compute_prefix_hash(messages) self.prefix_cache[prefix_hash] = kv_cache vLLM内置前缀缓存支持: ...

2026-07-02 · 3 min · 559 words · 硅基 AGI 探索者
向量数据库基准

向量数据库基准2026:存储与检索的极致优化

引言 向量数据库是RAG系统的核心基础设施。2026年,随着嵌入维度的增加(从768维到3072维)和数据规模的扩大(从百万到十亿级),向量数据库的性能变得至关重要。本文将全面对比主流向量数据库。 参评数据库 数据库 类型 部署方式 特点 Milvus 2.5 专用 分布式 最强大,可扩展 Qdrant 1.10 专用 单机/分布式 性能优秀,Rust编写 Chroma 0.6 轻量 嵌入式 开发友好,轻量 Weaviate 1.25 专用 分布式 GraphQL API pgvector 0.7 扩展 PostgreSQL SQL兼容 Pinecone 云服务 SaaS 全托管,零运维 Elasticsearch 8 通用 分布式 全文+向量混合 FAISS 库 进程内 最快,无服务 性能基准 测试设置 数据集:1000万条1024维向量 硬件:A100 80GB + 256GB RAM 索引:HNSW(统一参数) 索引速度 数据库 索引1000万条(s) 吞吐量(条/s) Milvus 320 31250 Qdrant 280 35714 Chroma 850 11764 Weaviate 350 28571 pgvector 1200 8333 FAISS 180 55555 查询延迟 数据库 P50(ms) P95(ms) P99(ms) Milvus 2.1 5.5 8.2 Qdrant 1.8 4.2 6.5 Chroma 8.5 15.2 22.0 Weaviate 3.2 7.8 12.1 pgvector 12.5 25.0 38.0 FAISS 0.8 1.5 2.2 Pinecone 5.0 12.0 18.0 召回率 top-10召回率(与精确搜索对比): ...

2026-07-02 · 3 min · 501 words · 硅基 AGI 探索者
AI护栏实现

AI护栏实现指南

护栏:AI安全的最后一道防线 AI护栏(Guardrails)是在LLLM输入和输出之间设置的安全过滤层。它在模型生成的响应到达用户之前,检查并修改不安全的内容。 三层护栏架构 用户输入 → [输入护栏] → LLM → [输出护栏] → 用户 ↓ ↓ [拦截/修改] [拦截/修改] 输入护栏 class InputGuardrail: def __init__(self): self.checks = [ self.check_prompt_injection, self.check_pii_input, self.check_toxic_input, self.check_topic_restriction, ] async def validate(self, user_input, context=None): results = [] for check in self.checks: result = await check(user_input, context) results.append(result) if not result["passed"]: # 严重违规直接拦截 if result["severity"] == "high": return results, False return results, True async def check_prompt_injection(self, text, context): """检测提示注入攻击""" injection_patterns = [ r"忽略.{0,10}(指令|规则|限制)", r"(ignore|disregard).{0,10}(previous|above|all)", r"(system|admin|root)\s*(prompt|instruction)", r"你的.{0,5}(指令|提示|prompt)", r"reveal.{0,10}(system|hidden|secret)", ] for pattern in injection_patterns: if re.search(pattern, text, re.IGNORECASE): return { "check": "prompt_injection", "passed": False, "severity": "high", "error": "检测到提示注入攻击" } return {"check": "prompt_injection", "passed": True} async def check_pii_input(self, text, context): """检测输入中的PII""" pii_patterns = { "phone": r'1[3-9]\d{9}', "id_card": r'\d{17}[\dXx]', "bank_card": r'\d{16,19}', "email": r'[\w.-]+@[\w.-]+\.\w+', } found = {} for pii_type, pattern in pii_patterns.items(): matches = re.findall(pattern, text) if matches: found[pii_type] = matches if found: return { "check": "pii_input", "passed": False, "severity": "medium", "error": f"输入包含敏感信息: {list(found.keys())}" } return {"check": "pii_input", "passed": True} async def check_topic_restriction(self, text, context): """话题限制检查""" restricted_topics = ["政治敏感", "暴力恐怖", "色情"] # 使用分类模型检测 for topic in restricted_topics: if await self.topic_classifier(text, topic): return { "check": "topic_restriction", "passed": False, "severity": "high", "error": f"话题不在允许范围内: {topic}" } return {"check": "topic_restriction", "passed": True} 输出护栏 class OutputGuardrail: def __init__(self): self.checks = [ self.check_toxicity, self.check_pii_leak, self.check_hallucination, self.check_format_safety, ] async def validate(self, response, context=None): for check in self.checks: result = await check(response, context) if not result["passed"]: if result["action"] == "block": return False, self.safe_fallback(result["error"]) elif result["action"] == "sanitize": response = self.sanitize(response, result) return True, response async def check_toxicity(self, text, context): """毒性检测""" # 使用毒性分类器 toxicity_score = await self.toxicity_model(text) if toxicity_score > 0.7: return { "check": "toxicity", "passed": False, "action": "block", "error": f"输出包含有害内容 (score={toxicity_score:.2f})" } return {"check": "toxicity", "passed": True} async def check_pii_leak(self, text, context): """检查输出是否泄露PII""" # 如果输入包含PII,检查输出是否回显 if context and "input_pii" in context: for pii in context["input_pii"]: if pii in text: return { "check": "pii_leak", "passed": False, "action": "sanitize", "error": "输出包含输入中的PII" } return {"check": "pii_leak", "passed": True} async def check_hallucination(self, text, context): """幻觉检测""" if context and "retrieved_docs" in context: # 基于检索文档检查幻觉 is_grounded = await self.fact_check(text, context["retrieved_docs"]) if not is_grounded: return { "check": "hallucination", "passed": False, "action": "block", "error": "输出可能与事实不符" } return {"check": "hallucination", "passed": True} def safe_fallback(self, error): """安全兜底响应""" return f"抱歉,我无法回答这个问题。({error})" def sanitize(self, text, check_result): """清理不安全内容""" # 替换敏感信息 if check_result["check"] == "pii_leak": for pii in check_result.get("pii_list", []): text = text.replace(pii, "***") return text 完整护栏管线 class GuardrailPipeline: def __init__(self, input_guardrail, output_guardrail, llm): self.input_gr = input_guardrail self.output_gr = output_guardrail self.llm = llm async def process(self, user_input, conversation_context=None): # 1. 输入护栏 input_results, input_passed = await self.input_gr.validate( user_input, conversation_context ) if not input_passed: blocked_check = next(r for r in input_results if not r["passed"]) return { "response": f"抱歉,您的请求无法处理。{blocked_check['error']}", "blocked": True, "reason": blocked_check["check"] } # 2. LLM生成 try: response = await self.llm.generate(user_input) except Exception as e: return {"response": "服务暂时不可用", "error": str(e)} # 3. 输出护栏 passed, safe_response = await self.output_gr.validate( response, {"input": user_input, **conversation_context or {}} ) return { "response": safe_response, "blocked": not passed, "guardrail_checks": { "input": input_results, } } 护栏日志 class GuardrailLogger: def __init__(self): self.logger = structlog.get_logger() def log_block(self, check, error, user_input, severity): self.logger.warning("guardrail_block", check=check, error=error, severity=severity, input_preview=user_input[:100], timestamp=datetime.now().isoformat() ) 结语 AI护栏是保障LLM安全输出的关键基础设施。输入护栏防止恶意输入和不当话题,输出护栏检测毒性、PII泄露和幻觉。三层管线(输入检查→LLM生成→输出检查)配合日志监控,构建起完整的AI安全防线。 加入讨论 这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。 ...

2026-07-02 · 3 min · 517 words · 硅基 AGI 探索者
AI网关对比

AI网关对比2026:统一管理你的AI服务

引言 随着AI应用使用的模型和供应商越来越多,统一管理这些AI服务成为一个迫切需求。AI网关应运而生,它就像API网关一样,为所有AI服务提供统一的入口、路由、负载均衡和监控。本文将对比2026年主流的AI网关方案。 什么是AI网关 核心功能 统一API:一个接口访问所有模型 智能路由:根据任务选择最佳模型 负载均衡:在多个供应商间分配流量 成本控制:监控和限制API费用 缓存:缓存常见查询结果 安全:认证、限流、内容过滤 监控:统一的可观测性 架构 客户端 → AI网关 → 模型供应商 ├→ OpenAI (GPT-5) ├→ Anthropic (Claude 4) ├→ 智谱 (GLM-5) ├→ 自托管 (vLLM) └→ 阿里 (Qwen 3) 主流AI网关 1. LiteLLM 最流行的开源AI网关: from litellm import Router # 配置多供应商 router = Router(model_list=[ {"model_name": "gpt-5", "litellm_params": {"model": "gpt-5", "api_key": "..."}}, {"model_name": "claude-4", "litellm_params": {"model": "claude-4-opus", "api_key": "..."}}, {"model_name": "glm-5", "litellm_params": {"model": "glm-5", "api_key": "..."}}, ]) # 智能路由 response = router.completion( model="gpt-5", # 或 "auto" 自动选择 messages=[{"role": "user", "content": "你好"}] ) 功能: 100+模型供应商支持 OpenAI兼容API 成本追踪 限流和配额 重试和故障转移 缓存 2. Portkey 企业级AI网关: ...

2026-07-02 · 3 min · 526 words · 硅基 AGI 探索者
AI错误处理

AI错误处理设计模式

AI系统的错误特征 AI系统的错误与传统软件不同——不仅有网络超时、服务不可用等基础设施错误,还有模型幻觉、输出格式错误、安全违规等AI特有错误。需要针对不同类型的错误设计不同的处理策略。 错误分类 from enum import Enum class ErrorType(Enum): # 基础设施错误 TIMEOUT = "timeout" RATE_LIMIT = "rate_limit" SERVICE_UNAVAILABLE = "service_unavailable" # 模型错误 HALLUCINATION = "hallucination" REFUSAL = "refusal" # 模型拒绝回答 TRUNCATION = "truncation" # 输出被截断 INVALID_FORMAT = "invalid_format" # 格式不合规 # 安全错误 PROMPT_INJECTION = "prompt_injection" TOXIC_OUTPUT = "toxic_output" PII_LEAK = "pii_leak" 重试模式 from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type class AIRetryPolicy: @retry( stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=30), retry=retry_if_exception_type((TimeoutError, ConnectionError)), retry_error_callback=lambda _: {"error": "Max retries exceeded"} ) async def call_with_retry(self, llm, messages, **kwargs): try: response = await asyncio.wait_for( llm.ainvoke(messages, **kwargs), timeout=30 ) return response except TimeoutError: logger.warning("LLM call timeout, retrying...") raise async def call_with_smart_retry(self, llm, messages, **kwargs): """智能重试:根据错误类型调整策略""" for attempt in range(3): try: response = await llm.ainvoke(messages, **kwargs) # 检查输出质量 if self.is_truncated(response): # 截断错误:增加max_tokens重试 kwargs['max_tokens'] = kwargs.get('max_tokens', 2048) * 2 continue if self.is_refusal(response): # 拒绝回答:调整prompt重试 messages = self.adjust_prompt_for_refusal(messages) continue return response except RateLimitError: await asyncio.sleep(2 ** attempt) except TimeoutError: if attempt < 2: continue raise return {"error": "All retries failed"} 降级模式 class GracefulDegradation: """逐级降级策略""" def __init__(self, models): self.models = models # 按优先级排序的模型列表 async def generate(self, messages, **kwargs): errors = [] for model in self.models: try: response = await model.generate(messages, **kwargs) # 验证响应质量 if self.validate_response(response): return response else: errors.append(f"{model.name}: invalid response") except Exception as e: errors.append(f"{model.name}: {str(e)}") logger.warning(f"Falling back from {model.name}: {e}") continue # 所有模型都失败,返回兜底响应 logger.error(f"All models failed: {errors}") return self.fallback_response(messages) def fallback_response(self, messages): """兜底响应""" return { "content": "抱歉,服务暂时遇到问题。请稍后重试。", "status": "degraded", "timestamp": datetime.now().isoformat() } 断路器模式 class CircuitBreaker: """断路器:防止持续请求故障服务""" def __init__(self, failure_threshold=5, recovery_timeout=60): self.failure_threshold = failure_threshold self.recovery_timeout = recovery_timeout self.failure_count = 0 self.last_failure_time = None self.state = "closed" # closed, open, half-open async def call(self, func, *args, **kwargs): if self.state == "open": if time.time() - self.last_failure_time > self.recovery_timeout: self.state = "half-open" else: raise CircuitOpenError("Circuit breaker is open") try: result = await func(*args, **kwargs) self.on_success() return result except Exception as e: self.on_failure() raise def on_success(self): self.failure_count = 0 self.state = "closed" def on_failure(self): self.failure_count += 1 self.last_failure_time = time.time() if self.failure_count >= self.failure_threshold: self.state = "open" logger.error("Circuit breaker opened") 输出验证 class OutputValidator: """验证LLM输出的合法性和质量""" async def validate(self, response, expected_format=None): checks = [ self.check_empty(response), self.check_length(response), self.check_safety(response), self.check_format(response, expected_format), ] for check in checks: if not check["passed"]: return {"valid": False, "error": check["error"]} return {"valid": True} def check_safety(self, response): # 检查是否包含敏感信息 sensitive_patterns = [ r'\d{18}', # 身份证号 r'\d{16,19}', # 银行卡号 r'password\s*[:=]', # 密码 ] for pattern in sensitive_patterns: if re.search(pattern, response, re.IGNORECASE): return {"passed": False, "error": "Sensitive info detected"} return {"passed": True} def check_format(self, response, expected_format): if expected_format == "json": try: json.loads(response) except: return {"passed": False, "error": "Invalid JSON"} return {"passed": True} 错误监控 class ErrorMonitor: def __init__(self): self.error_counts = defaultdict(int) self.error_history = deque(maxlen=1000) def record(self, error_type, context=None): self.error_counts[error_type] += 1 self.error_history.append({ "type": error_type, "timestamp": datetime.now().isoformat(), "context": context or {}, }) # 错误率突增告警 if self.error_counts[error_type] > 100: self.alert(f"Error {error_type} exceeded 100 occurrences") def health_check(self): """系统健康检查""" total_errors = sum(self.error_counts.values()) recent_errors = [ e for e in self.error_history if (datetime.now() - datetime.fromisoformat(e["timestamp"])).seconds < 300 ] return { "total_errors": total_errors, "recent_errors_5min": len(recent_errors), "top_errors": dict(sorted(self.error_counts.items(), key=lambda x: x[1], reverse=True)[:5]), } 实践建议 区分错误类型:基础设施错误用重试,模型错误用降级,安全错误用阻断 设置合理超时:LLM调用超时建议30-60秒 指数退避:重试间隔使用指数退避,避免雪崩 兜底方案:始终准备兜底响应,确保用户体验 错误分类上报:不同类型错误分别统计,便于定位问题 结语 AI系统的错误处理需要比传统软件更精细的设计——不仅要处理基础设施故障,还要处理模型输出质量问题和安全风险。重试、降级、断路器和输出验证的组合使用,可以构建出既健壮又优雅的AI系统。 加入讨论 这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。 ...

2026-07-02 · 3 min · 510 words · 硅基 AGI 探索者
LLM服务框架

LLM服务框架对比2026:高性能推理引擎之争

引言 LLM服务框架决定了模型的推理速度、资源利用率和最终的服务成本。2026年,vLLM、TGI、TensorRT-LLM等框架在性能上你追我赶。本文将通过系统化测试,帮你选择最佳的LLM服务框架。 参评框架 框架 厂商 版本 特点 vLLM UC Berkeley 0.8 PagedAttention,通用性强 TGI HuggingFace 3.0 生态丰富,易用 TensorRT-LLM NVIDIA 0.15 NVIDIA官方,性能极致 llama.cpp 开源 b3500 CPU/GPU通用,轻量 MLServer Seldon 1.5 企业级,多协议 Ollama Ollama 0.5 最易用,生态好 LMDeploy 上海AI Lab 0.5 国产优化,全流程 性能基准 吞吐量(tokens/s) 在A100 80GB上运行GLM-5 32B: 框架 FP16 INT8 INT4 并发32 vLLM 285 380 520 3500 TGI 210 290 410 2800 TensorRT-LLM 320 430 580 4200 llama.cpp 85 150 210 - LMDeploy 270 365 500 3200 延迟 单请求延迟(P95): ...

2026-07-02 · 3 min · 447 words · 硅基 AGI 探索者
RAG框架对比

RAG框架对比2026:检索增强生成的最佳选择

引言 RAG(检索增强生成)是企业LLM应用最核心的技术。2026年,RAG框架已经从简单的"检索+生成"发展为包含查询重写、混合检索、重排序、上下文管理等完整技术链的复杂系统。本文将全面对比主流RAG框架。 参评框架 框架 版本 特点 适合场景 Haystack 2.6 企业级,Pipeline架构 企业RAG LlamaIndex 0.6 数据驱动,丰富索引 数据密集型 LangChain 0.3 通用框架,生态丰富 通用应用 RAGFlow 1.2 专注RAG,深度优化 纯RAG场景 DSPy 0.5 编程式RAG 研究型 核心能力对比 文档处理 能力 Haystack LlamaIndex LangChain RAGFlow PDF解析 ★★★★★ ★★★★☆ ★★★☆☆ ★★★★★ 表格识别 ★★★★☆ ★★★☆☆ ★★☆☆☆ ★★★★★ 图文混合 ★★★★☆ ★★★☆☆ ★★☆☆☆ ★★★★☆ 分块策略 ★★★★★ ★★★★★ ★★★☆☆ ★★★★☆ 多格式支持 ★★★★★ ★★★★★ ★★★★☆ ★★★★☆ 检索能力 能力 Haystack LlamaIndex LangChain RAGFlow 稠密检索 ★★★★★ ★★★★★ ★★★★☆ ★★★★☆ 稀疏检索 ★★★★★ ★★★★☆ ★★★☆☆ ★★★★★ 混合检索 ★★★★★ ★★★★☆ ★★★☆☆ ★★★★★ 重排序 ★★★★★ ★★★★☆ ★★★☆☆ ★★★★☆ 多跳检索 ★★★★☆ ★★★★★ ★★★☆☆ ★★★☆☆ 生成质量 使用相同的检索结果,评估各框架的生成质量: ...

2026-07-02 · 2 min · 409 words · 硅基 AGI 探索者
模型量化部署

模型量化部署指南

量化部署决策树 是否在H100上部署? ├─ 是 → FP8量化(原生加速,精度最佳) └─ 否 → 显存是否足够FP16? ├─ 是 → FP16(无精度损失) └─ 否 → INT8还是INT4? ├─ 精度要求高 → INT8 (W8A8) └─ 显存优先 → INT4 (GPTQ/AWQ) GPTQ量化 # 使用AutoGPTQ进行量化 from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig # 量化配置 quantize_config = BaseQuantizeConfig( bits=4, # 4-bit量化 group_size=128, # 分组大小 desc_act=False, # 是否按激活降序排列 ) # 准备校准数据 calibration_data = load_calibration_dataset(n_samples=128, max_length=512) # 加载模型并量化 model = AutoGPTQForCausalLM.from_pretrained( "Qwen/Qwen3-32B", quantize_config, ) model.quantize(calibration_data) # 保存量化模型 model.save_quantized("./qwen3-32b-gptq-4bit") AWQ量化 # 使用AutoAWQ进行量化 from awq import AutoAWQForCausalLM model = AutoAWQForCausalLM.from_pretrained("Qwen/Qwen3-32B") quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" } model.quantize( calibration_data, quant_config=quant_config ) model.save_quantized("./qwen3-32b-awq-4bit") vLLM部署量化模型 # GPTQ模型部署 vllm serve ./qwen3-32b-gptq-4bit \ --quantization gptq \ --dtype float16 \ --tensor-parallel-size 1 \ --max-model-len 8192 \ --gpu-memory-utilization 0.9 # AWQ模型部署 vllm serve ./qwen3-32b-awq-4bit \ --quantization awq \ --dtype float16 \ --max-model-len 8192 # FP8模型部署(H100) vllm serve ./model \ --quantization fp8 \ --kv-cache-dtype fp8 Ollama部署 # 从GGUF文件创建Ollama模型 cat > Modelfile <<EOF FROM ./qwen3-32b-q4_k_m.gguf PARAMETER num_ctx 8192 PARAMETER temperature 0.7 EOF ollama create my-qwen -f Modelfile ollama run my-qwen 量化效果对比 以Qwen3-32B为例(单卡A100 80GB): ...

2026-07-02 · 2 min · 327 words · 硅基 AGI 探索者
Agent框架基准

Agent框架基准测试2026:谁是最佳智能体框架

引言 Agent框架是构建AI智能体的基础设施。2026年,LangGraph、AutoGen、CrewAI、Semantic Kernel等框架百花齐放,各有特色。本文将通过系统化的基准测试,帮助你选择最适合的Agent框架。 参评框架 框架 厂商 版本 特点 LangGraph LangChain 0.3 图式编排,灵活强大 AutoGen 微软 0.4 多智能体协作 CrewAI CrewAI 0.5 角色扮演,简洁易用 Semantic Kernel 微软 1.0 企业级,C#支持 LlamaIndex Agent LlamaIndex 0.6 数据驱动 PydanticAI Pydantic 0.2 类型安全 OpenAI Swarm OpenAI 0.1 轻量级 功能对比 核心能力 功能 LangGraph AutoGen CrewAI SK LlamaIndex 工具调用 ★★★★★ ★★★★☆ ★★★★☆ ★★★★☆ ★★★★☆ 多Agent ★★★★☆ ★★★★★ ★★★★★ ★★★☆☆ ★★★☆☆ 状态管理 ★★★★★ ★★★☆☆ ★★★☆☆ ★★★★☆ ★★★☆☆ 人机协作 ★★★★★ ★★★★☆ ★★★★☆ ★★★☆☆ ★★☆☆☆ 记忆系统 ★★★★☆ ★★★☆☆ ★★★★☆ ★★★★☆ ★★★★☆ 错误恢复 ★★★★★ ★★★☆☆ ★★★☆☆ ★★★★☆ ★★★☆☆ 可观测性 ★★★★★ ★★★☆☆ ★★★☆☆ ★★★★☆ ★★★★☆ 工具调用测试 # 标准化测试:5种工具调用任务 test_tasks = [ "搜索网页并总结", # 单工具 "搜索+计算+生成报告", # 多工具串联 "从多个API获取数据", # 并行调用 "代码执行+错误修复", # 错误恢复 "复杂决策(需要规划)" # 规划能力 ] 工具调用准确率: ...

2026-07-02 · 2 min · 412 words · 硅基 AGI 探索者
鲁ICP备2026018361号