<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: James Mok</title>
    <description>The latest articles on DEV Community by James Mok (@james_mok_6344ea05f17f101).</description>
    <link>https://dev.to/james_mok_6344ea05f17f101</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3761306%2Fe53289f3-ee0b-4b6a-ba6f-c675f344ff35.png</url>
      <title>DEV Community: James Mok</title>
      <link>https://dev.to/james_mok_6344ea05f17f101</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/james_mok_6344ea05f17f101"/>
    <language>en</language>
    <item>
      <title>本地AI编程助手完全指南：零成本打造私有化代码助手</title>
      <dc:creator>James Mok</dc:creator>
      <pubDate>Tue, 10 Feb 2026 04:12:49 +0000</pubDate>
      <link>https://dev.to/james_mok_6344ea05f17f101/ben-di-aibian-cheng-zhu-shou-wan-quan-zhi-nan-ling-cheng-ben-da-zao-si-you-hua-dai-ma-zhu-shou-9gp</link>
      <guid>https://dev.to/james_mok_6344ea05f17f101/ben-di-aibian-cheng-zhu-shou-wan-quan-zhi-nan-ling-cheng-ben-da-zao-si-you-hua-dai-ma-zhu-shou-9gp</guid>
      <description>&lt;h1&gt;
  
  
  本地AI编程助手完全指南：零成本打造私有化代码助手
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;不花一分钱，不泄露一行代码，拥有媲美GitHub Copilot的编程体验&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  痛点：云端的AI编程助手真的安全吗？
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot每月$10，Cursor每月$20，Codeium看似免费但会上传代码分析……&lt;/p&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;为什么我要为每个AI工具付月费？&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2025年，本地AI编程助手已不再是玩具级存在。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;总成本：$0（如果你有8GB以上内存）&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  核心组件
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;组件&lt;/th&gt;
&lt;th&gt;选型&lt;/th&gt;
&lt;th&gt;理由&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;本地模型&lt;/td&gt;
&lt;td&gt;Qwen2.5-Coder-7B&lt;/td&gt;
&lt;td&gt;4GB，编码能力媲美GPT-3.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;推理引擎&lt;/td&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;td&gt;一行命令部署，OpenAI兼容API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;编辑器集成&lt;/td&gt;
&lt;td&gt;Continue + VS Code&lt;/td&gt;
&lt;td&gt;开源，支持任意API端点&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  快速开始
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 安装Ollama
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. 下载模型
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull qwen2.5-coder:7b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. 安装Continue插件（VS Code搜索安装）
&lt;/h3&gt;

&lt;h3&gt;
  
  
  4. 配置config.json
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;models:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;title:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Qwen&lt;/span&gt;&lt;span class="mf"&gt;2.5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Coder&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;provider:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;ollama&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;model:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;qwen&lt;/span&gt;&lt;span class="mf"&gt;2.5&lt;/span&gt;&lt;span class="err"&gt;-coder:&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="err"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;apiBase:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;http://localhost:&lt;/span&gt;&lt;span class="mi"&gt;11434&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. 启动服务
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;完成！现在享受免费的AI编程助手。&lt;/p&gt;

&lt;h2&gt;
  
  
  为什么选择本地？
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;指标&lt;/th&gt;
&lt;th&gt;本地&lt;/th&gt;
&lt;th&gt;云端&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;隐私&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;成本&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;$10-20/月&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;离线可用&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  完整配置和进阶技巧
&lt;/h2&gt;

&lt;p&gt;详见GitHub仓库（文章完整版）。&lt;/p&gt;




&lt;p&gt;&lt;em&gt;你的代码，值得被认真对待。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>ollama</category>
      <category>opensource</category>
    </item>
    <item>
      <title>MCP协议入门：为什么这是2025年最重要的AI技能？</title>
      <dc:creator>James Mok</dc:creator>
      <pubDate>Mon, 09 Feb 2026 07:39:20 +0000</pubDate>
      <link>https://dev.to/james_mok_6344ea05f17f101/mcpxie-yi-ru-men-wei-shi-yao-zhe-shi-2025nian-zui-zhong-yao-de-aiji-neng--10he</link>
      <guid>https://dev.to/james_mok_6344ea05f17f101/mcpxie-yi-ru-men-wei-shi-yao-zhe-shi-2025nian-zui-zhong-yao-de-aiji-neng--10he</guid>
      <description>&lt;h1&gt;
  
  
  MCP协议入门：为什么这是2025年最重要的AI技能？
&lt;/h1&gt;

&lt;h2&gt;
  
  
  引言：开发者的新痛点
&lt;/h2&gt;

&lt;p&gt;如果你是一名开发者，可能已经经历过这样的场景：&lt;/p&gt;

&lt;p&gt;你想让AI助手连接公司的内部数据库，却发现每个AI工具都有自己的插件体系；你想让AI读取你的代码仓库进行分析，却需要为不同的AI平台写不同的适配代码；你希望AI能调用你的API完成复杂任务，却发现集成工作比业务逻辑本身还要复杂……&lt;/p&gt;

&lt;p&gt;这不是你的问题，而是整个AI生态的结构性问题。&lt;/p&gt;

&lt;p&gt;在AI能力飞速发展的今天，模型本身的"智商"已经不再是瓶颈。真正的瓶颈在于：&lt;strong&gt;如何让AI无缝、安全、高效地连接到我们的数据、工具和工作流&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;这就是MCP协议诞生的背景。&lt;/p&gt;




&lt;h2&gt;
  
  
  MCP是什么？AI世界的"USB-C接口"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;MCP（Model Context Protocol，模型上下文协议）&lt;/strong&gt; 是由Anthropic于2024年底推出的开放协议，旨在标准化AI模型与外部数据源、工具之间的通信方式。&lt;/p&gt;

&lt;p&gt;简单来说，MCP就像是AI世界的&lt;strong&gt;USB-C接口&lt;/strong&gt;——无论你使用什么设备（AI模型），只要支持这个接口，就能连接各种外设（数据源和工具），而无需关心底层的实现细节。&lt;/p&gt;

&lt;h3&gt;
  
  
  核心架构：Client-Server模型
&lt;/h3&gt;

&lt;p&gt;MCP采用经典的客户端-服务器架构：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Host&lt;/strong&gt;：运行AI模型的应用（如Claude Desktop、Cursor、OpenClaw等）&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Client&lt;/strong&gt;：在Host内部，负责与Server建立和维护连接&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt;：提供特定功能的轻量级程序，暴露数据源和工具能力&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这种设计的美妙之处在于&lt;strong&gt;解耦&lt;/strong&gt;：Server开发者专注于业务逻辑的实现，而无需关心用户具体使用哪个AI平台；Host开发者则可以接入无限扩展的能力生态。&lt;/p&gt;

&lt;h3&gt;
  
  
  三大核心能力
&lt;/h3&gt;

&lt;p&gt;MCP协议定义了三种核心交互方式：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Resources（资源）&lt;/strong&gt;：让AI读取结构化数据，如文件、数据库记录、API响应等&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools（工具）&lt;/strong&gt;：让AI调用函数完成操作，如发送邮件、创建日历事件、执行代码等&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompts（提示）&lt;/strong&gt;：预设的交互模板，帮助用户更高效地与AI协作&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  实际应用场景：MCP正在改变什么？
&lt;/h2&gt;

&lt;h3&gt;
  
  
  场景一：智能代码助手
&lt;/h3&gt;

&lt;p&gt;想象你在使用Cursor或VS Code编写代码时，AI不仅能理解当前文件，还能：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;查询你的内部API文档数据库&lt;/li&gt;
&lt;li&gt;读取团队的知识库获取项目背景&lt;/li&gt;
&lt;li&gt;直接在你的测试环境中运行代码并反馈结果&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;这一切通过MCP Server实现，无需将敏感代码上传到云端模型。&lt;/p&gt;

&lt;h3&gt;
  
  
  场景二：企业数据分析
&lt;/h3&gt;

&lt;p&gt;企业的数据往往分散在各个系统中：CRM、ERP、数据仓库……&lt;/p&gt;

&lt;p&gt;通过MCP，你可以为每个系统构建一个Server，让AI助手能够：&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;最关键的是，&lt;strong&gt;数据始终保留在本地&lt;/strong&gt;，AI只获得必要的访问权限。&lt;/p&gt;

&lt;h3&gt;
  
  
  场景三：个人知识管理
&lt;/h3&gt;

&lt;p&gt;对于个人用户，MCP同样充满想象空间：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;连接你的Obsidian笔记库，让AI基于你的知识回答问题&lt;/li&gt;
&lt;li&gt;接入邮件和日历，智能安排日程&lt;/li&gt;
&lt;li&gt;读取浏览器历史，帮你总结今天的学习内容&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;每个人的AI助手都可以是真正个性化的，而不是基于通用训练数据的"平均水平"。&lt;/p&gt;




&lt;h2&gt;
  
  
  如何开始学习MCP？
&lt;/h2&gt;

&lt;h3&gt;
  
  
  第一步：体验现成的Server
&lt;/h3&gt;

&lt;p&gt;MCP社区已经涌现了大量开源Server，涵盖各种常见服务：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;文件系统&lt;/strong&gt;：本地文件读写&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;数据库&lt;/strong&gt;：PostgreSQL、SQLite、MongoDB等&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;开发工具&lt;/strong&gt;：GitHub、GitLab、Docker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;生产力工具&lt;/strong&gt;：Slack、Notion、Google Workspace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;推荐从官方的&lt;a href="https://github.com/modelcontextprotocol/servers" rel="noopener noreferrer"&gt;Server示例&lt;/a&gt;开始，亲自体验MCP的能力边界。&lt;/p&gt;

&lt;h3&gt;
  
  
  第二步：开发你的第一个Server
&lt;/h3&gt;

&lt;p&gt;如果你是一名开发者，最快上手的方式是构建一个属于自己的MCP Server。&lt;/p&gt;

&lt;p&gt;MCP官方提供了多语言SDK：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python：&lt;code&gt;mcp&lt;/code&gt; 包&lt;/li&gt;
&lt;li&gt;TypeScript：&lt;code&gt;@modelcontextprotocol/sdk&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Java/Kotlin/Rust等社区实现也在快速发展中&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;一个最简单的Server只需要几十行代码：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.server&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Server&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.types&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TextContent&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-server&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.tool&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;hello_world&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;你好，&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;！这是来自MCP Server的问候。&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  第三步：理解协议设计哲学
&lt;/h3&gt;

&lt;p&gt;真正掌握MCP，不只是会用SDK，更要理解其设计背后的思想：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;安全性&lt;/strong&gt;：Server决定暴露什么，Host决定使用什么，用户始终掌控&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;可组合性&lt;/strong&gt;：小型的、专注的Server比大而全的集成更有价值&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;渐进式采用&lt;/strong&gt;：不需要推倒重来，可以从一个简单功能开始逐步扩展&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  结语：不要错过这次生态机遇
&lt;/h2&gt;

&lt;p&gt;回顾技术发展史，每一次协议的统一都带来了巨大的生态机遇：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP协议统一了互联网通信，催生了万维网&lt;/li&gt;
&lt;li&gt;REST API标准化了服务交互，推动了云计算时代&lt;/li&gt;
&lt;li&gt;USB-C统一了设备接口，简化了消费者的数字生活&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;MCP正在做同样的事情，但这一次发生在AI时代。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;对于开发者而言，掌握MCP意味着：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;你的工具可以被任何AI平台使用，而不是被某个厂商绑定&lt;/li&gt;
&lt;li&gt;你可以专注于解决具体问题，而不是反复编写集成代码&lt;/li&gt;
&lt;li&gt;你站在了AI生态爆发的早期，有机会定义这个领域的最佳实践&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2025年，AI的竞争焦点已经从"模型能力"转向"模型连接能力"。谁能更好地连接数据、工具和场景，谁就能提供更智能的体验。&lt;/p&gt;

&lt;p&gt;MCP正是这场变革的核心基础设施。&lt;/p&gt;

&lt;p&gt;现在就开始学习和实践MCP吧——这很可能是你2025年最重要的技术投资。&lt;/p&gt;




&lt;p&gt;&lt;em&gt;参考资料：Model Context Protocol官方文档、Anthropic技术博客&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>developer</category>
    </item>
    <item>
      <title>零成本搭建AI交易机器人：GitHub Actions + Alpaca实战指南</title>
      <dc:creator>James Mok</dc:creator>
      <pubDate>Mon, 09 Feb 2026 07:36:39 +0000</pubDate>
      <link>https://dev.to/james_mok_6344ea05f17f101/ling-cheng-ben-da-jian-aijiao-yi-ji-qi-ren-github-actions-alpacashi-zhan-zhi-nan-5cc0</link>
      <guid>https://dev.to/james_mok_6344ea05f17f101/ling-cheng-ben-da-jian-aijiao-yi-ji-qi-ren-github-actions-alpacashi-zhan-zhi-nan-5cc0</guid>
      <description>&lt;h1&gt;
  
  
  零成本搭建AI交易机器人：GitHub Actions + Alpaca实战指南
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;用300行Python代码，打造你的24小时自动交易员&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  问题引入：散户投资者的三大痛点
&lt;/h2&gt;

&lt;p&gt;作为一个有编程基础的散户投资者，你是否经历过这些场景？&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;场景一：深夜盯盘的疲惫&lt;/strong&gt;&lt;br&gt;
美股开盘时，你正准备睡觉。看到持仓股票突然大跌，犹豫要不要止损——等你纠结完，已经跌去5%。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;场景二：纪律执行的困难&lt;/strong&gt;&lt;br&gt;
你制定了一套定投策略：每月1日买入500美元VOO。结果一到执行日就犹豫："这个月涨得有点高，要不要等回调？"——然后完美错过入场时机。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;场景三：信息过载的焦虑&lt;/strong&gt;&lt;br&gt;
关注了30个财经博主，加了8个投资群，每天被各种"内幕消息"轰炸。反而越来越不敢下手，越研究越迷茫。&lt;/p&gt;

&lt;p&gt;如果你点头了，那么自动化交易可能是你的解药。&lt;/p&gt;


&lt;h2&gt;
  
  
  方案概述：为什么选GitHub Actions + Alpaca？
&lt;/h2&gt;

&lt;p&gt;在2025年的今天，散户做自动化交易有三大免费神器：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;组件&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;th&gt;成本&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alpaca&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;零佣金券商，提供API接口&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GitHub Actions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;云端定时任务调度&lt;/td&gt;
&lt;td&gt;$0 (每月2000分钟)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;策略逻辑编写&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;这套组合的核心优势：&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;零成本&lt;/strong&gt;：从数据获取到交易执行，全程免费&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;零运维&lt;/strong&gt;：GitHub Actions托管，你只管写代码&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;零情绪&lt;/strong&gt;：代码不会恐慌，也不会贪婪&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;低风险起步&lt;/strong&gt;：支持Paper Trading（模拟盘），用假钱练手&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  详细步骤：手把手搭建你的第一个交易机器人
&lt;/h2&gt;
&lt;h3&gt;
  
  
  第一步：注册Alpaca账号（5分钟）
&lt;/h3&gt;

&lt;p&gt;访问 &lt;a href="https://alpaca.markets" rel="noopener noreferrer"&gt;alpaca.markets&lt;/a&gt; 注册账号。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;关键操作：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;注册后先启用 &lt;strong&gt;Paper Trading&lt;/strong&gt;（模拟交易）模式&lt;/li&gt;
&lt;li&gt;进入 Dashboard → API Keys，生成你的API Key和Secret Key&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;建议&lt;/strong&gt;：先用Paper Trading跑1-3个月，确认策略有效后再切实盘。&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  第二步：创建GitHub仓库（3分钟）
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;登录GitHub，创建新仓库，命名为 &lt;code&gt;my-trading-bot&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;设置为Private（毕竟涉及你的交易策略）&lt;/li&gt;
&lt;li&gt;克隆到本地&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;
  
  
  第三步：编写核心交易逻辑（20分钟）
&lt;/h3&gt;

&lt;p&gt;创建 &lt;code&gt;trading_bot.py&lt;/code&gt;：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;alpaca_trade_api&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;tradeapi&lt;/span&gt;

&lt;span class="c1"&gt;# 从环境变量读取API密钥
&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ALPACA_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;API_SECRET&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ALPACA_SECRET_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;BASE_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://paper-api.alpaca.markets&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;# 策略配置
&lt;/span&gt;&lt;span class="n"&gt;CONFIG&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;symbol&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;VOO&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;invest_amount&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;day_of_month&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_api&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;tradeapi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;REST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;API_SECRET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BASE_URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;v2&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;should_trade_today&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;today&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;today&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;CONFIG&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;day_of_month&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute_trade&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;symbol&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CONFIG&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;symbol&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="c1"&gt;# 获取最新价格并计算购买数量
&lt;/span&gt;    &lt;span class="n"&gt;barset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_latest_bar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;barset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;
    &lt;span class="n"&gt;qty&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CONFIG&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;invest_amount&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;qty&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;资金不足购买1股 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

    &lt;span class="c1"&gt;# 提交市价单
&lt;/span&gt;    &lt;span class="n"&gt;order&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;submit_order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;side&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;buy&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;market&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;time_in_force&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;day&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ 买入 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; 股 &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; @ $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;price&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;symbol&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;qty&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;price&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🤖 交易机器人启动 - &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;should_trade_today&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;今天不是交易日，跳过&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;

    &lt;span class="n"&gt;api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_api&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_account&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;💰 账户现金: $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cash&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;trade_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;execute_trade&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;trade_info&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📊 交易完成！&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  第四步：设置GitHub Actions自动运行
&lt;/h3&gt;

&lt;p&gt;创建 &lt;code&gt;.github/workflows/trading-bot.yml&lt;/code&gt;：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Trading Bot&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;14&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;1&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;  &lt;span class="c1"&gt;# 每月1日 UTC 14:00&lt;/span&gt;
  &lt;span class="na"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;  &lt;span class="c1"&gt;# 允许手动触发&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;trade&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-python@v5&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;python-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.11'&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pip install alpaca-trade-api&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python trading_bot.py&lt;/span&gt;
      &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;ALPACA_API_KEY&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.ALPACA_API_KEY }}&lt;/span&gt;
        &lt;span class="na"&gt;ALPACA_SECRET_KEY&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.ALPACA_SECRET_KEY }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  第五步：配置GitHub Secrets
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;进入GitHub仓库 → Settings → Secrets → Actions&lt;/li&gt;
&lt;li&gt;添加：

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ALPACA_API_KEY&lt;/code&gt;：你的Alpaca API Key&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ALPACA_SECRET_KEY&lt;/code&gt;：你的Alpaca Secret Key&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  第六步：测试运行
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;提交代码到GitHub&lt;/li&gt;
&lt;li&gt;进入Actions标签页&lt;/li&gt;
&lt;li&gt;点击 "Run workflow" 手动触发&lt;/li&gt;
&lt;li&gt;查看日志，确认交易成功&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;看到类似输出？恭喜你，机器人上线成功！&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🤖 交易机器人启动 - 2025-02-01 14:00:05
💰 账户现金: $100000.00
✅ 买入 1 股 VOO @ $532.45
📊 交易完成！
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  风险提示：自动化交易不是印钞机
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ⚠️ 技术风险
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;API故障、网络延迟、代码Bug&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;缓解&lt;/strong&gt;：设置单日最大交易金额，添加重复订单检测&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚠️ 市场风险
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;策略失效、黑天鹅事件、流动性风险&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;缓解&lt;/strong&gt;：只投资指数基金（VOO/VTI），不要All-in&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚠️ 心理风险
&lt;/h3&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;h2&gt;
  
  
  进阶玩法
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 添加技术指标过滤
&lt;/h3&gt;

&lt;p&gt;只在价格高于20日均线时买入&lt;/p&gt;

&lt;h3&gt;
  
  
  2. 集成邮件通知
&lt;/h3&gt;

&lt;p&gt;每次交易后发送报告到邮箱&lt;/p&gt;

&lt;h3&gt;
  
  
  3. 多标的策略
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;PORTFOLIO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;VOO&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="c1"&gt;# 50% 标普500
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;VXUS&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# 30% 国际股票
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;BND&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="c1"&gt;# 20% 债券
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  结语：自动化是纪律的延伸
&lt;/h2&gt;

&lt;p&gt;搭建这个交易机器人，最大的收获不是"躺着赚钱"——那是不现实的期待。&lt;/p&gt;

&lt;p&gt;真正的价值在于：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;建立纪律&lt;/strong&gt;：代码无情地执行你的策略，不受恐惧和贪婪干扰&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;节省时间&lt;/strong&gt;：把盯盘的时间用来学习、工作、陪伴家人&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;积累经验&lt;/strong&gt;：通过实践理解自动化系统的设计与风险&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;记住，&lt;strong&gt;最好的交易策略往往是最简单的策略&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;现在，fork这个仓库，修改配置，启动你的第一个自动化交易项目吧。&lt;/p&gt;




&lt;p&gt;&lt;em&gt;本文仅供技术学习参考，不构成任何投资建议。自动化交易存在风险，请谨慎操作。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>trading</category>
      <category>python</category>
      <category>github</category>
    </item>
    <item>
      <title>2025年最值得学习的5个AI自动化技能</title>
      <dc:creator>James Mok</dc:creator>
      <pubDate>Mon, 09 Feb 2026 07:33:11 +0000</pubDate>
      <link>https://dev.to/james_mok_6344ea05f17f101/2025nian-zui-zhi-de-xue-xi-de-5ge-aizi-dong-hua-ji-neng-16mi</link>
      <guid>https://dev.to/james_mok_6344ea05f17f101/2025nian-zui-zhi-de-xue-xi-de-5ge-aizi-dong-hua-ji-neng-16mi</guid>
      <description>&lt;h1&gt;
  
  
  2025年最值得学习的5个AI自动化技能
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;别让AI取代你，让AI为你打工&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;还记得去年这个时候，我们还在讨论"AI会不会抢走我们的工作"。现在答案已经很明显了：&lt;strong&gt;不会取代你，但会用AI的人正在取代不会用的人&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;2025年，AI自动化已经从"黑科技"变成了"基础技能"。根据市场数据，全球AI Agent市场规模已突破54亿美元，年增长率高达25-30%。&lt;/p&gt;

&lt;p&gt;今天，我为你精选了2025年最具价值的&lt;strong&gt;5个AI自动化技能&lt;/strong&gt;。&lt;/p&gt;

&lt;h2&gt;
  
  
  技能一：工作流自动化（Workflow Automation）
&lt;/h2&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;ul&gt;
&lt;li&gt;
&lt;strong&gt;n8n&lt;/strong&gt;：开源神器，支持自托管（完全免费！），500+集成&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make&lt;/strong&gt;：可视化工作流，3000+应用连接&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zapier&lt;/strong&gt;：企业级首选，5000+应用&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;据报告统计，一个中等复杂度的自动化工作流，平均每月可节省20-40小时人工。&lt;/p&gt;

&lt;h2&gt;
  
  
  技能二：AI内容创作流水线
&lt;/h2&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;ul&gt;
&lt;li&gt;
&lt;strong&gt;文本&lt;/strong&gt;：ChatGPT/Claude API（$0.01/千词）&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;图像&lt;/strong&gt;：Midjourney/DALL-E&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;视频&lt;/strong&gt;：Synthesia（数字人视频）&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;语音&lt;/strong&gt;：ElevenLabs（10K字符/月免费）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;有创作者用这套组合做SEO内容工厂：AI生成文章 → 自动配图 → 发布到网站 → 推送到社媒。全程自动化，利润率60-80%。&lt;/p&gt;

&lt;h2&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;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Yahoo Finance API&lt;/strong&gt;：完全免费&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alpaca API&lt;/strong&gt;：零佣金交易，API免费&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions&lt;/strong&gt;：免费定时任务&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;你可以用GitHub Actions + Python + Alpaca，搭建一个&lt;strong&gt;零成本&lt;/strong&gt;的自动交易机器人。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;风险提示：&lt;/strong&gt; 自动化交易 ≠ 稳赚不赔。建议先用模拟盘测试3个月以上。&lt;/p&gt;

&lt;h2&gt;
  
  
  技能四：电商自动化（Dropshipping &amp;amp; 套利）
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;核心价值：让AI当你的24小时选品员&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;自动化工具矩阵：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sell The Trend&lt;/strong&gt;：AI驱动的产品研究&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easync/AutoDS&lt;/strong&gt;：库存同步、订单处理自动化&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flair/PagePilot&lt;/strong&gt;：产品描述优化&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;报告中提到的eBay AI套利案例，月收益可达$2000-10000。&lt;/p&gt;

&lt;h2&gt;
  
  
  技能五：MCP协议与AI Agent开发
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;核心价值：站在生态系统的顶端&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;什么是MCP？&lt;/strong&gt;&lt;br&gt;
Model Context Protocol，Anthropic开源、OpenAI于2025年正式采用的行业标准。它是AI助手与外部世界连接的"通用插头"。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;为什么重要：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;统一的API标准，一次学习，处处可用&lt;/li&gt;
&lt;li&gt;数千个MCP服务器即将上线&lt;/li&gt;
&lt;li&gt;会MCP = 会连接AI到任何系统&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  结语
&lt;/h2&gt;

&lt;p&gt;2025年，AI自动化技能就像20年前的Office技能——不会致命，但会极大地限制你的天花板。&lt;/p&gt;

&lt;p&gt;好消息是，这些技能的学习门槛从未如此低。n8n免费、GitHub Actions免费、Yahoo Finance API免费、Alpaca免费。你需要投入的主要是&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;/p&gt;




&lt;p&gt;&lt;em&gt;投资有风险，本文不构成任何投资建议。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
