Python自动化AI工作流:OpenClaw框架入门与实战指南

用Python打造你的AI自动化流水线:OpenClaw框架入门指南
每天重复执行AI任务是不是很烦?比如定时让AI总结新闻,或者收到邮件后自动分类回复。手动操作太累,写脚本又得从头对接各种API。OpenClaw就是为解决这类问题设计的开源框架,用几行Python代码就能搭建可编程的AI工作流。
为什么选择OpenClaw?
OpenClaw的核心优势是开源可自部署。数据完全留在自己的服务器上,隐私有保障。它支持50多种服务集成(数据库、邮件、Slack等),而且用Python写工作流,学习成本很低。MIT许可证意味着可以自由用于商业项目。
安装与基础配置
首先确保环境有Python 3.8+和pip。安装步骤很简单:
# 创建虚拟环境(推荐)
python -m venv openclaw-env
source openclaw-env/bin/activate # Linux/Mac
# openclaw-env\Scripts\activate # Windows
# 安装OpenClaw
pip install openclaw-framework
# 验证安装
python -c "import openclaw; print(openclaw.__version__)"为什么用虚拟环境? 避免不同项目的依赖包冲突,保持系统Python环境干净。
定义你的第一个工作流
OpenClaw的工作流由触发器和动作组成。先创建一个简单的HTTP触发工作流:收到HTTP请求时,调用AI处理数据。
创建文件 my_first_workflow.py:
from openclaw import Workflow, HttpTrigger, AiAction
import json
# 定义工作流
workflow = Workflow(
name="邮件智能分类器",
description="收到邮件内容后自动判断类别并回复"
)
# 添加HTTP触发器
http_trigger = HttpTrigger(
path="/classify-email", # 访问路径
method="POST" # 只接受POST请求
)
workflow.add_trigger(http_trigger)
# 定义AI动作
ai_action = AiAction(
model="gpt-3.5-turbo", # 可以换成其他模型
prompt_template="""
请分析这封邮件的类别(工作/个人/广告/紧急)并生成简短回复:
邮件内容:{email_content}
返回JSON格式:
{{"category": "类别", "reply": "回复内容"}}
""",
input_mapping={"email_content": "$trigger.body.content"} # 从请求体获取内容
)
workflow.add_action(ai_action)
# 添加响应动作(返回AI结果)
workflow.set_response("$action.ai_action.output")
# 导出工作流配置
if __name__ == "__main__":
workflow.export("email_classifier.json")
print("工作流配置已导出!")为什么这样设计? HTTP触发器让你可以通过API调用工作流,适合集成到现有系统。input_mapping让数据流动更灵活,$trigger.body.content表示从触发请求的body中提取content字段。
启动HTTP服务
现在启动工作流服务:
# 启动工作流引擎(开发模式)
openclaw serve --workflow my_first_workflow.py --port 8080
# 或者直接运行Python文件
python my_first_workflow.py
openclaw serve --config email_classifier.json --port 8080测试一下:
# 用curl测试
curl -X POST http://localhost:8080/classify-email \
-H "Content-Type: application/json" \
-d '{"content": "明天下午3点开会讨论项目进度,请准备相关材料。"}'你应该会看到类似这样的响应:
{
"category": "工作",
"reply": "已记录会议安排,我会准时参加并准备好项目材料。"
}定时执行模式:每日新闻摘要
HTTP触发适合实时任务,但有些任务需要定期执行。比如每天早上8点自动生成新闻摘要。OpenClaw同样支持定时触发器。
创建 daily_news_summary.py:
from openclaw import Workflow, ScheduleTrigger, AiAction, EmailAction
workflow = Workflow(name="每日AI新闻摘要")
# 定时触发:每天早上8点
schedule_trigger = ScheduleTrigger(
cron="0 8 * * *", # cron表达式:每天8:00
timezone="Asia/Shanghai"
)
workflow.add_trigger(schedule_trigger)

# 第一步:抓取新闻(这里用模拟数据)
fetch_action = {
"type": "http_request",
"url": "https://newsapi.org/v2/top-headlines?country=cn&apiKey=YOUR_KEY",
"method": "GET"
}
workflow.add_action(fetch_action)
# 第二步:AI总结新闻
summary_action = AiAction(
model="gpt-4",
prompt_template="""
请用中文总结今天的5条最重要科技新闻,格式:
1. [标题] - 一句话摘要
2. ...
新闻数据:{news_data}
""",
input_mapping={"news_data": "$action.http_request.output"}
)
workflow.add_action(summary_action)
# 第三步:发送邮件
email_action = EmailAction(
to="your-email@example.com",
subject="每日科技新闻摘要 - {date}",
body="$action.ai_action.output",
smtp_config={
"host": "smtp.gmail.com",
"port": 587,
"username": "your-email@gmail.com",
"password": "your-app-password" # 使用应用专用密码
}
)
workflow.add_action(email_action)
# 导出配置
workflow.export("daily_news.json")为什么用cron表达式? 这是定时任务的标准语法,0 8 * * *表示每天第8小时0分钟执行。你可以用 crontab.guru 在线验证表达式。
部署到生产环境
开发测试没问题后,可以部署到服务器。OpenClaw支持多种部署方式:
# 方式1:直接运行(适合测试)
openclaw serve --config daily_news.json --daemon
# 方式2:Docker部署(推荐生产环境)
docker run -d \
--name openclaw-news \
-v $(pwd)/workflows:/app/workflows \
-e OPENCLAW_CONFIG=/app/workflows/daily_news.json \
openclaw/openclaw:latest
# 方式3:systemd服务(Linux服务器)
sudo nano /etc/systemd/system/openclaw-news.servicesystemd服务文件示例:
[Unit]
Description=OpenClaw News Summary Service
After=network.target
[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/workflows
ExecStart=/path/to/openclaw-env/bin/openclaw serve --config daily_news.json
Restart=always
[Install]
WantedBy=multi-user.target然后启动服务:
sudo systemctl daemon-reload
sudo systemctl enable openclaw-news
sudo systemctl start openclaw-news
sudo systemctl status openclaw-news验证与调试
工作流运行后,怎么确认它正常工作?OpenClaw提供了日志和监控:
# 查看实时日志
openclaw logs --follow --name email_classifier
# 查看执行历史
openclaw history --workflow daily_news --limit 10
# 手动触发定时任务(测试用)
openclaw trigger --workflow daily_news --manual如果遇到问题,常见原因:
- API密钥错误:检查模型API密钥是否有效
- 网络问题:确保服务器能访问外部API
- 权限问题:检查文件权限和SMTP密码
下一步学习
现在你已经掌握了OpenClaw的基础用法。接下来可以探索:
- 条件分支:根据AI返回结果执行不同动作
- 错误处理:添加重试机制和失败通知
- 数据库集成:将工作流结果存储到PostgreSQL/MySQL
- 多模型对比:同时调用GPT-4和Claude,对比结果
推荐阅读:
最好的学习方式是动手尝试。从解决自己的一个小需求开始,比如自动备份聊天记录,或者监控网站状态。OpenClaw的开源特性意味着你可以随时查看源码、提交改进建议,甚至开发自己的插件。
遇到问题? 龙虾社区有很多开发者分享经验,欢迎在 yitb.com/community 提问交流。