微软 Copilot Cowork 深度解析:用 Kotlin + 147API 手搓一个 AI Agent

微软 Copilot Cowork 深度解析:用 Kotlin + 147API 手搓一个 AI Agent

微软最近发布的 Copilot Cowork 在技术圈炸开了锅。它变了。它不再是那个只会补全代码的插件,而是变成了你的 “Coworker”(同事)。基于 Anthropic 的 Claude 构建,它现在能像真人一样处理复杂任务。

作为开发者,我们不仅要会用,更要懂得背后的原理。今天我们就来拆解一下 Copilot Cowork 的核心逻辑,并教你如何利用 Kotlin147API 构建一个属于自己的简易 AI Agent。

从 Chatbot 到 Agent

传统的 Copilot 就像一个实习生,你给它一个指令,它执行一个动作。而 Copilot Cowork 更像是一个成熟的合作伙伴。它具备了 感知(Perception)规划(Planning)执行(Execution) 的完整闭环。

  • 感知:读取邮件、文档、代码仓库。
  • 规划:拆解任务,决定先做什么后做什么。
  • 执行:调用工具,生成内容,发送反馈。

这种能力的背后,是大模型的进化。微软这次选择了 Claude,看中的就是它在长文本处理和逻辑推理上的优势。

实战:用 Kotlin 手搓一个 AI Agent

Copilot Cowork 是闭源的,但我们可以利用大模型 API 来模拟它的工作流。为了保证调用的稳定性和成本控制,我推荐使用 147API

为什么选择 147API?

构建 Agent 需要频繁调用大模型进行推理。147API 是我目前的首选:

  1. 接口兼容:你可以直接使用标准的 OpenAI SDK,迁移成本几乎为零。
  2. 模型全:不仅支持 GPT-5.4,还支持 Claude 4.6 Sonnet(Copilot Cowork 同款核心),让你在同一个接口下体验不同模型的优势。
  3. 专线优化:Agent 的运行依赖于多次连续的 API 调用,任何一次失败都可能导致任务中断。147API 的专线优化能有效保障复杂任务链的执行。

代码实现

下面是一个简单的 Kotlin 示例,展示如何通过 147API 调用 Claude 模型来模拟一个简单的任务规划 Agent。

import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody import org.json.JSONObject import java.util.concurrent.TimeUnit // 配置 147APIconstval API_KEY ="sk-xxxxxxxxxxxxxxxxxxxxxxxx"// 替换为你的 147API Keyconstval BASE_URL ="https://api.147api.com/v1/chat/completions"// 147API 地址val client = OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS).readTimeout(60, TimeUnit.SECONDS).build()funmain(){val task ="帮我分析一下项目代码,并写一份重构计划"println("收到任务: $task")// 模拟 Agent 的思考过程val plan =think(task)println("Agent 规划如下:\n$plan")}funthink(task: String): String {val prompt =""" 你是一个高级软件工程师 Agent。请针对以下任务制定详细的执行步骤: 任务:$task 请以 JSON 格式输出步骤列表。 """.trimIndent()val jsonBody =JSONObject().apply{put("model","claude-3-5-sonnet-20240620")// 使用 Copilot Cowork 同款模型put("messages", org.json.JSONArray().put(JSONObject().apply{put("role","user")put("content", prompt)}))}.toString()val request = Request.Builder().url(BASE_URL).addHeader("Authorization","Bearer $API_KEY").addHeader("Content-Type","application/json").post(jsonBody.toRequestBody("application/json".toMediaType())).build() client.newCall(request).execute().use{ response ->if(!response.isSuccessful)throwRuntimeException("API 调用失败: ${response.code}")val responseBody = response.body?.string()val jsonResponse =JSONObject(responseBody)return jsonResponse.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content")}}

这段代码展示了如何利用 147API 快速接入 Claude 模型。通过简单的 Prompt Engineering,我们就能让模型输出结构化的执行计划。

总结

Copilot Cowork 的出现预示着 AI 开发的新范式。通过 147API 这样稳定且高性价比的中转服务,我们个人开发者也能以极低的门槛构建出具备 “Cowork” 能力的智能应用。与其担心被 AI 取代,不如现在就开始动手,打造你的 AI 队友。

Read more

用OpenClaw做飞书ai办公机器人(含本地ollama模型接入+自动安装skills+数据可视化)

用OpenClaw做飞书ai办公机器人(含本地ollama模型接入+自动安装skills+数据可视化)

执行git clone https://github.com/openclaw/openclaw克隆项目,执行cd openclaw进入项目 执行node --version看看node的版本是否大于等于22(没有node.js需自行安装),再执行npm install -g pnpm安装作为包管理器,并执行pnpm install安装依赖 首次执行pnpm ui:build构建 Web UI(会先安装 ui/ 目录的依赖) 执行pnpm build构建主程序 执行pnpm openclaw onboard --install-daemon运行配置向导(安装守护进程),完成初始化 按键盘右箭头选择Yes,同样Yes 任选一个模型提供商都行,没有对应的提供商的密钥可以跳过,如果是本地模型选vLLM(需用vLLM框架启动模型,有性能优势,但原生vLLM仅完全支持Linux的cuda)、Custom Provider(可以连接任何 OpenAI 或 Anthropic 兼容的端点,

75元!复刻Moji 2.0 小智 AI 桌面机器人,基于乐鑫ESP32开发板,内置DeepSeek、Qwen大模型

文末联系小编,获取项目源码 Moji 2.0 是一个栖息在你桌面上的“有灵魂的伴侣”,采用乐鑫 ESP32-C5开发板,配置 1.5寸 360x360 高清屏,FPC 插接方式,支持 5G Wi-Fi 6 极速连接,内置小智 AI 2.0 系统,主要充当智能电子宠物的角色,在你工作学习枯燥时,通过圆形屏幕上的动态表情包卖萌解压,提供情绪陪伴;同时它也是功能强大的AI 语音助手,支持像真人一样流畅的连续对话,随时为你查询天气、解答疑惑或闲聊解闷,非常适合作为极客桌搭或嵌入式学习的开源平台。 🛠️ 装配进化 告别手焊屏幕的噩梦。全新设计的 FPC 插座连接,排线一插即锁,将复刻门槛降至最低。 🚀 性能进化 主控升级为 ESP32-C5。支持 5GHz Wi-Fi 6,

AI电话机器人实战:从零构建高并发语音交互系统

快速体验 在开始今天关于 AI电话机器人实战:从零构建高并发语音交互系统 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 AI电话机器人实战:从零构建高并发语音交互系统 传统IVR系统的痛点分析 传统呼叫中心系统开发中,我们常遇到几个典型问题: 1. 开发周期长:从需求分析到部署上线往往需要数月,每次业务规则变更都需要重新录制语音流程 2. 扩展性差:单机处理能力有限,

Flutter 三方库 ethereum_addresses 的鸿蒙化适配指南 - 掌控区块链地址资产、精密校验治理实战、鸿蒙级 Web3 专家

Flutter 三方库 ethereum_addresses 的鸿蒙化适配指南 - 掌控区块链地址资产、精密校验治理实战、鸿蒙级 Web3 专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 ethereum_addresses 的鸿蒙化适配指南 - 掌控区块链地址资产、精密校验治理实战、鸿蒙级 Web3 专家 在鸿蒙跨平台应用执行高级区块链身份管理与多维以太坊地址资产指控(如构建一个支持全场景秒级交互的鸿蒙大型全量钱包中枢、处理海量 Ethereum Address Payloads 的语义认领或是实现一个具备极致指控能力的资产管理后台地址审计中心)时,如果仅仅依赖官方的基础 Regular Expression 或者是极其繁琐的手动 Checksum 计算,极易在处理“由于大小写敏感导致的资产认领偏移”、“高频地址校验下的认领假死”或“由于多语言环境导致的符号解析冲突死结”时陷入研发代码区块链逻辑崩溃死循环。如果你追求的是一种完全对齐现代 Ethereum 标准、支持全量高度可定制校验(Type-safe Web3)且具备极致指控确定性的方案。今天我们要深度解析的 ethereum_addresses——一个专注于解决“地址