微软 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基础-3-telegram机器人配置与加入群聊

OpenClaw基础-3-telegram机器人配置与加入群聊 💡 大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AI编程、AI自动化和自媒体。 Openclaw的优势是接入各种聊天工作,在前面的文章里,已经介绍了如何接入飞书。但之前我也提到了,飞书的最大的问题是请求多的限制,以及无法在非认证企业账号下面组建群聊。但这些限制另一个聊天工具可以打破,那就是Telegram,今天就跟大家分享一下,如果在OpenClaw里面接入Telegram。 第一步:Openclaw端配置 通过命令openclaw config,local→channels→telegrams 这里等待输入API Token,接下来我们去Telegram里面获取 第二步:Telegram端配置 1. 1. 在聊天窗口找到BotFather,打开对话与他私聊 2. 3. 然后再输入一个机器人,再输入一个账号名username,这里面要求以Bot或者Bot结尾,这个是全网的id,要 2. /newbot 来创建一个机器人,输入一个名字name

【FPGA】高云FPGA实战:PLL锁相环IP核配置与多时钟域设计

1. 高云FPGA与PLL锁相环基础 在数字电路设计中,时钟信号就像系统的心跳,它决定了各个模块的工作节奏。而PLL(Phase Locked Loop,锁相环)则是这个心跳的精确调节器。高云FPGA内置的PLL IP核能够将输入时钟进行倍频、分频和相位调整,输出多个稳定的时钟信号。 我第一次接触高云FPGA的PLL是在一个需要多时钟域的项目中。当时系统需要同时处理视频数据和传感器数据,视频处理需要100MHz的时钟,而传感器接口只需要10MHz。如果使用外部晶振提供多个时钟源,不仅成本高,还会增加PCB设计的复杂度。这时候PLL的优势就体现出来了——只需一个50MHz的外部晶振,就能通过PLL生成所有需要的时钟。 高云FPGA的PLL IP核主要有以下特点: * 宽频率范围:支持3MHz到500MHz的输入时钟 * 多路输出:最多可输出5路独立时钟 * 精确控制:每路时钟可单独设置分频/倍频系数、占空比和相位偏移 * 低抖动:输出时钟抖动小于100ps,满足高速接口需求 2. 创建PLL IP核的完整流程 2.1 工程准备与环境配置 首先需要确保安装了高云FP

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践 * 0. 前言 * 1. 基于扩散模型的文本生成图像 * 2. 将文本输入编码为嵌入向量 * 3. 条件 UNet 模型中的文本数据融合机制 * 4. 使用 Stable Diffusion 模型生成图像 * 相关链接 0. 前言 在本节中,我们将为扩散模型添加文本控制能力。学习如何通过文字描述来引导图像生成过程,实现从"纯噪声+文本"生成图像,而不仅是从纯噪声生成。 1. 基于扩散模型的文本生成图像 在扩散模型的 UNet 模型训练流程中,我们仅训练模型从含噪图像中预测噪声。为实现文生图功能,需使用以下架构,将文本作为额外输入注入 UNet 模型: 这样的 UNet 模型称为条件 UNet 模型 ,或者更精确地说,是文本条件 UNet

【Agent】Claude code辅助verilog编程

【Agent】Claude code辅助verilog编程

摘要:在 2026 年,硬件描述语言(HDL)的开发门槛正在被 AI 重新定义。本文记录了一次硬核挑战:在不查阅任何寄存器手册、不手画状态转移图的情况下,仅凭 Claude Code 辅助,完成了一个包含 UART 通信、协议解析(FSM)及 PWM 控制的完整 FPGA 模块设计与验证。这是一次关于“AI 辅助芯片设计”的真实压力测试。 目录 1. 引言:Verilog 开发者的“中年危机” 2. 项目挑战:从串口到 LED 的全链路设计 3. 开发实录:Claude Code 的 RTL 设计能力 * 3.1