跳到主要内容

智能体 API

GeniSpace 提供两种智能体调用协议,以满足不同集成场景的需求:

  1. OpenAI Chat Completions 兼容 API - 完全兼容 OpenAI 聊天完成标准,便于快速迁移
  2. Agent Execution Protocol - GeniSpace 自定义协议,提供更丰富的参数配置和智能体特性

OpenAI Chat Completions 兼容 API

端点

POST /v1/agents/{agentId}/chat

描述

完全兼容 OpenAI Chat Completions API 规范,允许开发者使用现有的 OpenAI SDK 和代码直接与 GeniSpace 智能体交互。

请求参数

参数类型必填描述
messagesarray对话消息数组,格式与 OpenAI API 相同
modelstring模型名称(可选,智能体会使用配置的默认模型)
temperaturenumber控制输出随机性,范围 0-2,默认 0.7
max_tokensinteger最大输出令牌数,默认 2000
top_pnumber核心采样参数,范围 0-1,默认 1.0
frequency_penaltynumber频率惩罚,范围 -2.0 到 2.0,默认 0
presence_penaltynumber存在惩罚,范围 -2.0 到 2.0,默认 0
streamboolean是否流式返回结果,默认 false

消息格式

{
"role": "system|user|assistant",
"content": "消息内容"
}

请求示例

非流式请求

curl -X POST "https://api.genitask.cn/v1/agents/agt_123456/chat" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "你是一个专业的数据分析师"
},
{
"role": "user",
"content": "请分析这个月的销售数据趋势"
}
],
"temperature": 0.7,
"max_tokens": 1500
}'

流式请求

curl -X POST "https://api.genitask.cn/v1/agents/agt_123456/chat" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "user",
"content": "请帮我写一份市场分析报告"
}
],
"stream": true
}'

响应格式

非流式响应

{
"id": "chat_123456789",
"object": "chat.completion",
"created": 1710835200,
"model": "gpt-4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "基于您提供的要求,我将为您分析这个月的销售数据趋势..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 42,
"completion_tokens": 256,
"total_tokens": 298
}
}

流式响应

data: {"id":"chat_123456789","object":"chat.completion.chunk","created":1710835200,"model":"gpt-4","choices":[{"index":0,"delta":{"role":"assistant","content":"基于"},"finish_reason":null}]}

data: {"id":"chat_123456789","object":"chat.completion.chunk","created":1710835200,"model":"gpt-4","choices":[{"index":0,"delta":{"content":"您提供的"},"finish_reason":null}]}

data: {"id":"chat_123456789","object":"chat.completion.chunk","created":1710835200,"model":"gpt-4","choices":[{"index":0,"delta":{"content":"要求"},"finish_reason":null}]}

data: [DONE]

Agent Execution Protocol

端点

POST /v1/agents/{agentId}/execute

描述

GeniSpace 自定义的智能体执行协议,提供更灵活的参数配置和智能体特有功能,如记忆管理、上下文保持等。

请求参数

参数类型必填描述
inputsobject智能体输入参数,包含查询内容和功能开关
settingsobject模型参数设置

inputs 参数

inputs 对象包含智能体所需的输入参数和功能配置:

字段类型必填描述
querystring用户查询内容
memoryboolean是否启用记忆功能,默认 false
contextboolean是否启用知识库上下文检索,默认 false
internetboolean是否启用互联网搜索,默认 false
{
"inputs": {
"query": "用户查询内容",
"memory": true,
"context": true,
"internet": false
}
}

settings 参数

{
"settings": {
"temperature": 0.7,
"maxTokens": 2000,
"topP": 1.0,
"presencePenalty": 0,
"frequencyPenalty": 0,
"model": "gpt-4" // 覆盖智能体默认模型
}
}

请求示例

基础查询

curl -X POST "https://api.genitask.cn/v1/agents/agt_123456/execute" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"query": "你好",
"memory": true,
"context": false,
"internet": false
},
"settings": {
"temperature": 0.7,
"maxTokens": 2000
}
}'

启用所有功能

curl -X POST "https://api.genitask.cn/v1/agents/agt_123456/execute" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"query": "帮我分析客户满意度数据",
"memory": true,
"context": true,
"internet": true
},
"settings": {
"temperature": 0.3,
"maxTokens": 1500
}
}'

响应格式

成功响应

{
"answer": "您好!很高兴为您提供帮助。不过,您能否先具体说明一下您想要咨询的方面呢?比如是关于孩子的学习习惯培养、社交技能提升还是其他方面的教育问题?这样我可以更准确地为您提供一个包含理论依据、实施步骤和预期效果的完整方案。",
"agent_id": "1299af56-ca52-4498-a0fd-b3da8ad77daf",
"execution_time": 6.454147815704346,
"token_usage": {
"prompt_tokens": 168,
"completion_tokens": 85,
"total_tokens": 253
}
}

响应字段说明

字段类型描述
answerstring智能体生成的回答内容
agent_idstring执行的智能体 ID
execution_timenumber执行耗时(秒)
token_usageobjectToken 使用统计
token_usage.prompt_tokensinteger输入 Token 数量
token_usage.completion_tokensinteger输出 Token 数量
token_usage.total_tokensinteger总 Token 数量

错误处理

两种 API 都遵循相同的错误处理格式:

{
"error": {
"code": "agent_not_found",
"message": "指定的智能体不存在",
"details": {
"agent_id": "agt_123456"
}
}
}

常见错误代码

错误代码描述
agent_not_found智能体不存在
agent_inactive智能体已停用
invalid_input输入参数无效
quota_exceeded配额超出限制
model_unavailable指定模型不可用
context_too_long上下文长度超出限制

最佳实践

选择合适的协议

  • 使用 Chat Completions API 当:

    • 需要快速迁移现有 OpenAI 代码
    • 构建简单的聊天机器人
    • 不需要智能体的高级功能(记忆、知识库、网络搜索)
    • 需要完全兼容 OpenAI SDK
  • 使用 Agent Execution Protocol 当:

    • 需要利用智能体的记忆功能
    • 需要集成知识库进行上下文检索
    • 需要网络搜索能力
    • 需要更详细的执行统计信息(执行时间、Token 使用等)
    • 构建企业级智能应用

性能优化

  • 根据需求选择性启用功能:memorycontextinternet
  • 合理设置 maxTokens 以控制响应长度和成本
  • 根据任务复杂度调整 temperature 参数
  • 定期清理不必要的记忆数据以提升检索效率

安全考虑

  • 始终验证用户输入,避免注入攻击
  • 在生产环境中限制智能体的权限范围
  • 定期审查智能体的执行日志
  • 对敏感数据进行适当的脱敏处理

SDK 支持

Python SDK

from genitask import Client

client = Client(api_key="YOUR_API_KEY")

# OpenAI 兼容方式
response = client.agents.chat(
agent_id="agt_123456",
messages=[
{"role": "user", "content": "分析销售数据"}
],
temperature=0.7
)

# Agent Execution Protocol
response = client.agents.execute(
agent_id="agt_123456",
inputs={
"query": "分析销售数据",
"memory": True,
"context": True,
"internet": False
},
settings={
"temperature": 0.7,
"maxTokens": 2000
}
)

JavaScript SDK

import { GeniSpaceClient } from '@genitask/sdk';

const client = new GeniSpaceClient({ apiKey: 'YOUR_API_KEY' });

// OpenAI 兼容方式
const chatResponse = await client.agents.chat('agt_123456', {
messages: [
{ role: 'user', content: '分析销售数据' }
],
temperature: 0.7
});

// Agent Execution Protocol
const execResponse = await client.agents.execute('agt_123456', {
inputs: {
query: '分析销售数据',
memory: true,
context: true,
internet: false
},
settings: {
temperature: 0.7,
maxTokens: 2000
}
});

相关文档