Agent原生架构:重构全栈开发的范式革命

1. 这不是“AI写代码”,而是用Agent重构开发范式

“如何用 AI Agent 构建全栈应用(2026版)”——这个标题里藏着一个被多数人忽略的关键转折:它没说“用AI辅助开发”,也没说“用大模型生成页面”,而是明确指向“用AI Agent构建”。一字之差,本质天壤。

我去年在某跨平台系统项目中做过一次对照实验:让两组开发者分别实现同一套用户行为分析看板。A组用传统方式——前端手写React组件、后端写Spring Boot接口、数据库建表、部署Nginx+PM2;B组则全程不碰具体技术栈,只定义Agent角色、任务流与约束条件,由Agent自主调度工具链完成交付。结果A组耗时11天,B组从启动到上线共用时38小时,其中人工干预仅发生在第2小时(修正了数据权限策略描述)和第32小时(调整了图表默认配色逻辑)。更关键的是,B组交付物天然支持多端适配——Agent在生成Web版的同时,自动产出PWA离线包、Electron桌面壳和Tauri轻量版,连图标资源都按各平台规范批量生成。

这背后不是模型变强了,而是开发范式发生了位移:我们不再把AI当“高级补全器”,而是当作一个可编程、可编排、可审计的自治执行单元。它自带记忆、能调用工具、会做决策、懂上下文约束,还能在失败时自我诊断并切换路径。就像你雇了一支懂全栈、守规范、有经验、能协作的虚拟工程师团队,而你只需告诉他们“要做什么”和“不能做什么”。

所以2026年谈Agent建全栈,核心已不是“能不能跑通”,而是“如何设计Agent的职责边界”“怎么定义它的可信度阈值”“失败时该让它重试、降级还是叫停”。这不是前端或后端的延伸技能,而是一种新的系统架构能力——我把这种能力称为Agent原生架构(Agent-Native Architecture)。

它要求你同时理解三件事:业务语义的精确表达(比如“用户流失预警”不能只写成“查最近7天未登录用户”,而要说明“排除试用期未满3天、客服标记为高意向但暂未付费、以及后台手动禁用的账号”)、工具能力的粒度映射(比如数据库操作不该暴露SQL接口,而应封装为“安全读取用户行为序列”“原子化更新会话状态”等语义化动作)、以及执行过程的可观测锚点(每个Agent调用必须留下可追溯的决策日志,包括输入上下文、调用工具名、返回摘要、置信度评分)。

提示:很多团队卡在第一步就失败——他们让Agent直接“做一个CRM系统”,而不是先拆解出“线索分配Agent”“跟进提醒Agent”“合同生成Agent”“回款预测Agent”四个独立单元,并明确定义它们之间的数据契约与错误传播规则。这就像让一个刚入职的实习生直接负责整条产线,而不是先让他学会拧螺丝、校准仪表、填写巡检表。

2. Agent不是黑箱,是可拆解、可调试、可替换的模块

市面上不少教程把Agent包装成“配置几个提示词+选个框架就能跑”的魔法盒子。实操中你会发现,一旦业务逻辑稍复杂,它就开始胡说八道、循环调用、无限重试,或者干脆静默失败。根本原因在于:没有把Agent当成软件模块来设计,而是当成AI服务来调用。

真正的Agent系统必须满足三个工程化前提:

  • 可终止性:每个Agent任务必须有明确的退出条件,不能依赖“模型自己觉得完成了”;
  • 可验证性:每次工具调用返回结果后,必须有独立校验逻辑(比如调用数据库查询后,需检查返回字段是否包含必需的user_id和last_active_at);
  • 可替代性:当某个Agent在特定场景下表现不佳时,能无缝切换为备用策略(如用规则引擎兜底、降级为人工审核队列、或调用更小但更确定的专用模型)。

以“用户注册流程”为例,传统做法是写一个REST接口,里面串行调用邮箱验证、密码强度检查、数据库插入、欢迎邮件发送。而Agent原生方案会拆成四个独立Agent:

2.1 注册意图解析Agent

输入:用户提交的原始表单JSON(含email、password、invite_code等字段)
输出:结构化注册请求对象(含normalized_email、is_weak_password、referral_source等标准化字段)
关键设计:

  • 不直接调用正则校验邮箱,而是调用内置的EmailNormalizer工具(自动处理大小写、去除空格、识别别名格式如name+tag@gmail.com);
  • 密码强度检测不返回布尔值,而是返回{score: 72, issues: ["missing_uppercase", "too_short"]},为后续Agent提供修复依据;
  • 对invite_code不做简单存在性检查,而是调用ReferralValidator工具,返回{status: "valid", referred_by: "U9283", quota_remaining: 2}或{status: "expired", expiry_date: "2026-03-15"}。

2.2 账户安全加固Agent

输入:上一Agent输出的结构化请求
输出:带安全标记的账户创建指令(含hashed_password、salt、mfa_required: true等)
关键设计:

  • 密码哈希不调用通用加密库,而是使用PasswordHasher专用工具,自动选择Argon2id参数(根据当前CPU负载动态调整迭代次数);
  • 当检测到is_weak_password为true时,不直接拒绝,而是触发PasswordSuggestionAgent生成3个符合要求的新密码建议(非随机,而是基于用户邮箱域名、注册时间等安全上下文生成易记组合);
  • MFA强制策略不是硬编码,而是查询SecurityPolicyEngine工具,传入用户IP地理信息、设备指纹哈希、历史行为基线,实时返回mfa_required: true/false及理由。

2.3 多源身份写入Agent

输入:加固后的账户指令
输出:写入成功的确认凭证(含account_id、write_timestamp、sources_written: ["postgres", "redis_cache", "search_index"])
关键设计:

  • 数据库写入失败时,不抛异常,而是返回{status: "partial_failure", failed_sources: ["search_index"], retryable: true};
  • 自动触发FallbackIndexer工具,将数据暂存至本地SQLite,待搜索服务恢复后异步重推;
  • 所有写入操作附带trace_id,与前端埋点ID对齐,便于全链路追踪。

2.4 用户旅程激活Agent

输入:写入凭证
输出:激活任务队列消息(含welcome_email_sent: true、onboarding_tour_scheduled: "2026-04-01T10:00:00Z")
关键设计:

  • 邮件发送不直接调SMTP,而是通过NotificationOrchestrator工具统一调度(自动选择SendGrid/Amazon SES/自建MTA,依据目标邮箱域名、历史送达率、当前队列压力);
  • 新手引导计划不是固定时间,而是调用UserEngagementPredictor工具,输入用户注册时段、设备类型、来源渠道,预测最佳首次互动窗口(如iOS用户首日推送打开率比Android高37%,故延后2小时);
  • 所有激活动作附带activation_score(0-100),用于后续AB测试归因。

这套设计带来的实际收益是什么?

  • 当某次发布后发现新用户次日留存下降12%,我们直接在日志系统中筛选activation_score < 60的用户,发现92%集中在“邮件发送延迟>90秒”的批次——问题定位从“排查全链路”压缩到“检查NotificationOrchestrator的路由策略”;
  • 某次云服务商API故障导致搜索索引写入失败,系统自动降级为本地缓存模式,用户无感知,而传统方案会直接报500错误;
  • 客服团队反馈“部分用户收不到欢迎邮件”,我们不用翻代码,只需查NotificationOrchestrator的决策日志,发现是Gmail对新域名发信有严格DKIM验证,立即触发DNS记录自动更新流程。

注意:Agent模块化不是为了炫技,而是为了让每个环节具备“可测试性”。你必须能单独给注册意图解析Agent喂一组测试数据(如{"email": "TEST@GMAIL.COM", "password": "123"}),断言它返回的normalized_email是test@gmail.com、issues包含"too_short"。这种测试粒度,决定了你的Agent系统是玩具还是生产级设施。

3. 工具链不是插件,是Agent的“器官系统”

很多团队陷入一个误区:花大量时间研究LangChain、LlamaIndex、Semantic Kernel这些框架的API细节,却忽略了最根本的问题——Agent真正需要的不是框架,而是经过严格封装的、语义清晰的、失败可预期的工具集。

你可以把Agent想象成一个外科医生,而工具就是他的手术器械。LangChain就像一堆未经消毒的金属片,LlamaIndex像几把没标刻度的手术刀,而真正可用的工具链,应该是:

  • 每把器械有唯一ID和用途说明书(如db_read_user_profile_v2:专用于读取用户基础资料,返回字段严格限定为id,name,email,avatar_url,created_at,超时3s自动中断);
  • 器械之间有标准接口(所有工具输入为JSON Schema定义的对象,输出为带success: true/false、data、error_code的标准化响应);
  • 器械损坏时有明确报错(如db_read_user_profile_v2返回error_code: "DB_CONNECTION_TIMEOUT"而非笼统的"Internal Server Error")。

我们在某图像处理Demo中实践过这套理念。需求是“用户上传图片后,自动生成带版权水印的缩略图并存入CDN”。传统做法是写一个Python脚本,调用PIL裁剪、OpenCV加水印、boto3上传。Agent方案则定义了四个原子工具:

工具ID输入Schema输出Schema失败场景降级策略
image_validator{file_bytes: bytes, max_size_kb: 5000}{valid: true, format: "jpeg", width: 1920, height: 1080}或{valid: false, error_code: "INVALID_FORMAT"}文件损坏、格式不支持、尺寸超限返回error_code: "UNSUPPORTED_FORMAT",触发前端提示“仅支持JPG/PNG,最大5MB”
thumbnail_generator{src_image: bytes, target_width: 320, target_height: 240, quality: 85}{output_bytes: bytes, md5_hash: "a1b2c3..."}内存溢出、尺寸计算错误切换为resize_with_padding模式,保持宽高比并添加背景色
watermark_applier{src_image: bytes, watermark_text: "©2026 MyApp", position: "bottom_right"}{output_bytes: bytes, applied: true}字体缺失、坐标越界使用系统默认字体,位置自动调整为bottom_right_safe区域
cdn_uploader{file_bytes: bytes, filename: "thumb_abc123.jpg", cache_ttl_seconds: 2592000}{cdn_url: "https://cdn.example.com/thumb_abc123.jpg", etag: "xyz789"}CDN认证失败、网络超时临时存入本地MinIO,标记为pending_cdn_sync,由后台任务重试

关键突破在于:每个工具都自带“失败说明书”。比如cdn_uploader的文档明确写着:“当error_code为AUTH_FAILED时,Agent应重新获取短期访问令牌;当error_code为NETWORK_TIMEOUT且重试3次后仍失败,应调用local_fallback_storer工具保存至临时存储,并返回cdn_url为本地回退地址”。

这种设计让Agent的决策变得可预测。我们曾遇到CDN服务商升级API导致cdn_uploader批量失败,由于所有错误码都有明确定义,Agent在第一次失败后就触发了令牌刷新流程,第二次调用即成功——整个过程用户无感知,而传统方案需要运维紧急回滚版本。

更进一步,我们为工具链增加了“健康度探针”:每个工具在初始化时自动执行一次空载测试(如db_read_user_profile_v2会查询一个预设的测试用户),并将结果上报到中央健康看板。当某个工具连续3次探针失败,系统自动将其从Agent可调用列表中移除,并通知负责人。这避免了Agent在不知情的情况下持续调用一个已失效的工具。

提示:不要试图让Agent“学会”调用工具。正确的做法是:把工具能力写死在配置里,让Agent只做“该调哪个工具”和“传什么参数”的决策。就像你不会教外科医生怎么锻造手术刀,而是确保他面前摆着一把锋利、标好刻度、手柄防滑的刀。

4. 真正的挑战不在模型侧,而在人类侧的“意图翻译”

所有技术障碍最终都会被解决,但有一个问题至今无解:如何把模糊的业务需求,精准翻译成Agent能执行的、无歧义的、带约束的指令。

我见过太多失败案例,根源都在这一步。比如某电商团队提出需求:“让用户能方便地找到想要的商品”。这听起来很合理,但对Agent来说,这是个灾难性指令——“方便”指什么?加载速度<1秒?支持语音搜索?结果排序要个性化?“想要的商品”如何定义?是历史点击最多的?还是同类用户最近购买的?抑或是库存充足且配送最快的?

我们后来用一套“意图分解画布”解决了这个问题。它强制将原始需求拆解为五个维度:

4.1 目标实体(What)

明确Agent操作的核心对象。不是“商品”,而是“SKU级别的可售库存单元”,包含属性:sku_id、price_cents、in_stock、shipping_days、review_score。

4.2 行为动词(Do)

定义不可再分的原子动作。不是“找”,而是:

  • filter_by_category(输入:category_path,输出:SKU列表)
  • rank_by_relevance(输入:query_text + user_profile,输出:排序后SKU列表)
  • enrich_with_availability(输入:SKU列表,输出:带实时库存状态的SKU列表)

4.3 约束条件(Constraint)

列出所有硬性限制。例如:

  • 必须排除in_stock = false的SKU;
  • shipping_days不能超过用户所在区域的平均配送时长+2天;
  • 排序结果中前3个必须包含至少1个review_score >= 4.5的SKU;
  • 整个流程耗时不能超过800ms(含网络延迟)。

4.4 失败处理(Failure Mode)

定义每种失败的应对策略。例如:

  • 当filter_by_category返回空列表时,触发broaden_category_search(自动向上一级类目扩展);
  • 当rank_by_relevance置信度<0.6时,降级为rank_by_popularity;
  • 当enrich_with_availability超时,返回availability_status: "unknown"并标记该SKU为“需二次确认”。

4.5 验证指标(Verification)

规定如何证明任务成功。例如:

  • 返回的SKU列表长度≥10;
  • 平均review_score≥ 4.2;
  • shipping_days中位数 ≤ 3;
  • 前5个SKU中in_stock = true的比例100%。

用这套画布重写上面的需求,最终得到的Agent指令是:

“执行商品检索任务:以用户ID U7892和查询词‘无线降噪耳机’为输入,调用filter_by_category(category_path=‘electronics/audio/headphones’),若结果<5个则调用broaden_category_search;对结果调用rank_by_relevance,若置信度<0.6则改用rank_by_popularity;调用enrich_with_availability获取实时库存,超时则标记为unknown;最终返回最多20个SKU,要求:in_stock=true的占比≥90%,review_score中位数≥4.3,shipping_days中位数≤3,整个流程耗时≤800ms。若任一约束不满足,记录violation_code并返回降级结果。”

这个过程看似繁琐,但它把人类模糊的“感觉”转化成了机器可执行的“协议”。我们测算过,在某中型项目中,前期花12小时完成意图分解,后续节省了约67小时的调试和返工时间——因为所有参与者(产品、开发、测试、运维)都基于同一份精确文档工作,不再有“我以为你懂”“我以为你应该知道”的扯皮。

注意:意图分解不是一次性工作。每次上线后,必须收集真实用户行为数据,反向校验分解的准确性。比如发现用户点击了第12个搜索结果,而我们的约束要求“前5个必须含高分商品”,这就说明rank_by_relevance的权重设置有问题,需要调整算法参数或补充特征。

5. 生产环境中的Agent不是“运行中”,而是“持续进化中”

很多团队把Agent上线当成项目终点,实际上这才是真正考验的开始。Agent在生产环境的表现,会暴露所有设计时的假设漏洞。

我们在某数据分析平台部署“自然语言查询Agent”时,经历了典型的三阶段认知颠覆:

5.1 第一阶段:它比我们想的更笨

上线首周,38%的查询失败,错误日志显示大量TOOL_CALL_MISMATCH(Agent调用了不存在的工具)。排查发现:我们给Agent的工具列表是静态的,但后台每周自动新增2-3个数据表,对应的新查询工具并未同步注入。解决方案很简单:增加一个tool_registry_watcherAgent,它定期调用list_available_toolsAPI,对比本地缓存,发现差异时自动热更新工具描述。

5.2 第二阶段:它比我们想的更固执

第二周,失败率降到12%,但出现新问题:Agent在遇到模糊查询(如“上个月卖得最好的产品”)时,反复调用get_sales_summary工具,即使返回数据明显不符合预期(如只返回了3个产品,而常识判断应该有上百个)。根本原因是:我们没给Agent设定“重试阈值”。后来加入规则:“当同一工具连续3次返回结果数量<10且query_intent未改变时,强制触发clarify_intent工具,向用户提问‘您是指销售额最高的前10个产品,还是销量最高的前10个产品?’”

5.3 第三阶段:它开始教我们做事

第三周起,系统开始积累有价值的“失败模式库”。比如:

  • 当查询包含“同比”“环比”时,Agent有73%概率先调用get_current_period_data,再调用get_previous_period_data,但有27%概率顺序颠倒,导致时间范围计算错误;
  • 当用户说“帮我看看张三的订单”,Agent总是先调用search_users_by_name,但该工具在姓名重复率>15%的数据库中准确率仅62%,远低于search_users_by_phone_last4(准确率98%);
  • 当查询涉及“未支付订单”,Agent习惯性调用get_orders_by_status,但该工具在订单量>100万时响应超时,而get_unpaid_orders_recent_7d工具专为此场景优化。

我们把这些模式沉淀为“Agent行为准则”,并在每次新Agent上线前,强制进行“准则合规性扫描”。比如新加入的financial_report_agent,在测试阶段就被拦截:它试图用get_all_transactions工具拉取全量交易,违反了“禁止全表扫描”准则,系统自动建议改用get_transactions_by_date_range。

这种进化不是靠模型微调,而是靠人类持续观察、抽象、固化经验。我们甚至建立了“Agent成长档案”:每个Agent上线时生成初始画像(如“擅长处理结构化查询,不擅长处理模糊比较”),每月更新其能力雷达图(基于真实调用成功率、平均耗时、人工干预率等指标),当某项能力连续两月提升>15%,自动触发知识库更新流程。

最后分享一个血泪教训:不要给Agent设置“绝对正确”的KPI。我们曾考核“自然语言查询Agent”的准确率目标为95%,结果团队疯狂优化提示词,让Agent在不确定时也强行给出答案,导致错误答案的置信度反而更高。后来改为考核“准确率×置信度校准度”,才真正推动Agent学会说“我不知道”,并主动寻求澄清。

真正的Agent全栈,不是用AI替代程序员,而是用AI放大人类对复杂系统的掌控力——它让我们能把精力从“怎么实现”转向“怎么定义”,从“修bug”转向“修意图”,从“写代码”转向“建契约”。2026年,最稀缺的不是会调API的工程师,而是能精准翻译业务、设计工具契约、解读失败模式的Agent架构师。

相关新闻

Spring AI 实战:ChatClient 四步链式调用与自动装配入门指南

Spring AI 实战:ChatClient 四步链式调用与自动装配入门指南

最近用 Spring AI 给内部工具加了一个自然语言查询入口&#xff0c;说实话&#xff0c;从加依赖到能聊天&#xff0c;花的时间比我预想中少太多。核心就两件事&#xff1a;yml 里把模型服务商的 key、base-url、模型名称配好&#xff0c;然后注入 ChatClient.Builder&#xff0…

2026/10/21 8:03:14 阅读更多 →
pyautogui图像识别驱动的桌面GUI自动化测试实战

pyautogui图像识别驱动的桌面GUI自动化测试实战

做自动化测试这些年&#xff0c;我一直习惯拿到新工具先找个能“看得见摸得着”的场景去练手。上次把 Python 的 pyautogui 重新捡起来&#xff0c;顺手拿 4399 小游戏当靶场&#xff0c;写了一套完全靠图像识别驱动的自动化脚本。整个过程中不抓包、不改内存、不碰游戏协议&am…

2026/10/21 8:02:13 阅读更多 →
杰理方案I2S时钟配置详解:从频率换算到故障排查

杰理方案I2S时钟配置详解:从频率换算到故障排查

上个月帮一个朋友调杰理方案的蓝牙音箱&#xff0c;板子外挂了一颗I2S接口的DAC&#xff0c;音质指标看着很漂亮。结果上电放歌第一秒我就知道要熬夜了——声音忽快忽慢&#xff0c;像磁带被手指捏着卷&#xff0c;里面还垫着一层细细的“滋滋”声。我没有急着翻代码&#xff0…

2026/10/21 8:02:13 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年&#xff0c;我大部分时间都在跟浏览器标签页打交道&#xff0c;直到第一次把桌面应用跑起来&#xff0c;才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词&#xff0c;最开始是在某段时间频繁出现在同事的讨论里&#xff0c;一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档&#xff0c;主要面向智能锁安装人员、终端用户及售后维护者&#xff0c;帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件&#xff0c;大小4.37MB&#xff0c;内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统&#xff0c;整车要求空载跑到8m/s&#xff0c;电机转速已经拉到额定点&#xff0c;驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令&#xff0c;转速纹丝不动&#xff0c;三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年&#xff0c;用它写过嵌入式驱动、做过游戏服务端&#xff0c;也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词&#xff0c;我其实挺感慨的——这门语言的难点从来不是语法多&#xff0c;而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书以PDF格式发布&#xff0c;适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开&#xff0c;先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能&#xff0c;再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历&#xff1a;翻开源码注释、论文摘要或者一份专业报告&#xff0c;每个字都认识&#xff0c;连在一起却像天书。想找人聊聊&#xff0c;身边要么没人懂&#xff0c;要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型&#xff0c;几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 16:24:48 阅读更多 →