接口定义位于
提供的服务 | IAgent 方法名 | 描述 |
|---|---|---|
| POST /v1/aiagent/agents/:agentId/send-message | sendMessage | 与智能体进行对话(流式) |
| GET /v1/aiagent/agents/:agentId/messages | getHistoryMessages | 查询历史对话消息 |
| GET /v1/aiagent/agents/:agentId/info | getAgentInfo | 查询智能体基础信息 |
| GET /v1/aiagent/agents/:agentId/conversations | getConversations | 查询会话列表 |
| GET /v1/aiagent/agents/:agentId/query-tasks/:task_id (可带 task_id ) | queryTasks | 查询异步任务(如图片/视频生成)状态 |
| POST /v1/aiagent/agents/:agentId/upload-file | uploadFile | 上传文件用于知识库或多模态 |
实际路由解析由
@vectorx/agent-runtime内部的AgentRuntime负责,你只需要实现IAgent接口即可。
export interface IAgent {
/**
* 发送消息
* POST /v1/aiagent/agents/:agentId/send-message
*/
sendMessage(input: SendMessageInput): Promise<any>;
/**
* 获取聊天记录
* GET /v1/aiagent/agents/:agentId/messages
*/
getHistoryMessages?(input: GetHistoryMessagesParams): Promise<GetHistoryMessagesResponse>;
/**
* 获取 Agent 信息
* GET /v1/aiagent/agents/:agentId/info
*/
getAgentInfo?(): Promise<GetAgentInfoResponse>;
/**
* 获取会话列表
* GET /v1/aiagent/agents/:agentId/conversations
*/
getConversations?(): Promise<GetConversationsResponse>;
/**
* 查询异步任务状态
* GET /v1/aiagent/agents/:agentId/query-tasks/:task_id
*/
queryTasks?(task_id?: string): Promise<QueryTasksResponse>;
/**
* 上传文件
* POST /v1/aiagent/agents/:agentId/upload-file
*/
uploadFile?(input: UploadFileInput): Promise<UploadFileResponse>;
}
相关参数与返回值类型定义于
在小红书开放平台智能体的推荐实践中,通常不会直接从零实现
你只需要将自己实现的 Agent 实例传给
下面是一个最简化的服务端实现示例,展示了如何结合
import OpenAI from "openai";
import { AgentRuntime } from "@vectorx/agent-runtime";
import type { RcbContext } from "@vectorx/functions-framework";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
class MyAgent extends AgentRuntime {
// 实现 IAgent.sendMessage
async sendMessage(input) {
try {
const model = this.createModel('qwen-plus')
const modelResponse = await model.streamText({
messages: [
{
role: 'system',
content: systemPrompt
},
{
role: 'user',
content: {
type: 'text',
content: JSON.stringify(input.msg)
}
}
]
})
for await (const chunk of modelResponse) {
this.sseSender.send({ data: chunk });
}
this.sseSender.end();
} catch (e) {
console.log("开发者 agent 捕获到错误", e);
}
}
}
// 函数/服务入口
export async function main(event: unknown, context: RcbContext) {
const agent = new MyAgent(context);
return AgentDriver.run(event, context, agent);
}
在小红书开放平台智能体接入场景中,平台侧会将 HTTP 请求(或网关事件)转交给上面的