-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathAgentStudioSimple.java
More file actions
85 lines (76 loc) · 3.02 KB
/
Copy pathAgentStudioSimple.java
File metadata and controls
85 lines (76 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import com.alibaba.dashscope.agentstudio.AgentStudioClient;
import com.alibaba.dashscope.agentstudio.message.ClientEvents;
import com.alibaba.dashscope.agentstudio.message.ContentBlock;
import com.alibaba.dashscope.agentstudio.message.Message;
import com.alibaba.dashscope.agentstudio.model.Agent;
import com.alibaba.dashscope.agentstudio.model.Session;
import com.alibaba.dashscope.agentstudio.param.AgentCreateParam;
import com.alibaba.dashscope.agentstudio.param.SessionCreateParam;
import com.alibaba.dashscope.agentstudio.resource.AgentStudioEventStream;
import java.util.Collections;
/**
* AgentStudio quick start: create agent, session, send message, stream reply.
*
* <p>Prerequisites: set DASHSCOPE_API_KEY env var, and either DASHSCOPE_WORKSPACE env var or pass
* workspace to the constructor.
*
* <pre>
* export DASHSCOPE_API_KEY=sk-xxx
* export DASHSCOPE_WORKSPACE=ws_xxxxxxxxxxxx
* </pre>
*/
public class AgentStudioSimple {
public static void main(String[] args) throws Exception {
// Option 1: apiKey + workspace (production)
AgentStudioClient client = new AgentStudioClient("sk-xxx", "ws_xxxxxxxxxxxx");
// Option 2: all from env vars (DASHSCOPE_API_KEY + DASHSCOPE_WORKSPACE)
// AgentStudioClient client = new AgentStudioClient();
// Option 3: custom base URL
// AgentStudioClient client = AgentStudioClient.builder()
// .apiKey("sk-xxx")
// .baseUrl("https://your-custom-host/api/v1/agentstudio")
// .build();
// 1. Create Agent
Agent agent =
client
.agents()
.create(
AgentCreateParam.builder()
.name("demo-agent")
.model("qwen-plus")
.systemPrompt("你是一个简洁的助手。")
.build());
System.out.println("Agent: " + agent.getId());
// 2. Create Session
Session session =
client.sessions().create(SessionCreateParam.builder().agent(agent.getId()).build());
System.out.println("Session: " + session.getId());
// 3. Send message
client
.sessions()
.events()
.send(session.getId(), Collections.singletonList(ClientEvents.userMessage("你好")));
// 4. Stream reply
try (AgentStudioEventStream stream = client.sessions().events().stream(session.getId())) {
for (Message event : stream) {
if ("message".equals(event.getType()) && event.getContent() != null) {
for (ContentBlock block : event.getContent()) {
if (block instanceof ContentBlock.Text) {
System.out.print(((ContentBlock.Text) block).getText());
}
}
} else if ("session_status".equals(event.getType())) {
Session.StopReason stopReason = event.getStopReason();
if (stopReason != null) {
System.out.println("\nstop_reason: " + stopReason.getType());
}
break;
}
}
}
// Cleanup
client.sessions().delete(session.getId());
client.agents().archive(agent.getId());
client.close();
}
}