<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>入门教程 · MaiYang</title>
    <link>https://maiyang.me/learn/</link>
    <description>杨文 Mai Yang：AI Builder，SpaceXAI · Cursor 中国区首位 Ambassador，Go 夜读发起人。和 Agent 一起把想法变成真正可以交付的产品，持续 Build in Public。</description>
    <language>zh-CN</language><lastBuildDate>Mon, 26 Oct 2026 16:00:00 +0800</lastBuildDate>
    <atom:link href="https://maiyang.me/learn/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>个人开发者上架中国区 App Store：ICP 备案照着做的清单</title>
      <link>https://maiyang.me/learn/03-app-store-china-icp-checklist/</link>
      <pubDate>Mon, 26 Oct 2026 16:00:00 +0800</pubDate>
      <guid>https://maiyang.me/learn/03-app-store-china-icp-checklist/</guid>
      <description>&lt;h2 id=&#34;先说结论&#34;&gt;先说结论&lt;/h2&gt;
&lt;p&gt;如果你的 App 要在中国大陆上架，&lt;strong&gt;趁早把 ICP 备案办了&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;我第一次上架 CastMind（当时还叫 ContextEcho）时没办，靠政策过渡期正常卖了一阵，教育类付费榜最高冲到第 23 名。然后我发了 1.2.0 版本更新，&lt;strong&gt;这次更新触发了备案要求&lt;/strong&gt;，App 直接从中国区下架。&lt;/p&gt;
&lt;p&gt;好消息是：&lt;strong&gt;个人开发者也能办，不需要公司主体。&lt;/strong&gt; 我前后大约 6 天，域名加服务器花了 300 多元。&lt;/p&gt;
&lt;h2 id=&#34;你现在需要办吗&#34;&gt;你现在需要办吗？&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;还没上架，准备上中国区：现在就办；&lt;/li&gt;
&lt;li&gt;已经上架、一直没更新：可能暂时没事，但&lt;strong&gt;下一次提交新版本就可能被要求补齐&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;不上中国区：不用管。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;办理清单&#34;&gt;办理清单&lt;/h2&gt;
&lt;p&gt;我用的是阿里云代为提交，下面按它的流程写。你已经在腾讯云、华为云有域名或服务器，直接用那家也行。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;买一个能备案的域名。要做个人实名认证，这一步需要时间，别拖到最后。域名不一定真要在 App 里用，只是备案的必要条件，买之前看清楚后缀能不能备案；&lt;/li&gt;
&lt;li&gt;买一个符合备案要求的云资源。我买的是轻量应用服务器。它也不一定真要用，但必须满足备案的最低配置，否则关联不进申请。新用户会便宜很多；&lt;/li&gt;
&lt;li&gt;在&lt;a href=&#34;https://beian.aliyun.com/pcContainer/myorder&#34;&gt;阿里云备案控制台&lt;/a&gt;填资料。关联好域名和云资源，做完实人认证后提交，跟着引导填基本不会错；&lt;/li&gt;
&lt;li&gt;接阿里云审核专员的电话。这期间保持手机畅通，注意陌生来电；&lt;/li&gt;
&lt;li&gt;收到工信部验证码短信后，&lt;strong&gt;1 天内&lt;/strong&gt;去 beian.miit.gov.cn 完成核验；&lt;/li&gt;
&lt;li&gt;等管局审核，收到通过短信，拿到备案号；&lt;/li&gt;
&lt;li&gt;把备案号填进 App Store Connect。我填完大概 10 来分钟，App 就恢复上架了。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;三个最容易踩的坑&#34;&gt;三个最容易踩的坑&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;漏接审核电话。&lt;/strong&gt; 我当时在地铁里，手机没响，硬生生漏接了。后来看到短信，点里面的链接申请回电才完成核实。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;验证码过期。&lt;/strong&gt; 工信部那条验证码短信有效期 1 天，过了就被退回，前面白等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;备案号填进去提示「与 MIIT 记录不符」。&lt;/strong&gt; 这是别人踩过的坑：去&lt;a href=&#34;https://beian.miit.gov.cn/&#34;&gt;工信部备案查询&lt;/a&gt;查自己的备案号，复制 ICP 备案服务信息里那个（一般后面带 &lt;code&gt;-1A&lt;/code&gt; 之类的后缀）再填。&lt;/p&gt;
&lt;h2 id=&#34;那些付费增值服务要不要买&#34;&gt;那些付费增值服务要不要买？&lt;/h2&gt;
&lt;p&gt;阿里云会一路推销，我遇到过「备案智能助理」99 元/次、「备案管家服务」600 元/个。&lt;/p&gt;
&lt;p&gt;我的结论是：&lt;strong&gt;对个人开发者基本没必要。&lt;/strong&gt; 自己填几乎零成本，核心时间都花在等工信部审核上，这一步谁也加速不了太多。真赶时间、不差这点钱，那是你的取舍。&lt;/p&gt;
&lt;h2 id=&#34;下一步&#34;&gt;下一步&lt;/h2&gt;
&lt;p&gt;还没开始做 App？从&lt;a href=&#34;https://maiyang.me/learn/01-first-tool-with-cursor/&#34;&gt;第 01 篇&lt;/a&gt;开始。完整的时间线和每条短信原文，在&lt;a href=&#34;https://maiyang.me/post/2026-07-14-appstore-china-icp-filing/&#34;&gt;原文复盘&lt;/a&gt;里。&lt;/p&gt;
</description>
    </item>
    <item>
      <title>第一只 Grok Bot：先建一只，只让它干一件事</title>
      <link>https://maiyang.me/learn/02-first-grok-bot-one-job/</link>
      <pubDate>Mon, 26 Oct 2026 16:00:00 +0800</pubDate>
      <guid>https://maiyang.me/learn/02-first-grok-bot-one-job/</guid>
      <description>&lt;h2 id=&#34;先说我踩的坑&#34;&gt;先说我踩的坑&lt;/h2&gt;
&lt;p&gt;我的第一只 Grok Bot 什么都干：调研、写作、截图、核对事实。&lt;/p&gt;
&lt;p&gt;它哪一样都不算差。问题恰恰在这：哪一样都一般，而我永远不知道该改哪一部分。&lt;/p&gt;
&lt;p&gt;后来我把它拆了。现在每只 Bot 只负责一件事。这篇教程就是按这个顺序写的：先建一只，跑顺，再拆。&lt;/p&gt;
&lt;h2 id=&#34;第一步下载取个名字&#34;&gt;第一步：下载，取个名字&lt;/h2&gt;
&lt;p&gt;去 &lt;a href=&#34;https://x.ai/bot&#34;&gt;x.ai/bot&lt;/a&gt; 下载。桌面端有 macOS 和 Windows，手机端有 iOS（我写原文时 Android 还没发布）。现在基本 free 都能用，macOS 和 iOS 共用同一个额度。&lt;/p&gt;
&lt;p&gt;建 Bot 的时候给它一个名字。&lt;strong&gt;名字就是岗位&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;我建过一只叫「AICon」的，它马上就成了我参加那场大会的参会小秘。名字取「参会小秘」「活动执行」「Inbox」「调研」这种，别取「我的助手」。&lt;/p&gt;
&lt;h2 id=&#34;第二步交活时说清四句话&#34;&gt;第二步：交活时说清四句话&lt;/h2&gt;
&lt;p&gt;第一份活，把这四句话说清楚就行：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;做完你要看到什么；&lt;/li&gt;
&lt;li&gt;它该去哪找材料；&lt;/li&gt;
&lt;li&gt;哪些事不许做，必须先问你；&lt;/li&gt;
&lt;li&gt;交付物长什么样。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;比如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;你是我的参会小秘。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;这周六我去 XX 大会，议程在 &amp;lt;链接&amp;gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;帮我挑出和 AI Coding 相关的 5 场，每场给我一句话说明为什么值得听。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;不要替我报名，不要发任何消息。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;交付一张表：时间、场次、讲者、一句话理由。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;需要登录某个网站时，打开 Agent Computer，你自己接管，输密码或 2FA，再把控制权还给它。&lt;/p&gt;
&lt;h2 id=&#34;第三步边界先设always-allow-后开&#34;&gt;第三步：边界先设，Always Allow 后开&lt;/h2&gt;
&lt;p&gt;它能在真账号、真文件、真网页上动手。所以最值钱的不是它跑了多远，是你让它在哪停。&lt;/p&gt;
&lt;p&gt;这些动作默认会停下来问你：发信、发邀请；公开发布；花钱、转账；删除或覆盖数据；改权限、改生产；点同意法律条款。&lt;/p&gt;
&lt;p&gt;在 Settings → General → Auto-review 里可以加规则。Require Approval 和 Always Allow 同时命中时，前者赢。&lt;/p&gt;
&lt;p&gt;本机命令另算。Settings → General → Agent → Execution on Local Computer，没有明确理由，保持 Never allowed。这不影响它用自己的云电脑。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;先把会出事的动作锁住，跑通一次，再考虑放开。别第一天就「全部允许」。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;还有一点：审批只管「接下来要做的那一下」。已经做完的，点 Deny 也撤不回去。&lt;/p&gt;
&lt;h2 id=&#34;第四步跑顺了再拆第二只&#34;&gt;第四步：跑顺了，再拆第二只&lt;/h2&gt;
&lt;p&gt;第一只你改过两轮、输出格式也稳定了，再往下走：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;让它把做法存成 &lt;strong&gt;skill&lt;/strong&gt;。skill 是「怎么做」；&lt;/li&gt;
&lt;li&gt;需要定时跑，再做成 &lt;strong&gt;routine&lt;/strong&gt;。routine 是「谁来做、什么时候做」。先拿真实任务跑通，再定时。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当你发现一只 Bot 开始同时干好几件事，就该拆了。我拆完以后定下三条：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;一只 Bot，一件事。&lt;/strong&gt; 多件事挤在一只里，上下文会互相串；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;单一职责的 Bot 不单独待着。&lt;/strong&gt; 由主 Bot 在需要时把活派给它；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按工程团队的方式分工。&lt;/strong&gt; 一件事一个 owner，出了问题只有一个地址。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我现在要拼长图，不会自己去开 Scroll Stitch，而是把截图丢给主 Bot，它派给 Scroll Stitch，结果再回到我这。&lt;/p&gt;
&lt;h2 id=&#34;常见卡点&#34;&gt;常见卡点&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;什么都让一只干，越用越乱。&lt;/strong&gt; 回到第四步，拆。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;额度掉得比预期快。&lt;/strong&gt; 先看哪只 Bot 的定时唤醒没必要，具体做法在&lt;a href=&#34;https://maiyang.me/post/2026-09-13-grok-bot-save-usage-sweeper/&#34;&gt;这篇省额度的文章&lt;/a&gt;里。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;不知道还能拿它干什么。&lt;/strong&gt; 去 &lt;a href=&#34;https://usegrokbot.com/&#34;&gt;usegrokbot.com&lt;/a&gt; 翻别人的用法，场景、排行、长文都有。&lt;/p&gt;
</description>
    </item>
    <item>
      <title>用 Cursor 做出第一个你自己每天会用的小工具</title>
      <link>https://maiyang.me/learn/01-first-tool-with-cursor/</link>
      <pubDate>Mon, 26 Oct 2026 16:00:00 +0800</pubDate>
      <guid>https://maiyang.me/learn/01-first-tool-with-cursor/</guid>
      <description>&lt;h2 id=&#34;先交代我自己的起点&#34;&gt;先交代我自己的起点&lt;/h2&gt;
&lt;p&gt;做 CastMind（原名 ContextEcho）之前，我没有完整的 iOS 开发经验。&lt;/p&gt;
&lt;p&gt;从第一行代码到 App Store 上架，用了 76 天，提交了 468 个 commit，写下约 4.8 万行 Swift。整个过程几乎都在和 Cursor 结对。&lt;/p&gt;
&lt;p&gt;中间我做过一次最痛的决定：删掉当时最让我兴奋的全部 AI 功能，一次净删了近 3000 行代码。原因很尴尬，&lt;strong&gt;这些功能我自己根本不会打开&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;所以这篇教程不教你写出更多代码。它教你做出一个&lt;strong&gt;你自己真的会用&lt;/strong&gt;的东西。&lt;/p&gt;
&lt;h2 id=&#34;第一步挑一个你每天都会用的小需求&#34;&gt;第一步：挑一个你每天都会用的小需求&lt;/h2&gt;
&lt;p&gt;用这三条筛一遍你脑子里的想法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你自己每天至少会用一次；&lt;/li&gt;
&lt;li&gt;一句话就能说清它解决什么；&lt;/li&gt;
&lt;li&gt;第一版只做一件事，几天之内能跑起来。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CastMind 的那句话是：&lt;strong&gt;稳稳地听，看见自己的积累&lt;/strong&gt;。我的 MVP 用了 3 天。&lt;/p&gt;
&lt;p&gt;三条里有一条过不了，换一个想法。别从「做一个 XX 平台」开始。&lt;/p&gt;
&lt;h2 id=&#34;第二步先跟-ai-聊清楚再写一页说明&#34;&gt;第二步：先跟 AI 聊清楚，再写一页说明&lt;/h2&gt;
&lt;p&gt;我最开始没有写代码，是先和 ChatGPT 聊想法、定位和该怎么实现。方向清楚了，第一版规划才成形。&lt;/p&gt;
&lt;p&gt;聊完以后，把结论写成一页纸。它是给 Agent 看的，也是给一周后的你看的：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# 我要做什么
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;给谁用：我自己（以及和我一样每天 XX 的人）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;解决什么：一句话
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第一版只做：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;明确不做：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;怎么算做完：我能在手机/电脑上 XX，并且 XX
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;「明确不做」那一栏最重要。我当时给第一版写的是：不做节目发现、不做社交、不做推荐流、不做 AI 总结。&lt;/p&gt;
&lt;h2 id=&#34;第三步在-cursor-里跑通第一轮&#34;&gt;第三步：在 Cursor 里跑通第一轮&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;新建一个空文件夹，用 Cursor 打开，先 &lt;code&gt;git init&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;把上面那页说明存成 &lt;code&gt;README.md&lt;/code&gt; 放进去；&lt;/li&gt;
&lt;li&gt;打开 Agent 对话，第一句话别让它直接写代码，让它先出计划：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;读一下 @README.md。先不要写代码。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;告诉我：第一版你打算怎么拆，分几步，每一步做完我怎么验证。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;有不确定的地方先问我。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;看计划，删掉你觉得多余的步骤，再让它&lt;strong&gt;只做第一步&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;你自己跑起来看。对了就 commit，不对就把现象原样告诉它。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一轮一轮这么走。我 76 天提交了 468 个 commit，平均一天 6 个多。小步提交的好处是：Agent 改坏了，你随时能退回上一个好的版本。&lt;/p&gt;
&lt;p&gt;同一件事你反复跟它说了第三遍，就把它写进项目的 Rules 里，别再靠记忆。&lt;/p&gt;
&lt;h2 id=&#34;第四步自己天天用然后砍&#34;&gt;第四步：自己天天用，然后砍&lt;/h2&gt;
&lt;p&gt;能跑起来以后，最重要的事是&lt;strong&gt;自己每天用&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;上架前，我已经连续用了 CastMind 72 天，累计收听约 158 小时。哪些功能每天在用、哪些从来不点，用一周就清楚了。&lt;/p&gt;
&lt;p&gt;AI 的默认倾向是做加法。你让它继续完善，它会给你更多页面、更多代码，但它很少主动说「这个没必要，删掉吧」。这一刀只能你来砍。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;先做一个自己每天离不开的东西，再谈给别人用。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;常见卡点&#34;&gt;常见卡点&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Agent 改着改着，把原来好的地方改坏了。&lt;/strong&gt; 回到上一个 commit，把任务拆得更小再来。一次只交代一件事。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;不知道它写的对不对。&lt;/strong&gt; 让它告诉你怎么验证，最好是一条命令或者一个操作步骤，你自己跑。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;功能越加越多，越做越累。&lt;/strong&gt; 回去看那页说明里的「明确不做」。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;想上架到中国区 App Store。&lt;/strong&gt; 先看&lt;a href=&#34;https://maiyang.me/learn/03-app-store-china-icp-checklist/&#34;&gt;第 03 篇的 ICP 备案清单&lt;/a&gt;，别等被下架才办。&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
