开源Coze实测搭建Agent应用的保姆教程来了
7 月 26 日,Coze开源核心产品 Coze Studio & Coze Loop 的消息火了, 在 GitHub 已经斩获19k+ Star 。

Coze Studio :低代码可视化 Agent 工厂,支持工作流编排与知识库管理
Coze Loop :生产级观测平台,实时追踪 Agent 调用链与性能指标
这次Coze 开源对开发者利好的是采用了 Apache 2.0 许可 :
无限制商用 :Apache 2.0 允许用户将 Coze Studio 和 Coze Loop 用于商业项目,无需向字节跳动支付费用或分成。
用开源版 Coze,复刻一个更聪明的滴答清单
这几天在研究 Coze Studio 和 Coze Loop ,本想只是动手试试火山引擎的部署流程,没想到顺手就搭出了一个挺实用的 Agent 应用 :
一个「AI 任务播报员」,替我从滴答清单中自动提取当天最重要的任务,用自然语言生成摘要,9 点准时发到飞书群里提醒我开工。
对我来说,它已经不是一个被动记录任务的工具,而是一个主动推我去做事的助理。
重点是,整个流程我只用了开源版 Coze,没写几行代码。下面我拆解一下它是怎么做的,以及为什么选了 Coze 开源版。
为什么不是直接用滴答清单,而是“复刻”它?
滴答清单本身很好用,但它主要还是一个记录工具。如果任务多了,它的提醒方式很难形成“主动干预”:
今天应该做哪几件最重要的事?它不会自动筛选。
如何提醒我去做?靠的是我自己去点开列表看。
能不能把任务摘要直接发到飞书?目前官方没有。
这些能力其实 AI 很擅长,但要打通任务系统、定时触发、生成文本,还得考虑数据私有化。如果用外部服务,很容易牵涉到权限暴露或隐私风险。
所以我决定:干脆自己搭一个。
01 Demo 效果预览:一个主动执行的AI任务助手
每天早上 9 点,我的飞书群会收到这样一条自动播报:

背后的流程全自动执行,数据只从我自己的滴答清单拉取,模型分析后自动生成总结。
这个 Demo 本质上实现了三件事:
1. 智能筛选 :从任务中提取“今天&高优先级”的事项
2. 自然语言总结 :用 LLM 输出几十字中文摘要
3. 主动推送 :通过飞书机器人提醒我,完全无感操作
02 Coze 开源版 + 火山引擎一键部署
整个系统我用了两个核心组件:
Coze Studio
火山引擎一键部署
过去开源项目的本地部署通常涉及 Docker 环境配置、依赖安装和网络调试,过程耗时且易出错。火山引擎针对 Coze Studio 和 Coze Loop 提供了官方的一键自动化部署方案,大幅简化了部署流程。
一键部署地址:
https://www.volcengine.com/activity/dev-coze-studio
访问入口: 打开上述链接

页面下滑点击 「立即部署」。

再跳转页面,输入登录邮箱

完成支付: 确认订单并支付(平台自动完成后续所有操作,授权、开通ECS(云服务器)服务、配置环境、拉取镜像、启动服务……)。
获取访问地址: 部署成功后,页面将直接提供 Coze Studio 的公网访问地址。

登录 Coze Studio:
打开获取到的公网地址。
使用前面填写邮箱和密码(邮箱一致)进行注册/登录(首次登录选择“注册”)。

进入工作台: 登录成功,即可进入您专属的 Coze Studio 后台工作空间。

这是目前国内最适合部署和体验Coze开源版的云。可以支持以下的功能:
零配置 : 自动化完成 ECS 实例开通、环境配置、镜像拉取和服务启动,开发者无需手动干预。
快速启动 : 分钟级完成部署,立即可用。
弹性伸缩 : 资源支持按需弹性扩容。测试完成后可快速销毁实例,避免资源闲置浪费(按小时计费)。
官方优化 : 作为字节跳动旗下云服务,火山引擎对 Coze 开源组件提供深度优化支持。
生产部署 : 据官方信息,未来将支持更灵活的生产级部署架构(如独立数据库、中间件),便于支撑企业级应用。
完整的保姆级搭建教程
Coze Studio 的工作流长这样:
1. HTTP 请求节点 :拉取滴答清单的任务数据
2. 代码节点 :过滤今日未完成任务,按优先级排序
3. 大模型节点 :调用豆包模型生成任务摘要
4. 飞书推送节点 :把摘要消息推送到指定群组

1. 创建工作流
这里和我们日常使用的Coze 一样,先打开工作空间的“资源库”,在右边新建工作流

创建完成后,自动跳转到如下

2. 获取 滴答清单 Access Token和项目 ID
参考:https://developer.dida365.com/docs#/openapi
2.1 授权 URL,获取code
首先让我们打开“ https://developer.dida365.com/manage ”创建一个“Manage Apps”

URL 不填写,其他自定义

重定向 URL 填写“ https://example.com ”,保存

保存好了,让我们打开找到“Client ID”
“Client ID”的值替换下面代码块中“YOUR_CLIENT_ID”
“state=123”的 123替换为“Name”,比如“state=Coze-cs”
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

2.2 用 code 换取 Access Token
拼接字符串
将 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”后,让我们继续下一步

2.3 获取项目列表
在我们 HTTP 节点,点击“导入 cURL”,记得把上文的“access_token”替换一下
curl -X GET "https://api.dida365.com/open/v1/project" -H "Authorization: Bearer 7eae2693-7299-4590-89aa-0e8c1690992d"

然后点击试运行,在输出的结果中找到我们清单的项目,保存 ID“6891ac31e4b02778a09964ee”

2.4 获取某个项目中的任务
把下面的代码块中的 ID 替换为刚才获取的 ID,,点击试运行
https://api.dida365.com/open/v1/project/6891ac31e4b02778a09964ee/data

3. 格式化滴答清单内容
复制下面代码到 Coze 代码节点的 IDE 中
import jsonfrom typing import Any, Dict, Listasync 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}
修改输入、输出变量
input ——String——链接 HTTP 的body
tasks ——Array<Object>

4. 获取当前时间
复制下面代码到 Coze 代码节点的 IDE 中
import asynciofrom datetime import datetime, timezone, timedeltaasync 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 ——String

5. 大模型节点
新建大模型节点

修改提示词、输入
今天是 {{time}},以下是滴答清单中今天的任务:{{tasks}}请用简洁的中文总结今天需要完成的事情,按优先级排序。

好的,做完之后链接闭环

6. 运行效果截图
不需要输入内容,试运行输出:
作为一个开发者,我在这次尝试中体验到了 Coze 开源带来的几个优势:
流程可视化 :像搭积木一样拖节点,数据流、模型调用、HTTP 请求都能串起来。
自定义扩展 :所有逻辑都在我控制下,要接哪个平台、加什么字段都很灵活。
私有部署 :配合火山引擎一键部署,环境预配置好,隐私数据自己托管。
模型灵活接入 :我用了豆包模型,响应速度快,多模态理解也强,生成效果很满意。
写在最后:开源带来的不仅是自由,更是起点
以前想搭一个自动播报任务的助手,意味着要从零写完后端逻辑、调度系统、模型集成,甚至部署上线都要一整套手动配置。但现在,只用开源 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


共有 0 条评论