[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-huawei-openpangu-20-xiaoyi-tools-en":3,"article-related-huawei-openpangu-20-xiaoyi-tools-en":30,"series-tools-47c76490-75a2-4e63-8b3d-443aff0da6da":75},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"47c76490-75a2-4e63-8b3d-443aff0da6da","huawei-openpangu-20-xiaoyi-tools-en","华为 openPangu 2.0 让小艺会用工具","\u003Cp data-speakable=\"summary\">我把华为 openPangu 2.0 的工具调用思路拆成了可直接套用的助手模板。\u003C\u002Fp>\u003Cp>我这几年看过太多“智能助手”了，名字一个比一个响，实际一用就露馅。最烦的就是那种只会接话的：你问它一个事，它先夸你提得好，再绕半天，最后还是没干活。更糟的是，很多系统把“会聊天”当成“会做事”，把“能调用工具”当成“已经有 \u003Ca href=\"\u002Ftag\u002Fagent\">Agent\u003C\u002Fa> 了”。结果就是，demo 看着挺像那么回事，真放进日常工作流里，还是一团散沙。\u003C\u002Fp>\u003Cp>我最近重新看华为这条线，感觉它终于不再满足于“回答问题”这件事了。它想做的是把对话、工具、上下文、应用内动作揉成一个能执行任务的系统。这个方向我其实不陌生，\u003Ca href=\"https:\u002F\u002Fopenai.com\u002Findex\u002Fintroducing-operator\u002F\">OpenAI Operator\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fclaude-code\">Claude Code\u003C\u002Fa>、还有 \u003Ca href=\"https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fgemini-2-0-flash-thinking-expanding-the-context-window-and-more\u002F\">Gemini 2.0\u003C\u002Fa> 这类东西都在往这边走，但华为这次最有意思的点，不是“也做了 Agent”，而是它把系统级能力、应用级 skill、以及上下文管理绑到了一起。这个组合，才是它真正改变交互范式的地方。\u003C\u002Fp>\u003Ch2>它不是在做聊天机器人，而是在做“能接活”的系统\u003C\u002Fh2>\u003Cblockquote>从鸿蒙7开始，小艺终于对之前零散的能力做了各种整合，它终于像一个龙虾\u002Fclaude code一样，具备“思考、行动、观察、重复”的能力，也具备在对话中想起来自己有工具可以调用的能力，也具备了上下文管理的能力。\u003C\u002Fblockquote>\u003Cp>这段话的核心意思很直接：小艺不再只是“答题器”，而是开始像一个真正的任务执行器。你说一句话，它不只是生成一句回复，而是会判断这句话是不是要查、要点、要改、要调用某个 App 的能力。然后它会执行，观察结果，再决定下一步。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781823801205-tdbs.png\" alt=\"华为 openPangu 2.0 让小艺会用工具\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我自己最烦的就是那种“假工具调用”。表面上挂了很多 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa>，实际模型根本不知道什么时候该用，或者用完之后不会继续推进任务。那种系统看着像 Agent，干起来像客服脚本。华为这里的思路更像是在补齐闭环：思考、行动、观察、重复。这个闭环一旦成立，助手才真的开始像助手，而不是像一个会说话的搜索框。\u003C\u002Fp>\u003Cp>这里我建议你把重点放在“任务”而不是“对话”上。对话只是入口，任务才是目标。你要问自己：用户说的这句话，是不是可以拆成几个动作？这些动作有没有明确的执行边界？执行后能不能拿到结果继续推理？如果答案都是肯定的，那这个系统才值得做 Agent 化。\u003C\u002Fp>\u003Cul>\u003Cli>先定义任务，而不是先堆模型。\u003C\u002Fli>\u003Cli>把每个任务拆成可执行动作。\u003C\u002Fli>\u003Cli>让模型在动作结果回来后继续决策。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你要照着这个方向做，我会先从 3 类场景下手：搜索、下单、修改状态。它们最容易验证“会做事”是不是成立，因为每一步都有明确结果，最适合做闭环。\u003C\u002Fp>\u003Ch2>skill 不是装饰品，是应用把能力交给系统的接口\u003C\u002Fh2>\u003Cp>原文里最关键的一句其实是这个：\u003C\u002Fp>\u003Cblockquote>一方面允许开发者给自己的App定义skill，让系统小艺Agent能够轻松调用应用内逻辑执行各类操作\u003C\u002Fblockquote>\u003Cp>这句话的意思很大，但我得说得更白一点：华为不是想让模型去“猜”你的 App 怎么用，而是让 App 主动把能力暴露出来。这个差别非常大。前者靠模型瞎摸索，后者靠开发者提供明确入口。前者脆，后者可控。\u003C\u002Fp>\u003Cp>我见过太多团队把“让模型操作 App”理解成“把界面丢给模型看”。这条路不是不能走，但太容易失控。UI 会变，按钮会改，页面结构会抖，模型每次都像在做陌生环境导航。skill 的价值就在这里：它把操作从 UI 里抽出来，变成稳定接口。模型不用猜“点哪儿”，只要知道“这个能力叫什么、输入是什么、输出是什么”。\u003C\u002Fp>\u003Cp>如果你是开发者，这其实是一种很现实的分工。模型负责意图理解和决策，App 负责业务逻辑和权限边界。这样一来，系统就不会把所有责任都压在模型身上。说句难听的，很多失败的 Agent 项目，都是因为团队想让模型同时当产品经理、前端、后端、测试和客服，最后谁都不像。\u003C\u002Fp>\u003Cp>我跑过一个内部原型时就踩过这个坑。我们一开始想让模型直接操作页面，结果只要文案一改，整条链路就抖。后来改成内部 action schema，模型只选 action，不碰页面细节，稳定性立刻上来了。华为这个 skill 思路，本质上就是把这个经验产品化了。\u003C\u002Fp>\u003Cp>怎么落地？我会这么做：\u003C\u002Fp>\u003Cul>\u003Cli>把高频业务动作抽成 skill，不要一上来全量开放。\u003C\u002Fli>\u003Cli>每个 skill 明确输入、输出、错误码。\u003C\u002Fli>\u003Cli>做权限校验，不要让模型替你决定安全边界。\u003C\u002Fli>\u003Cli>给 skill 起业务名，不要起“tool_001”这种没人看得懂的名字。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你做的是消费级 App，这一步尤其重要。因为用户根本不在乎你是不是“用了大模型”，用户只在乎它能不能替我把事办完。\u003C\u002Fp>\u003Ch2>上下文管理才是 Agent 能不能长期可用的分水岭\u003C\u002Fh2>\u003Cp>很多人一提 Agent，就只盯着“会不会调用工具”。我觉得这太浅了。真正拉开差距的，往往是上下文管理。因为工具调用只是单次动作，上下文管理决定它能不能连续做事。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781823798157-0jxq.png\" alt=\"华为 openPangu 2.0 让小艺会用工具\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>原文里说小艺也具备了上下文管理能力，这点我非常认同。没有上下文管理，Agent 每一步都像失忆。你刚让它查完比价，它下一句又忘了刚才看的是什么；你刚让它订餐，它下一步又要你重复地址和偏好。用户体验会非常烂，烂到你根本不想再用第二次。\u003C\u002Fp>\u003Cp>我把上下文管理分成三层看：\u003C\u002Fp>\u003Cul>\u003Cli>短上下文：当前这轮对话里刚说过什么。\u003C\u002Fli>\u003Cli>任务上下文：这次任务的目标、约束、当前进度。\u003C\u002Fli>\u003Cli>长期上下文：用户偏好、常用地址、历史选择，但必须可控、可删除、可解释。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>这三层里，最容易被忽略的是任务上下文。很多系统只记聊天历史，不记任务状态。结果就是模型能“聊得像人”，却“做事像鱼”。华为这条线如果真把任务上下文做稳了，那它就不只是一个语音助手，而是一个可以持续推进事务的系统入口。\u003C\u002Fp>\u003Cp>怎么应用到你自己的产品里？我建议你别先想着“记住用户一切”，先想“这次任务要记住什么”。比如点外卖这个场景，你至少要记住：预算、口味、地址、是否要发票、是否允许替代。把这些做成结构化状态，比把整段聊天丢给模型靠谱得多。\u003C\u002Fp>\u003Cp>还有一点我想强调：上下文不是越多越好。上下文越多，污染也越多。你得有清理机制，有过期机制，有优先级。否则模型会被一堆历史废话拖死。\u003C\u002Fp>\u003Ch2>“思考、行动、观察、重复”不是口号，是执行循环\u003C\u002Fh2>\u003Cp>这一段我其实最想单独拎出来，因为很多团队把它说得太玄了。其实它一点都不玄，就是一个非常朴素的控制循环。\u003C\u002Fp>\u003Cblockquote>具备“思考、行动、观察、重复”的能力\u003C\u002Fblockquote>\u003Cp>这句话翻成工程语言就是：先规划下一步，执行动作，读回结果，再决定下一步。听起来简单，但真正难的是每一步都要有明确的状态切换。没有状态机，Agent 就会在“我想一下”和“我再试试”之间无限打转。\u003C\u002Fp>\u003Cp>我以前做过一个内部自动化助手，最开始也很自信，想着模型能自己推理。结果一上线，最常见的问题不是不会答，而是会重复调用同一个动作，或者在失败后乱改方向。后来我们加了执行状态、重试限制、失败分支、人工接管点，系统才像样。\u003C\u002Fp>\u003Cp>如果你想把这个循环做实，我建议你至少设计这几个状态：\u003C\u002Fp>\u003Cul>\u003Cli>Plan：模型决定下一步做什么。\u003C\u002Fli>\u003Cli>Act：调用 skill 或工具。\u003C\u002Fli>\u003Cli>Observe：读取返回值、错误和副作用。\u003C\u002Fli>\u003Cli>Reflect：判断是否继续、改道或结束。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>注意，Reflect 这一步不是让模型写长篇大论，而是让它做决策。别把 Agent 变成作文比赛。你要的是可执行的判断，不是漂亮的自我感动。\u003C\u002Fp>\u003Cp>华为这次的价值就在于，它把这个循环放进系统层，而不是只停留在某个 demo 里。系统级入口一旦成立，用户就不需要知道背后到底是哪个模型、哪条链路、哪种 prompt。用户只会觉得：它真的开始替我干活了。\u003C\u002Fp>\u003Ch2>真正该学的不是模型大小，是系统边界怎么划\u003C\u002Fh2>\u003Cp>很多人看到“开源盘古 2.0”就会下意识问：参数多少？能力多强？榜单多少分？我倒觉得这些问题都太快了。先别急着比模型，先看系统边界怎么划。因为一旦进入 Agent 场景，模型强不强只是其中一环，边界设计才决定它能不能上线。\u003C\u002Fp>\u003Cp>华为这套思路里，我最在意的是它把哪些能力留给系统，哪些留给 App，哪些留给模型。这个分层如果清楚，产品就容易收敛；如果不清楚，最后就会变成“谁都能做一点，谁都做不完整”。\u003C\u002Fp>\u003Cp>我通常会这么切：\u003C\u002Fp>\u003Cul>\u003Cli>模型：理解意图、生成计划、选择动作。\u003C\u002Fli>\u003Cli>系统：权限、会话、路由、审计、回退。\u003C\u002Fli>\u003Cli>App skill：业务执行、数据读写、结果返回。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>这个切法的好处是很现实的。模型出错了，系统还能兜底；App 接口变了，只要 skill 适配层还在，模型不用重训；权限出问题，系统层直接拦住，不让模型乱来。你不这样切，最后就会把所有风险都压到 prompt 上。那不是工程，那是祈祷。\u003C\u002Fp>\u003Cp>如果你要做类似产品，我建议你先问三个问题：第一，哪些动作必须可审计？第二，哪些动作必须用户确认？第三，哪些动作必须支持回滚？这三个问题答清楚，系统边界就有了。\u003C\u002Fp>\u003Ch2>这类助手最值钱的地方，是把应用变成可被调用的能力池\u003C\u002Fh2>\u003Cp>我觉得华为这次最值得开发者注意的，不是“小艺变聪明了”，而是“应用终于可以被系统级助手调用了”。这意味着 App 不再只是一个孤立界面，而是一个能力提供者。这个变化很大，真的很大。\u003C\u002Fp>\u003Cp>以前 App 的价值主要体现在用户自己点进去用。现在如果系统层能直接调用你的 skill，那你的 App 就多了一个入口，而且这个入口不是菜单，不是按钮，是意图。用户甚至不需要知道 App 里具体怎么走流程，只要说一句“帮我比价并下单”，系统就能把多个 App 的能力串起来。\u003C\u002Fp>\u003Cp>对开发者来说，这意味着你要重新思考产品设计：\u003C\u002Fp>\u003Cul>\u003Cli>哪些能力适合暴露给系统？\u003C\u002Fli>\u003Cli>哪些能力需要合并成更高层的 task skill？\u003C\u002Fli>\u003Cli>哪些关键步骤必须保留用户确认？\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我不建议一上来就把所有功能都做成 skill。那样只会把复杂度炸开。先挑高频、低风险、可验证的动作做。比如搜索、筛选、预填、草稿生成、状态查询。这些动作一旦跑通，后面再往深处扩。\u003C\u002Fp>\u003Cp>如果你想参考更通用的工具协议，可以看看 \u003Ca href=\"https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Ffunction-calling\">OpenAI function calling\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fbuild-with-claude\u002Ftool-use\">Anthropic tool use\u003C\u002Fa>，以及 \u003Ca href=\"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Ffunction-calling\">Google Gemini function calling\u003C\u002Fa>。我不是让你照搬，而是让你看清一个事实：工具调用不是附加功能，它已经是现代助手的基本工作方式了。\u003C\u002Fp>\u003Ch2>你可以直接照着做的模板\u003C\u002Fh2>\u003Cp>下面这个模板不是“通用大而全方案”，而是我会拿去做原型的最小闭环。它的目标很明确：让一个系统级助手能够理解用户意图、选择 skill、执行动作、读取结果、继续推进任务。你可以把它改成你自己的 App skill 规范、Agent prompt，或者任务编排协议。\u003C\u002Fp>\u003Cpre>\u003Ccode>## 系统角色定义（System Prompt \u002F Orchestrator Spec）\n\n你是一个任务执行型助手。你的目标不是闲聊，而是把用户请求拆成可执行步骤，并在需要时调用可用的 skill 完成任务。\n\n### 核心原则\n1. 先理解任务，再决定是否调用 skill。\n2. 只在有明确收益时调用 skill，不要为了调用而调用。\n3. 每次 skill 返回后，都要根据结果决定下一步。\n4. 如果信息不足，先问最少量的问题。\n5. 涉及支付、删除、发布、下单、授权等操作时，必须先获得用户确认。\n6. 任何时候都要维护任务上下文，不要重复问已经确认过的信息。\n\n### 可用 skill 示例\n- search_items(query, filters)\n- compare_items(item_ids)\n- create_order(item_id, address_id, coupon_id)\n- get_user_profile()\n- get_task_state(task_id)\n- update_task_state(task_id, patch)\n- request_user_confirmation(action_summary)\n\n### 决策流程\n1. 解析用户目标\n2. 判断是否需要 skill\n3. 选择最合适的 skill\n4. 执行 skill\n5. 观察返回结果\n6. 更新任务状态\n7. 继续执行或结束\n\n### 输出格式\n- 如果需要调用 skill：输出结构化调用请求\n- 如果需要向用户提问：只问最必要的一句\n- 如果任务完成：总结结果，说明下一步\n\n---\n\n## Skill 设计模板\n\n### Skill 名称\nsearch_items\n\n### 作用\n根据关键词和条件搜索商品或服务。\n\n### 输入\n{\n  \"query\": \"string\",\n  \"filters\": {\n    \"price_max\": \"number|null\",\n    \"category\": \"string|null\",\n    \"delivery_time_max\": \"string|null\"\n  }\n}\n\n### 输出\n{\n  \"results\": [\n    {\n      \"id\": \"string\",\n      \"title\": \"string\",\n      \"price\": \"number\",\n      \"score\": \"number\"\n    }\n  ],\n  \"count\": \"number\"\n}\n\n### 失败处理\n- 无结果：返回空数组，并提示可放宽条件\n- 参数缺失：返回缺失字段列表\n- 接口错误：返回错误码和可重试建议\n\n---\n\n## 任务上下文模板\n{\n  \"task_id\": \"task_123\",\n  \"goal\": \"帮用户找到并下单晚餐\",\n  \"constraints\": {\n    \"budget_max\": 50,\n    \"delivery_address\": \"已确认\",\n    \"must_confirm_payment\": true\n  },\n  \"state\": {\n    \"step\": \"compare_items\",\n    \"selected_item_id\": null,\n    \"waiting_for_confirmation\": false\n  },\n  \"history\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"帮我点外卖，预算 50 以内\"\n    },\n    {\n      \"role\": \"assistant\",\n      \"content\": \"我先帮你筛选可选项\"\n    }\n  ]\n}\n\n---\n\n## 执行示例\n用户：帮我找 50 元以内、30 分钟能送到的晚餐\n\n助手：调用 search_items\n{\n  \"query\": \"晚餐\",\n  \"filters\": {\n    \"price_max\": 50,\n    \"category\": \"food\",\n    \"delivery_time_max\": \"30m\"\n  }\n}\n\nskill 返回结果后，助手：\n1. 更新 task_state\n2. 选出最优 3 个结果\n3. 询问用户是否要比较或直接下单\n4. 若用户确认，则调用 create_order\n5. 完成后总结订单信息\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>我把这个模板故意写得偏工程化，因为我不想再看到那种“把 prompt 调一调就能上线”的幻觉。你要真想做成可用系统，就得把 skill、状态、确认、回退都写清楚。模型只是中间的大脑，不是全部。\u003C\u002Fp>\u003Cp>如果你后面要继续扩，我建议你再补三块：一是审计日志，二是权限策略，三是失败恢复。没有这三块，Agent 很容易从“聪明”滑向“危险”。\u003C\u002Fp>\u003Ch2>来源和边界：我拆的是这条知乎回答，不是官方白皮书\u003C\u002Fh2>\u003Cp>这篇拆解的直接来源是知乎问题“\u003Ca href=\"https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F2048823351049707836\">6月12日华为发布开源盘古 2.0 模型，如何评价 openPangu 2.0 ？\u003C\u002Fa>”下的这段回答。原文重点放在鸿蒙 7、小艺 Agent、skill 暴露和上下文管理上，我这里做的是工程化拆解和可复制模板，不是对华为官方技术细节的逐条复述。\u003C\u002Fp>\u003Cp>如果你要继续追原始材料，我建议把这条回答和华为相关开发文档一起看，再对照 \u003Ca href=\"https:\u002F\u002Fopenai.com\u002Findex\u002Ffunction-calling-and-other-api-updates\u002F\">function calling 思路\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fbuild-with-claude\u002Ftool-use\">tool use 文档\u003C\u002Fa>，你会更容易看出这类系统到底在往哪里走。\u003C\u002Fp>","我拆开华为 openPangu 2.0 的思路，给你一份可直接套用的工具调用型助手模板。","www.zhihu.com","https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F2048823351049707836",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781823801205-tdbs.png","tools","en","7283751c-5256-42e6-9921-ef345e21d4d7",[17,18,19,20,21],"openPangu","小艺","skill","Agent","鸿蒙7",[23,24,25],"把助手从聊天器改成任务执行器","用 skill 把应用能力暴露给系统","上下文管理决定 Agent 能不能连续做事",0,"2026-06-18T23:02:58.389861+00:00","2026-06-18T23:02:58.383+00:00","a7343b93-37cc-4634-a2bc-707f6275bdb6",{"tags":31,"relatedLang":34,"relatedPosts":38},[32],{"name":33,"slug":33},"agent",{"id":15,"slug":35,"title":36,"language":37},"huawei-openpangu-20-xiaoyi-tools-zh","openPangu 2.0 讓小藝會用工具","zh",[39,45,51,57,63,69],{"id":40,"slug":41,"title":42,"cover_image":43,"image_url":43,"created_at":44,"category":13},"f9ee1fee-7ac0-4072-a330-dbe682e03b84","renesas-acquires-altium-pcb-design-tool-update-en","瑞萨全资收购Altium，PCB设计工具更新","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781859772738-3319.png","2026-06-19T09:02:23.631252+00:00",{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"c7baab44-71c8-4905-9a7d-a54a98e6cc45","rust-forum-week-25-turns-ideas-into-shipping-work-en","Rust forum week 25 turns ideas into shipping work","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781857111323-iib7.png","2026-06-19T08:18:05.668091+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"014be76a-746c-4892-b144-90c05a0c61c6","claude-code-rust-native-terminal-interface-en","Claude Code Rust trims TUI overhead to one binary","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781854432173-8t6o.png","2026-06-19T07:33:30.328578+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"ae4915a0-e313-438e-b724-e04e07331683","open-source-tools-vibe-coding-cybersecurity-en","Open source tools that make vibe coding safer","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781852617883-ajan.png","2026-06-19T07:03:09.073748+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"95a3ce84-1732-4bce-a705-4957ca6f06af","model-triage-coding-tests-cost-win-en","Model triage turns coding tests into a cost win","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781840906662-fpo6.png","2026-06-19T03:47:52.260391+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"cb08c71e-096a-4508-b172-4698b9a607cc","fine-tuning-llms-locally-sft-lora-dpo-en","Fine-Tuning LLMs Locally: SFT, LoRA, DPO","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781839068257-3o35.png","2026-06-19T03:17:22.225063+00:00",[76,81,86,91,96,101,106,111,116,121],{"id":77,"slug":78,"title":79,"created_at":80},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":82,"slug":83,"title":84,"created_at":85},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]