从 Chatbot 到 Agent
传统的 Copilot 就像一个实习生,你给它一个指令,它执行一个动作。而新一代的 AI 助手更像是一个成熟的合作伙伴。它具备了 感知(Perception)、规划(Planning) 和 执行(Execution) 的完整闭环。
- 感知:读取邮件、文档、代码仓库。
- 规划:拆解任务,决定先做什么后做什么。
- 执行:调用工具,生成内容,发送反馈。
这种能力的背后,是大模型的进化。开发者看中的是它在长文本处理和逻辑推理上的优势。
实战:用 Kotlin 手搓一个 AI Agent
虽然部分闭源产品无法直接复用,但我们可以利用大模型 API 来模拟它的工作流。为了保证调用的稳定性和成本控制,推荐使用兼容主流 SDK 的第三方 API 服务。
为什么选择通用 API?
构建 Agent 需要频繁调用大模型进行推理。通用 API 服务通常具备以下特点:
- 接口兼容:可以直接使用标准的 OpenAI SDK,迁移成本几乎为零。
- 模型全:支持多种主流模型,让你在同一个接口下体验不同模型的优势。
- 专线优化:Agent 的运行依赖于多次连续的 API 调用,任何一次失败都可能导致任务中断。稳定的网络环境能有效保障复杂任务链的执行。
代码实现
下面是一个简单的 Kotlin 示例,展示如何通过 API 调用大模型来模拟一个简单的任务规划 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
// 配置 API Key
const val API_KEY = "YOUR_API_KEY"
// 替换为你的 API 地址
const val BASE_URL = "https://api.openai.com/v1/chat/completions"
val client = OkHttpClient.Builder()
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.build()
fun main() {
val task = "帮我分析一下项目代码,并写一份重构计划"
println("收到任务:")
plan = think(task)
println()
}
: String {
prompt = .trimIndent()
jsonBody = JSONObject().apply {
put(, )
put(, org.json.JSONArray().put(JSONObject().apply {
put(, )
put(, prompt)
}))
}.toString()
request = Request.Builder()
.url(BASE_URL)
.addHeader(, )
.addHeader(, )
.post(jsonBody.toRequestBody(.toMediaType()))
.build()
client.newCall(request).execute().use { response ->
(!response.isSuccessful) RuntimeException()
responseBody = response.body?.string()
jsonResponse = JSONObject(responseBody)
jsonResponse.getJSONArray().getJSONObject()
.getJSONObject().getString()
}
}


