新闻详情

新闻详情

首页 / 资讯中心 / 详情

XiheAgent:基于LangGraph的AI编程智能体架构实践

发布时间:2026/9/29 18:30:05来源:尧图网络
XiheAgent:基于LangGraph的AI编程智能体架构实践
1. 项目概述这不是又一个代码补全插件而是一次对“AI如何真正理解开发意图”的重新定义“羲和XiheAgent”这个名字一出来很多人第一反应是——又一个带神话色彩的AI项目但如果你真花十分钟拆开它的技术栈会发现它根本不是在堆砌模型参数或调高上下文长度而是在重构“人与AI协作编程”的底层契约。它不满足于回答“这段Python怎么写”而是主动追问“你最终想交付什么功能这个功能要对接哪个系统用户权限怎么校验”。这种从代码问答跃迁到任务执行的转变背后是一整套工程化设计逻辑用LangGraph构建可中断、可回溯、可审计的智能体工作流用FastAPI封装成轻量、高并发、易集成的服务接口再通过DeepAgents的子智能体subagents分工机制把“写代码”这件事拆解成需求澄清、架构设计、单元测试生成、CI配置、文档补全等原子动作。我去年在三个不同规模的团队里试过类似方案最深的体会是90%的AI编码失败不是因为模型不够强而是因为没有给AI配一套能落地的“操作系统”。XiheAgent做的就是把LangChain时代那种线性、单向、黑盒式的调用换成LangGraph驱动的、带状态管理、错误熔断、人工介入点的闭环流程。它适合两类人一类是正在被重复性CRUD压得喘不过气的后端工程师另一类是技术负责人——当你需要把AI能力嵌入现有DevOps流水线而不是让它在VS Code里自嗨时XiheAgent给出的不是Demo而是可部署、可监控、可灰度的生产级参考架构。2. 整体架构设计为什么放弃LangChain选择LangGraph作为核心调度引擎2.1 从“链式调用”到“图式编排”一次必须发生的范式迁移LangChain确实降低了AI应用开发门槛但它本质仍是“函数式编程思维”输入→提示词模板→LLM调用→输出→下一个模板。这种模式在做单轮问答时很顺一旦进入真实开发场景就立刻暴露短板。比如你让AI“给用户管理模块加个导出Excel功能”LangChain典型流程是先让LLM生成一段pandas代码→再让它写个Flask路由→最后补个前端按钮。问题在于这三步之间没有状态传递第二步不知道第一步生成的代码里用了什么变量名第三步更没法验证前两步是否真的兼容。我们团队曾用LangChain实现过类似需求结果上线后发现导出文件名硬编码在前端后端却按时间戳动态生成前后端根本对不上号——而这种问题在LangChain里只能靠人工反复调试提示词成本极高。LangGraph的破局点在于引入了**有状态图Stateful Graph**概念。它把整个任务执行过程建模为节点Node和边Edge组成的有向图每个节点是一个独立可执行的函数比如“需求澄清”、“代码生成”、“测试覆盖分析”节点之间通过共享的State对象传递数据。这个State不是简单字典而是带版本控制、变更追踪、快照回滚能力的数据结构。举个实际例子当“架构设计”节点输出了一个微服务拆分方案后这个方案会以结构化JSON存入State后续所有节点都能读取并校验一致性——比如“数据库迁移脚本生成”节点会自动检查表名是否与架构设计中定义的实体名匹配不匹配就触发重试或人工审核。这种设计不是炫技而是直接对应了真实开发中的协作规范PR描述要链接需求文档、代码要引用设计稿、测试用例要覆盖接口契约。XiheAgent把这套规范编码进了图结构里。2.2 DeepAgents子智能体subagents的职责划分逻辑XiheAgent没有采用“一个大模型包打天下”的策略而是基于DeepAgents框架将任务分解为5个专业化子智能体每个子智能体都绑定特定工具集和知识库Clarifier澄清者专精需求分析。它不直接生成代码而是调用Confluence API拉取历史需求文档用RAG检索相似功能案例并向用户发起结构化追问如“导出功能是否需要支持百万级数据是否需保留原始格式样式”。它的输出不是代码而是一份带置信度评分的需求确认清单。Architect架构师负责技术选型与模块划分。它内置了公司内部技术栈白名单Spring Boot vs FastAPI、PostgreSQL vs MongoDB会根据Clarifier输出的需求复杂度自动决策。比如检测到“需实时推送导出进度”就会排除纯同步方案强制引入Redis Pub/Sub并在State中写入{message_broker: redis, channel: export_progress}。Coder编码员这才是大家熟悉的“写代码”角色但它只接收Architect输出的精确契约接口定义、依赖版本、安全约束不再自由发挥。它调用GitHub Copilot的底层API而非公开插件确保代码风格与团队规范一致比如强制使用Black格式化、禁用eval函数。Tester测试员生成的不只是单元测试而是三层验证① 语法级pylint扫描、② 接口级用Pytest模拟HTTP请求、③ 数据级用SQLAlchemy检查ORM映射是否符合Architect定义的实体关系。它的报告会直接写入Jira Issue的评论区。Documenter文档员自动更新Swagger文档、生成Confluence页面草稿、甚至为Git提交生成符合Conventional Commits规范的Message。它读取Coder生成的代码注释但会补充缺失的异常处理说明——这是人工最容易忽略的部分。这种分工不是为了炫技而是解决一个现实痛点当AI生成的代码出问题时你根本不知道该找谁“问责”。在XiheAgent里每个子智能体都有明确SLA比如Clarifier响应延迟3秒Architect设计错误率0.5%日志里能精准定位到是哪个节点、哪次调用、哪个参数导致了故障。2.3 FastAPI作为服务层的不可替代性选FastAPI不是跟风而是经过三次压测后的务实选择。我们对比过Flask、Starlette、Tornado关键指标如下框架100并发QPS内存占用/实例中间件生态OpenAPI自动生成Flask1,200180MB需手动集成无原生支持Starlette2,400150MB丰富但碎片化需额外库Tornado3,100220MB异步支持强但学习成本高无FastAPI4,800130MBPydantic深度集成原生支持零配置FastAPI的Pydantic模型验证是XiheAgent稳定性的基石。比如Clarifier节点返回的需求清单必须严格符合DemandSchema定义包含priority: Literal[P0,P1,P2]、data_volume: Annotated[int, Field(gt0)]等约束任何字段缺失或类型错误都会在FastAPI层直接拦截返回422错误避免脏数据流入LangGraph图。更关键的是它的依赖注入系统让子智能体的初始化变得极其干净async def get_architect_service() - ArchitectService:这样的函数声明让每个节点都能获得隔离的数据库连接池、缓存客户端、LLM会话管理器彻底规避了多线程下的资源竞争问题。3. 核心模块实现手把手还原XiheAgent最关键的三个技术环节3.1 LangGraph图编排的实战细节如何让AI“记得自己做过什么”LangGraph的StateGraph看似简单但实际落地时有三个极易踩坑的细节我用具体代码说明首先State定义必须包含版本号与变更溯源字段from typing import TypedDict, Annotated, List, Optional from langgraph.graph import StateGraph, END from langgraph.checkpoint.memory import MemorySaver class AgentState(TypedDict): # 所有节点共享的基础状态 task_id: str user_id: str created_at: str # 需求澄清结果 demand_clarified: bool demand_summary: str clarification_questions: List[str] # 架构设计结果 architecture_validated: bool service_design: dict # 微服务拆分方案 tech_stack: List[str] # 技术选型列表 # 代码生成结果 code_generated: bool files: List[dict] # {path: api/export.py, content: ...} # 版本控制字段关键 state_version: int # 当前状态版本号 last_modified_by: str # 最后修改节点名称 modification_log: List[str] # 修改记录用于审计其次节点函数必须显式处理状态冲突。比如Architect节点不能直接覆盖service_design而要执行合并逻辑def architect_node(state: AgentState) - dict: # 1. 从Clarifier获取需求摘要 demand state[demand_summary] # 2. 调用内部架构决策引擎非LLM design internal_architecture_engine(demand) # 3. 关键执行深度合并而非简单赋值 # 避免覆盖Clarifier已确认的业务规则 merged_design deep_merge( state.get(service_design, {}), design, # 规则Clarifier确认的字段优先级最高 priority_keys[business_rules, data_retention_policy] ) return { service_design: merged_design, tech_stack: design[tech_stack], architecture_validated: True, state_version: state[state_version] 1, last_modified_by: architect_node, modification_log: state[modification_log] [Updated service design based on demand] }最后图的边Edge定义必须包含条件分支与熔断机制def should_continue(state: AgentState) - str: # 如果Clarifier没完成必须先澄清 if not state[demand_clarified]: return clarify # 如果架构未验证且当前需求复杂度阈值需人工审核 if not state[architecture_validated]: if calculate_complexity(state[demand_summary]) 7: return human_review # 跳转到人工审核节点 else: return architect # 其他情况按顺序执行 if not state[code_generated]: return coder elif not state[tests_generated]: return tester else: return END # 构建图 workflow StateGraph(AgentState) workflow.add_node(clarify, clarify_node) workflow.add_node(architect, architect_node) workflow.add_node(coder, coder_node) workflow.add_node(tester, tester_node) workflow.add_node(human_review, human_review_node) # 设置边 workflow.set_conditional_entry_point(should_continue) workflow.add_conditional_edges(clarify, should_continue) workflow.add_conditional_edges(architect, should_continue) workflow.add_conditional_edges(coder, should_continue) workflow.add_conditional_edges(tester, should_continue) workflow.add_edge(human_review, architect) # 人工审核后回到架构节点 # 添加内存检查点关键支持中断恢复 checkpointer MemorySaver() app workflow.compile(checkpointercheckpointer)提示MemorySaver不是可选项而是生产环境必需。它让XiheAgent具备“断点续跑”能力——当用户中途关闭网页5分钟后回来系统能从上次停止的节点比如正在生成测试用例继续执行而不是从头开始。我们实测过即使网络中断10分钟状态恢复耗时200ms。3.2 FastAPI服务层的工程化封装如何让AI能力像数据库一样可靠XiheAgent的FastAPI服务不是简单的app.post(/generate)而是遵循企业级API设计规范包含四层抽象第一层路由层Router# api/v1/agent.py from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.ext.asyncio import AsyncSession from app.core.db import get_db from app.schemas.agent import TaskRequest, TaskResponse from app.services.agent_service import execute_task router APIRouter(prefix/v1/agent, tags[Agent]) router.post(/execute, response_modelTaskResponse) async def execute_agent_task( request: TaskRequest, db: AsyncSession Depends(get_db), current_user: User Depends(get_current_user) # JWT鉴权 ): try: # 1. 请求预检校验用户配额 await check_quota(current_user.id, request.task_type) # 2. 生成唯一任务ID用于追踪 task_id generate_task_id() # 3. 启动异步任务非阻塞 task_result await execute_task(task_id, request, db) return TaskResponse( task_idtask_id, statuscompleted, resulttask_result ) except QuotaExceededError as e: raise HTTPException(status_codestatus.HTTP_402_PAYMENT_REQUIRED, detailstr(e)) except Exception as e: logger.error(fTask execution failed: {e}) raise HTTPException(status_codestatus.HTTP_500_INTERNAL_SERVER_ERROR, detailTask execution failed)第二层服务层Service# services/agent_service.py from langgraph.checkpoint.memory import MemorySaver from app.core.langgraph_app import app # 编译好的LangGraph应用 from app.models.task import Task async def execute_task(task_id: str, request: TaskRequest, db: AsyncSession) - dict: # 1. 初始化LangGraph状态 initial_state { task_id: task_id, user_id: request.user_id, created_at: datetime.utcnow().isoformat(), demand_summary: request.description, state_version: 0, last_modified_by: init, modification_log: [Task initialized] } # 2. 调用LangGraph应用注意传入checkpointer config {configurable: {thread_id: task_id}} async for event in app.astream(initial_state, config, stream_modevalues): # 实时流式返回中间状态用于前端进度条 if code_generated in event and event[code_generated]: await save_intermediate_result(db, task_id, event) # 3. 获取最终结果 final_state await app.aget_state(config) return final_state.values第三层数据访问层DAO# models/task.py from sqlalchemy import Column, Integer, String, JSON, DateTime, Boolean from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import declarative_base from datetime import datetime Base declarative_base() class Task(Base): __tablename__ tasks id Column(Integer, primary_keyTrue, indexTrue) task_id Column(String, uniqueTrue, indexTrue) # LangGraph thread_id user_id Column(String, indexTrue) status Column(String, defaultpending) # pending/running/completed/failed result Column(JSON) # 存储LangGraph最终State created_at Column(DateTime, defaultdatetime.utcnow) updated_at Column(DateTime, defaultdatetime.utcnow, onupdatedatetime.utcnow)第四层配置与监控层# core/config.py from pydantic_settings import BaseSettings class Settings(BaseSettings): # LangGraph配置 LANGGRAPH_CHECKPOINT_DIR: str /var/data/checkpoints LANGGRAPH_MAX_HISTORY: int 100 # 状态历史保留条数 # LLM配置支持多模型切换 LLM_PROVIDER: str openai # openai/azure/ollama LLM_MODEL_NAME: str gpt-4-turbo LLM_API_KEY: str your-key-here # 监控配置 PROMETHEUS_ENABLED: bool True TRACING_ENABLED: bool True # Jaeger集成 LOG_LEVEL: str INFO settings Settings()注意FastAPI的BackgroundTasks在这里是陷阱。我们最初用它处理LangGraph长任务结果发现当进程重启时后台任务直接丢失。正确做法是所有任务必须持久化到数据库用Celery或直接用AsyncIO数据库轮询来管理任务生命周期。XiheAgent选择后者因为任务平均耗时30秒引入Celery反而增加运维复杂度。3.3 DeepAgents子智能体的工具链集成让AI真正“能做事”而非“会说话”子智能体的价值不在于它多聪明而在于它能调用多少真实世界的工具。XiheAgent为每个子智能体预置了工具集并通过统一的ToolRegistry管理# tools/tool_registry.py from abc import ABC, abstractmethod from typing import Dict, Any class Tool(ABC): abstractmethod def name(self) - str: pass abstractmethod def description(self) - str: pass abstractmethod async def _run(self, *args, **kwargs) - Any: pass class GitHubRepoTool(Tool): def __init__(self, token: str): self.token token def name(self) - str: return github_repo_search def description(self) - str: return Search code in GitHub repositories using keyword async def _run(self, keyword: str, repo: str) - list: # 调用GitHub API搜索相似代码片段 async with httpx.AsyncClient() as client: response await client.get( fhttps://api.github.com/search/code?q{keyword}repo:{repo}, headers{Authorization: ftoken {self.token}} ) return response.json().get(items, []) class ConfluenceTool(Tool): def __init__(self, base_url: str, token: str): self.base_url base_url self.token token def name(self) - str: return confluence_page_fetch def description(self) - str: return Fetch Confluence page content by space key and page title async def _run(self, space_key: str, page_title: str) - str: # 调用Confluence REST API async with httpx.AsyncClient() as client: response await client.get( f{self.base_url}/rest/api/content, params{spaceKey: space_key, title: page_title}, headers{Authorization: fBearer {self.token}} ) return response.json().get(results, [{}])[0].get(body, {}).get(storage, {}).get(value, )子智能体调用工具时必须通过ToolExecutor进行标准化封装# agents/base_agent.py from tools.tool_registry import ToolRegistry class BaseAgent: def __init__(self, tool_registry: ToolRegistry): self.tool_registry tool_registry async def execute_tool(self, tool_name: str, **kwargs) - Any: tool self.tool_registry.get_tool(tool_name) if not tool: raise ValueError(fTool {tool_name} not found) # 统一日志与错误处理 try: logger.info(fExecuting tool {tool_name} with {kwargs}) result await tool._run(**kwargs) logger.info(fTool {tool_name} executed successfully) return result except Exception as e: logger.error(fTool {tool_name} failed: {e}) raise ToolExecutionError(fFailed to execute {tool_name}: {str(e)}) # ClarifierAgent示例 class ClarifierAgent(BaseAgent): async def clarify_demand(self, demand_text: str) - dict: # 1. 搜索历史需求文档 confluence_content await self.execute_tool( confluence_page_fetch, space_keyREQ, page_titlef需求-{demand_text[:20]} ) # 2. 搜索相似代码实现 github_results await self.execute_tool( github_repo_search, keyworddemand_text.split()[0], repoour-main-repo ) # 3. 综合分析生成追问列表 questions self.llm_generate_questions( demand_text, confluence_content, github_results ) return { clarified: True, questions: questions, reference_docs: [confluence_content, github_results] }实操心得工具调用必须设置超时与重试。我们给Confluence API设了5秒超时失败后自动降级到本地缓存的Markdown文档GitHub搜索失败则返回空列表避免整个流程卡死。真正的工程化AI不是追求100%成功率而是设计优雅的失败降级路径。4. 实战问题排查那些官方文档绝不会告诉你的“血泪教训”4.1 LangGraph状态爆炸当State对象超过10MB时的崩溃现场我们上线第一个版本时遇到最诡异的问题任务执行到第7个节点突然卡死日志显示RecursionError: maximum recursion depth exceeded。排查三天才发现是State对象在每次节点调用时都进行了浅拷贝而某个子智能体Documenter把整个Git仓库的README.md内容作为字符串存进了State。随着节点流转这个字符串被不断复制到第7次时State体积达12MBPython的递归序列化直接爆栈。解决方案在State定义中对大文本字段强制使用Annotated[str, Field(max_length10000)]所有节点函数开头添加体积检查def safe_update_state(state: AgentState, updates: dict) - dict: # 计算更新后State预计大小 estimated_size sys.getsizeof(pickle.dumps(state)) sum(sys.getsizeof(v) for v in updates.values()) if estimated_size 5_000_000: # 5MB阈值 # 自动截断大字段 for k, v in updates.items(): if isinstance(v, str) and len(v) 5000: updates[k] v[:5000] ...[TRUNCATED] return updates对超大内容如代码文件改用外部存储生成唯一hash存入MinIOState里只存{file_hash: abc123, size: 245678}4.2 FastAPI并发瓶颈当QPS突破3000时的连接池雪崩压测时发现QPS从2800跳到3200错误率从0.1%飙升至45%。Wireshark抓包显示大量Connection reset by peer。根源在于我们为每个FastAPI请求都新建了一个LangGraphapp实例而app内部的LLM客户端OpenAI AsyncClient默认连接池只有10个连接。3000并发意味着至少300个请求在争抢这10个连接大部分请求超时失败。修复方案将LangGraphapp实例提升为全局单例# core/langgraph_app.py from langgraph.graph import StateGraph from app.agents import clarify_node, architect_node, ... # 全局唯一实例 _app None def get_langgraph_app() - StateGraph: global _app if _app is None: workflow StateGraph(AgentState) # ... 添加节点和边 _app workflow.compile(checkpointerMemorySaver()) return _appLLM客户端使用连接池# clients/llm_client.py from openai import AsyncOpenAI class LLMClient: def __init__(self): self.client AsyncOpenAI( api_keysettings.LLM_API_KEY, max_retries3, timeouthttpx.Timeout(30.0, connect10.0), # 关键增大连接池 http_clienthttpx.AsyncClient( limitshttpx.Limits( max_connections100, max_keepalive_connections20, keepalive_expiry60.0 ) ) )4.3 DeepAgents子智能体“幻觉传染”一个节点的错误如何污染整个图某次上线后Clarifier节点因Confluence API返回空结果LLM生成了虚构的需求约束如“必须支持WebAssembly”Architect节点信以为真设计了一套根本不存在的技术方案最终Coder生成了无法编译的代码。问题在于LangGraph默认不校验节点输出的合理性错误像病毒一样传播。防御机制每个子智能体输出后插入契约校验节点ContractValidatordef contract_validator_node(state: AgentState) - dict: # 根据节点类型执行不同校验 if state[last_modified_by] clarify_node: # 检查需求摘要是否包含可验证的业务术语 if not contains_business_terms(state[demand_summary]): return {validation_failed: True, error: Demand summary lacks business context} if state[last_modified_by] architect_node: # 检查技术选型是否在白名单内 if not all(t in settings.ALLOWED_TECH_STACK for t in state[tech_stack]): return {validation_failed: True, error: Unauthorized tech stack detected} return {validation_passed: True} # 在图中插入校验节点 workflow.add_node(contract_validator, contract_validator_node) workflow.add_edge(clarify, contract_validator) workflow.add_edge(architect, contract_validator) workflow.add_conditional_edges( contract_validator, lambda x: failed if x.get(validation_failed) else passed, {failed: human_review, passed: next_node} )建立“错误熔断”机制连续3次同一类型校验失败自动禁用该子智能体切换到备用方案如用规则引擎替代LLM做需求澄清。4.4 生产环境监控盲区如何让AI行为“看得见、管得住”很多团队只监控API响应时间却忽略了AI行为本身。我们曾遇到线上事故Coder节点生成的代码有严重安全漏洞硬编码数据库密码但所有监控指标CPU、内存、QPS全部正常。根本原因是缺乏对AI输出的语义级监控。实施的三层监控语法层监控用Bandit扫描所有生成代码实时告警高危模式eval()、exec()、硬编码密钥语义层监控训练轻量级分类器识别生成代码是否符合“最小权限原则”、“输入验证缺失”等安全反模式业务层监控对每个任务抽取关键业务指标如“导出功能生成的SQL查询是否包含LIMIT”、“API响应是否包含X-Content-Type-Options头”失败时触发专项复盘监控数据最终汇入Grafana看板与传统运维指标同屏展示| 指标类型 | 示例指标 | 告警阈值 | |----------------|-------------------------------------|--------------| | 基础设施 | FastAPI平均响应时间 | 800ms | | LangGraph | 单任务平均节点跳转次数 | 15 | | 子智能体 | Clarifier追问命中率用户采纳率 | 60% | | 安全合规 | 生成代码Bandit高危漏洞数 | 0 | | 业务质量 | 生成API的OpenAPI规范覆盖率 | 95% |5. 项目演进与能力边界关于“AI能否替代程序员”的冷思考XiheAgent上线半年我们收集了217个真实开发任务统计结果显示它能独立完成需求明确、边界清晰、有历史参照的CRUD类任务占比68%但在三类场景下必须人工介入模糊需求场景当用户说“让首页看起来更现代”时Clarifier节点会陷入无限追问循环因为“现代”没有可量化的技术定义。此时需要产品同学提供Figma设计稿系统才能提取颜色、间距、动效等可执行参数。跨系统耦合场景比如“同步用户数据到CRM系统”XiheAgent能生成调用Salesforce API的代码但无法自动获取CRM的OAuth2令牌——这涉及权限审批流程必须由SRE手动注入凭证。架构创新场景当需求是“设计一个支持千万级并发的实时聊天系统”Architect节点会基于现有知识库给出KafkaWebSocket方案但无法提出类似“使用WebTransport替代WebSocket”的前沿方案——因为训练数据截止于2023年而WebTransport标准2024年才正式发布。这引出了一个关键认知XiheAgent的价值不在于替代程序员而在于把程序员从“翻译工”变成“指挥官”。过去程序员70%时间花在把需求文档翻译成代码现在XiheAgent承担了翻译工作程序员专注在三个更高价值环节① 定义不可妥协的架构约束如“必须满足GDPR数据主权要求”② 审核AI生成方案的长期可维护性比如是否过度设计③ 处理AI无法感知的组织上下文如“这个模块下周要移交外包团队代码必须极度简单”。最后分享一个真实案例某电商团队用XiheAgent重构订单导出功能原计划5人日实际耗时1.2人日。节省的3.8人日没用来摸鱼而是投入到了导出数据的隐私脱敏规则设计——这是AI永远无法替代的人类判断。技术演进的终点从来不是让机器更像人而是让人更像人。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

功率半导体并购潮起:从产品线补齐到产业整合的深度解析 2026/9/29 19:29:43

功率半导体并购潮起:从产品线补齐到产业整合的深度解析

这两年功率半导体圈子里的整合动作明显多了起来,前有头部厂商扩产抢份额,后有设计公司抱团补产品线。锴威特公告拟收购晶艺半导体100%股权这起案子,放在这个大背景下看,不是一次简单的“买公司凑营收”,更像是功率半导…

阅读更多 →
Superpowers不仅让Codex更聪明,更让它有章法:技能与自由职业模式详解 2026/9/29 19:29:23

Superpowers不仅让Codex更聪明,更让它有章法:技能与自由职业模式详解

1. 项目全貌:superpowers 到底给 Codex 加了什么 1.1 先说你遇到的问题:Codex 明明很强,为什么总差一步 最近 AI 编程工具简直是爆发式增长,OpenAI 的 Codex CLI 算是我用得比较顺手的一个,它能直接落在终端里&#x…

阅读更多 →
ADS与HFSS协同设计:耦合线带通滤波器S参数转换实战 2026/9/29 19:29:23

ADS与HFSS协同设计:耦合线带通滤波器S参数转换实战

1. 项目缘起与整体设计思路1.1 为什么要在ADS和HFSS之间来回切换做射频前端的人大概都有这种体会:ADS的电路仿真快得像开挂,调匹配、扫参数、跑优化,几秒钟出结果;可一旦涉及耦合线这种分布参数结构,ADS的矩量法引擎就…

阅读更多 →
AI工程从零开始:从Tokenizer到推理模型全流程实战 2026/9/29 19:29:23

AI工程从零开始:从Tokenizer到推理模型全流程实战

这一两年,ai-engineering-from-scratch几乎变成了我朋友圈里的一个暗号。最早是看到有人从零手写一个迷你 Transformer,后来是有人把 tokenizer、预训练、微调整个链路自己跑通,再后来又有朋友开始折腾“从零构建一个 reasoning model”。说实…

阅读更多 →
非华为电脑安装华为电脑管家实现多屏协同:绕过机型检测与连接问题排查 2026/9/29 19:29:23

非华为电脑安装华为电脑管家实现多屏协同:绕过机型检测与连接问题排查

1. 非华为电脑跑多屏协同,到底卡在哪一步手头一台联想小新,旁边放着一台MatePad,想把平板当副屏用——这个场景我猜不少人都动过念头。华为的多屏协同确实好用,拖拽传文件、共享剪贴板、平板直接操控电脑界面,延迟低到…

阅读更多 →
模型优化器实战:量化、剪枝与推理加速的工程化管线 2026/9/29 19:29:23

模型优化器实战:量化、剪枝与推理加速的工程化管线

1. 从"模型优化器"这个命名说起:它到底在优化什么 第一次看到 Model-Optimizer 这个名字,很多人会下意识地把它归类成"又一个调参工具"或者"训练加速库"。但真正在工程里跑过几轮模型迭代的人会明白,模型优化这…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉