六段骨架:目标 → 环境准备 → 步骤 → 验证 → 设计权衡 → 踩坑记录 → 下一步
目标
把第 12 篇打好的 Agent 项目,推到 GitHub 成为公开仓库------既能作为你简历里"点开就能看"的作品,也能让别人复用你的代码。
一句话价值:写出来的东西不发出来,等于没写。 开源是 Agent 开发者最低成本的个人品牌建设。
背景衔接
第 12 篇把 Agent 装进了 Docker,它现在是一个"自包含、能跑"的项目。本篇给它一个公开地址,让它从"你机器上的文件夹"变成"互联网上谁都能 clone 的工程"。
环境准备
- 第 01 篇已经装好 Git
- 一个 GitHub 账号(网页注册即可)
- 装好 GitHub CLI 更顺手(可选,但推荐):
winget install --id GitHub.cli或官网下载;装完gh auth login登录 - 第 12 篇的
my-agent/项目(含 Dockerfile、.dockerignore、.env)
步骤
① 收尾:先把项目"像样"
开源前补三个文件,没它们仓库看起来很业余:
.gitignore(防密钥和垃圾进仓库,最关键):
.env
venv
.venv
__pycache__
*.pyc
.git
LICENSE:新建一个,MIT 最常用(允许别人随意使用)。内容可在 GitHub 建仓库时勾选生成,或复制标准 MIT 文本,把年份和作者换成你的。
README.md:项目的门面,下面给一个可直接抄的模板:
# my-agent
用 LangGraph 搭的最小 AI Agent:能调工具、记对话、跑在 Docker 里。
## 架构
`用户问题 → agent 节点(调 LLM)→ 按需走 tools 节点 → 回到 agent 汇总 → 结束`
## 用法
```bash
pip install -r requirements.txt
cp .env.example .env # 填你的模型 Key
python app.py
或一键容器化:
docker build -t my-agent:0.1 .
docker run --rm --env-file .env my-agent:0.1
功能
- 工具调用(当前时间 / 计算)
- 多轮记忆
- Docker 部署
许可证
MIT
> 💡 把 `.env` 改名成 `.env.example` 提交(只留 `OPENAI_API_KEY=` 这样的空壳),真实密钥绝不进仓库。读者 clone 后自己填。
### ② 本地初始化并提交
```bash
cd my-agent
git init
git add .
git commit -m "feat: 第一个 LangGraph Agent,支持工具调用与 Docker 部署"
git add .前确认.gitignore已就位,.env不会被加进来- commit message 用"动词开头 + 一句话说明"的风格,别写"update"
③ 创建远程仓库并推送
方式 A:用 GitHub CLI(推荐,一条命令)
gh repo create my-agent --public --source=. --remote=origin --push
这会自动建公开仓库、加 remote、推上去。
方式 B:网页 + 命令
-
在 GitHub 网页点 New repository,名字
my-agent,别勾 "Add a README"(你本地已有) -
本地关联并推送:
git branch -M main
git remote add origin https://github.com/你的用户名/my-agent.git
git push -u origin main
④ 开个 Release(可选但加分)
gh release create v0.1 --title "v0.1 首个可用版本" --notes "支持工具调用与 Docker 部署"
或在网页仓库的 Releases 里点 Draft a new release,打 tag v0.1。
验证
三项全过 = 开源成立:
- 浏览器打开
https://github.com/你的用户名/my-agent,仓库可见、README 正常渲染 - 重新 clone 一份到别处 ,
git clone后docker build+docker run能原样跑通(证明仓库自包含,别人拿来就能用) - 确认
.env/ 密钥不在 仓库文件列表里(在仓库页面搜.env应无结果)
第 2 项最关键:开源的验收标准不是"推上去了",而是"别人 clone 下来能跑"。
设计权衡:CLI(gh)vs 网页
| 维度 | GitHub CLI(gh) | 网页操作 |
|---|---|---|
| 速度 | 一条命令建库+推送 | 多次点击 |
| 自动化 | 可写进脚本 | 手动 |
| 学习成本 | 要记命令 | 0 |
| 适合 | 经常开源、批量操作 | 偶尔一次、不熟悉命令行 |
新手用网页更直观;一旦你要开源多个项目,gh 省下的时间很可观。
踩坑记录
1. 把 .env / 密钥 push 上去了(最高危)
git add . 时忘了 .gitignore,Key 进了历史。修复:立刻去模型平台 revoke 这个 Key (比改仓库更紧急),然后 git filter-repo 或 git rm --cached .env + 强推改写历史。最稳妥是 revoke + 换 Key,历史里的旧 Key 已无效。
2. 中文文件名 / 中文乱码
Windows 上中文提交显示成 \xxx 转义。修复:git config --global core.quotepath false。
3. 默认分支名不一致
旧 Git 默认 master,GitHub 现在用 main,push 时可能冲突。统一 git branch -M main 再推。
4. gh 没登录
gh repo create 报未认证。先 gh auth login 走完浏览器授权。
5. 大文件塞进仓库
把模型权重、数据集 push 上去,仓库几百兆、clone 慢。大文件用 Git LFS 或放对象存储,仓库只留代码。
6. commit message 全是"fix""update"
别人看你的仓库一脸懵。养成"动词 + 说明"习惯(feat/fix/docs/refactor),也是面试时展示工程素养的细节。
下一步
项目开源了,你的 Agent 从"本地练习"变成了"公开作品"。走到这里,你已经完整走完了一条工程化链路。最后一篇做个全局盘点------把整个系列用过的工具按"你要解决什么问题"分类,给你一张选型地图:
→ AI Agent 开发实战(14):AI Agent 开发工具推荐
第 14 篇是收尾,把 Claude Code、DeepSeek、OpenRouter、CCSwitch、Hermes、OpenClaw、LangGraph、MCP、Docker、GitHub 串成一张图,帮你和读者以后不迷路。
系列衔接:09(手写 Agent)→ 10(工具标准化)→ 11(流程编排)→ 12(容器化)→ 13(开源交付)→ 14(全局盘点),实用篇到此闭环。