原创 张浩远 2025-08-07 22:01 浙江
Datawhale干货
作者:张浩远,Datawhale开源贡献者
Datawhale干货
作者:张浩远,Datawhale开源贡献者
🔧 Coze Studio是一款低代码可视化Agent工厂,支持工作流编排与知识库管理,让开发者轻松创建AI应用。它采用拖拽式界面,无需编写代码即可实现复杂功能,并提供多种节点类型,如HTTP请求、代码执行、大模型调用等,满足不同需求。
📊 Coze Loop是一个生产级观测平台,实时追踪Agent调用链与性能指标,帮助开发者监控和优化AI应用。它提供丰富的可视化图表和报表,方便开发者了解应用运行状态,并及时发现和解决问题。
🚀 Coze开源版采用Apache 2.0许可,允许用户将Coze Studio和Coze Loop用于商业项目,无需支付费用或分成。这使得开发者可以自由地使用Coze开源版进行创新和创业,推动AI技术的发展。
🔗 火山引擎为Coze开源版提供一键自动化部署方案,简化了部署流程,让开发者无需手动配置环境,即可快速启动AI应用。火山引擎还提供弹性伸缩、按需计费等服务,帮助开发者降低成本,提高效率。
原创 张浩远 2025-08-07 22:01 浙江
Datawhale干货
作者:张浩远,Datawhale开源贡献者
7 月 26 日,Coze开源核心产品 Coze Studio & Coze Loop 的消息火了,在GitHub已经斩获19k+ Star。
这次Coze 开源对开发者利好的是采用了 Apache 2.0 许可:
这几天在研究 Coze Studio 和 Coze Loop,本想只是动手试试火山引擎的部署流程,没想到顺手就搭出了一个挺实用的 Agent 应用:
一个「AI 任务播报员」,替我从滴答清单中自动提取当天最重要的任务,用自然语言生成摘要,9 点准时发到飞书群里提醒我开工。
对我来说,它已经不是一个被动记录任务的工具,而是一个主动推我去做事的助理。
重点是,整个流程我只用了开源版 Coze,没写几行代码。下面我拆解一下它是怎么做的,以及为什么选了 Coze 开源版。
为什么不是直接用滴答清单,而是“复刻”它?
滴答清单本身很好用,但它主要还是一个记录工具。如果任务多了,它的提醒方式很难形成“主动干预”:
今天应该做哪几件最重要的事?它不会自动筛选。
如何提醒我去做?靠的是我自己去点开列表看。
能不能把任务摘要直接发到飞书?目前官方没有。
这些能力其实 AI 很擅长,但要打通任务系统、定时触发、生成文本,还得考虑数据私有化。如果用外部服务,很容易牵涉到权限暴露或隐私风险。
所以我决定:干脆自己搭一个。
01 Demo 效果预览:一个主动执行的AI任务助手
每天早上 9 点,我的飞书群会收到这样一条自动播报:
背后的流程全自动执行,数据只从我自己的滴答清单拉取,模型分析后自动生成总结。
这个 Demo 本质上实现了三件事:
1. 智能筛选:从任务中提取“今天&高优先级”的事项
2. 自然语言总结:用 LLM 输出几十字中文摘要
3. 主动推送:通过飞书机器人提醒我,完全无感操作
整个系统我用了两个核心组件:
过去开源项目的本地部署通常涉及 Docker 环境配置、依赖安装和网络调试,过程耗时且易出错。火山引擎针对 Coze Studio 和 Coze Loop 提供了官方的一键自动化部署方案,大幅简化了部署流程。
一键部署地址:
https://www.volcengine.com/activity/dev-coze-studio
访问入口: 打开上述链接
页面下滑点击 「立即部署」。
再跳转页面,输入登录邮箱
完成支付: 确认订单并支付(平台自动完成后续所有操作,授权、开通ECS(云服务器)服务、配置环境、拉取镜像、启动服务……)。
获取访问地址: 部署成功后,页面将直接提供 Coze Studio 的公网访问地址。
登录 Coze Studio:
进入工作台: 登录成功,即可进入您专属的 Coze Studio 后台工作空间。
这是目前国内最适合部署和体验Coze开源版的云。可以支持以下的功能:
Coze Studio 的工作流长这样:
1. HTTP 请求节点:拉取滴答清单的任务数据
2. 代码节点:过滤今日未完成任务,按优先级排序
3. 大模型节点:调用豆包模型生成任务摘要
4. 飞书推送节点:把摘要消息推送到指定群组
这里和我们日常使用的Coze 一样,先打开工作空间的“资源库”,在右边新建工作流
创建完成后,自动跳转到如下
首先让我们打开“https://developer.dida365.com/manage”创建一个“Manage Apps”
URL 不填写,其他自定义
重定向 URL 填写“https://example.com”,保存
保存好了,让我们打开找到“Client ID”
https://dida365.com/oauth/authorize?client_id=YOUR_CLIENT_ID&scope=tasks:read&response_type=code&redirect_uri=https://example.com&state=123
替换后,如下跳转认证
点击允许
到这里我们就获取了“code”,在下面这个例子中code=lt481B
拼接字符串
将 client_id 和 client_secret 拼接,中间用冒号(:)分隔,比如:
bv90T3y3Z9siJH9vBG:nC1*T#ouw)v5T3Y@3D#J2ytG)#omRYY)
将上述字符串进行 Base64 编码。你可以使用在线工具(如 Base64 Encoder)或编程语言来完成这一步,输入后点击编码即可:
在我们工作流页面新建HTTP 节点,点击“导入 cURL”
复制下面代码块到“导入 cURL”的编辑页面
把刚才获得的编码“YnY5MFQzeTNaOXNpSkg5dkJHOm5DMSpUI291dyl2NVQzWUAzRCNKMnl0Rykjb21SWVkp”替换下面“编码”,上面获取的“code”替换下面的“代码”
curl -X POST https://dida365.com/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: Basic 编码" \
-d "grant_type=authorization_code&code=代码&redirect_uri=https://example.com"
导入之后试运行,返回 200 代表正常
这里我的code超时了,重新获取了一遍
在这次返回的输出中,找到“access_token”的值“7eae2693-7299-4590-89aa-0e8c1690992d”后,让我们继续下一步
在我们 HTTP 节点,点击“导入 cURL”,记得把上文的“access_token”替换一下
curl -X GET "https://api.dida365.com/open/v1/project" \
-H "Authorization: Bearer 7eae2693-7299-4590-89aa-0e8c1690992d"
然后点击试运行,在输出的结果中找到我们清单的项目,保存 ID“6891ac31e4b02778a09964ee”
把下面的代码块中的 ID 替换为刚才获取的 ID,,点击试运行
https://api.dida365.com/open/v1/project/6891ac31e4b02778a09964ee/data
复制下面代码到 Coze 代码节点的 IDE 中
import json
from typing import Any, Dict, List
async def main(args) -> Dict[str, Any]:
"""从输入参数提取任务关键字段"""
# 获取输入参数
params = args.params
input_data = params.get('input', '')
# 准备空任务列表作为默认结果
extracted_tasks: List[Dict[str, Any]] = []
try:
# 解析输入的JSON字符串
input_obj = json.loads(input_data)
# 提取任务数组
tasks = input_obj.get('tasks', [])
# 提取每个任务的指定字段
for task in tasks:
extracted = {
"title": task.get("title", ""),
"content": task.get("content", ""),
"startDate": task.get("startDate", ""),
"dueDate": task.get("dueDate", ""),
"priority": task.get("priority", -1)
}
extracted_tasks.append(extracted)
except json.JSONDecodeError as e:
print(f"JSON解析错误: {e}")
except Exception as e:
print(f"处理任务时出错: {e}")
# 构建返回对象
return {"tasks": extracted_tasks}
修改输入、输出变量
复制下面代码到 Coze 代码节点的 IDE 中
import asyncio
from datetime import datetime, timezone, timedelta
async def main(args) -> dict:
# 获取当前UTC时间并转换为北京时间 (UTC+8)
utc_now = datetime.now(timezone.utc)
beijing_tz = timezone(timedelta(hours=8))
beijing_now = utc_now.astimezone(beijing_tz)
# 格式化日期组件
year = beijing_now.year
month = str(beijing_now.month).zfill(2)
day = str(beijing_now.day).zfill(2)
# 构建 ISO 8601 格式的日期字符串
date_string = f"{year}-{month}-{day}"
# 返回北京时间结果
return {"time": date_string}
修改输出变量
新建大模型节点
修改提示词、输入
今天是 {{time}},以下是滴答清单中今天的任务:
{{tasks}}
请用简洁的中文总结今天需要完成的事情,按优先级排序。
好的,做完之后链接闭环
不需要输入内容,试运行输出:
作为一个开发者,我在这次尝试中体验到了 Coze 开源带来的几个优势:
以前想搭一个自动播报任务的助手,意味着要从零写完后端逻辑、调度系统、模型集成,甚至部署上线都要一整套手动配置。但现在,只用开源 Coze 搭配火山引擎云服务,整个链路几乎可以拖拉拽完成,代码量也压缩到极小。这不仅降低了 Agent 应用的门槛,也让更多非 AI 背景的开发者能加入其中,做出真正实用的小应用。
Coze 开源版本身足够灵活,能轻松集成外部模型服务,而火山引擎围绕 Coze 开源版所提供的云资源、部署工具和开发支持,也进一步降低了实践门槛。此外,像 Responses API 和模型托管等服务,也为后续扩展更复杂的智能体能力打下了基础。
对开发者来说,这次开源带来的不只是“自由改造”的空间,更是一次“轻量试错”的机会。用很低的成本,就可以跑通一个实际落地的 AI Agent。不再局限于实验室,也不再只是大厂内部工具,而是让每一个开发者都能用得起、跑得起、做得出。
这是技术普惠真正的样子:让更多人参与到智能体时代的建设里来。
仓库地址和一键部署入口都放在文末👇
Coze Studio(Agent 开发平台):https://github.com/coze-dev/coze-studio
火山引擎一键部署:https://www.volcengine.com/activity/dev-coze-studio
AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。
鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑