Agent 管ç
èª v5.0.0 èµ·æ°å¢æ¤æ¨¡åã
Agent æ¯æä¸¤ç§åºå±é¨ç½²ç±»åï¼
- SCFï¼äºå½æ°ï¼ï¼è½»é级ãæé计费ï¼éåä½å¹¶ååºæ¯
- TCBRï¼äºæç®¡ï¼ï¼å®¹å¨åï¼éåé«å¹¶åæéè¦èªå®ä¹è¿è¡ç¯å¢çåºæ¯
å建 Agentâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼å¨å½åç¯å¢ä¸å建ä¸ä¸ªåºäº SCFï¼äºå½æ°ï¼ç Agent
æ¥å£å£°æï¼app.agent.createAgent(params): Promise<ICreateAgentResponse>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| Name | æ¯ | String | Agent åç§° |
| Runtime | æ¯ | RuntimeVersion | è¿è¡æ¶çæ¬ï¼è§ä¸æ¹æä¸¾è¡¨ |
| AgentId | å¦ | String | Agent IDï¼ä¸ä¼ åèªå¨çæ |
| envVariables | å¦ | Record<string,string> | ç¯å¢åéé®å¼å¯¹ |
| Timeout | å¦ | Number | è¶ æ¶æ¶é´ï¼ç§ï¼ï¼é»è®¤ 7200 |
| MemorySize | å¦ | Number | å å大å°ï¼MBï¼ï¼é»è®¤ 128ï¼å¯é 64 æ 128~3072ï¼128 é¶æ¢¯ï¼ |
| InstallDependency | å¦ | Boolean | æ¯å¦èªå¨å®è£
ä¾èµï¼é»è®¤ false |
| SessionConfig | å¦ | ISessionConfig | ä¼è¯é ç½®ï¼è§ä¸æ¹è¯´æ |
| cwd | å¦ | String | æ¬å°ä»£ç ç®å½ï¼ä¸ ZipFile äºéä¸ |
| ignore | å¦ | String | String[] | æå
æ¶å¿½ç¥çæä»¶ globï¼ä»
cwd æ¹å¼ææï¼ |
| deployMode | å¦ | 'zip' | 'cos' | ä¸ä¼ æ¹å¼ï¼é»è®¤ 'zip'ï¼å¤§æä»¶æ¨è 'cos' |
| ZipFile | å¦ | String | Base64 ç¼ç ç ZIP æä»¶å
容ï¼ä¸ cwd äºéä¸ |
| CosBucketRegion | å¦ | String | COS Bucket åºåï¼ä» ç´æ¥ä¸ä¼ æ¶ä½¿ç¨ï¼ |
| TempCosObjectName | å¦ | String | COS 临æ¶å¯¹è±¡åç§°ï¼ä» ç´æ¥ä¸ä¼ æ¶ä½¿ç¨ï¼ |
RuntimeVersion æä¸¾
| å¼ | 说æ |
|---|---|
Nodejs24.11 | Node.js 24.11ï¼å ¬æµä¸ï¼ |
Nodejs22.21 | Node.js 22.21ï¼å ¬æµä¸ï¼ |
Nodejs20.19 | Node.js 20.19 |
Nodejs18.15 | Node.js 18.15 |
Nodejs16.13 | Node.js 16.13 |
Python3.11 | Python 3.11 |
Python3.10 | Python 3.10 |
Python3.9 | Python 3.9 |
Python3.7 | Python 3.7 |
Php8.0 | PHP 8.0 |
Php7.4 | PHP 7.4 |
Go1 | Go 1.x |
Java11 | Java 11 |
宿´çè¿è¡ç¯å¢è¯´æï¼è¯·åé è¿è¡ç¯å¢æ¯æã
ISessionConfig
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| SessionSource | å¦ | String | ä¼è¯æ¥æºï¼'HEADER'ï¼é»è®¤ï¼ã'COOKIE'ã'QUERY_STRING' |
| SessionName | å¦ | String | ä¼è¯åç§°ï¼5~40 å符ï¼åæ¯å¼å¤´ï¼é»è®¤ 'X-Session-Id' |
| MaximumConcurrencySessionPerInstance | å¦ | Number | åå®ä¾å¹¶åä¼è¯æ°ï¼1~100ï¼é»è®¤ 1 |
| MaximumTTLInSeconds | å¦ | Number | ä¼è¯æé¿çå½å¨æï¼ç§ï¼ï¼é»è®¤ 21600 |
| MaximumIdleTimeInSeconds | å¦ | Number | ä¼è¯æé¿ç©ºé²æ¶é´ï¼ç§ï¼ï¼é»è®¤ 1800 |
| MaxConcurrency | å¦ | Number | åå®ä¾æå¤§å¹¶åæ°ï¼1~100ï¼é»è®¤ 50 |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| AgentId | String | å建ç Agent ID |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
4. 示ä¾ä»£ç â
import CloudBase from "@cloudbase/manager-node";
const app = CloudBase.init({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
async function main() {
// æ¹å¼ä¸ï¼éè¿æ¬å°ä»£ç ç®å½å建
const res = await app.agent.createAgent({
Name: "my-agent",
Runtime: "Nodejs18.15",
cwd: "/path/to/agent/code",
InstallDependency: true,
envVariables: {
OPENAI_API_KEY: "sk-xxx",
},
});
console.log("Agent ID:", res.AgentId);
}
main();
æ¥è¯¢ Agent å表â
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ¥è¯¢å½åç¯å¢ä¸ç Agent å表
æ¥å£å£°æï¼app.agent.describeAgentList(params?): Promise<IDescribeAgentListResponse>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| PageSize | å¦ | Number | æ¯é¡µè¿åæ°éï¼é»è®¤ 20 |
| PageNumber | å¦ | Number | 页ç ï¼é»è®¤ 1 |
| AgentId | å¦ | String | æå® Agent IDï¼ç¨äºæ¥è¯¢åä¸ªï¼ |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| AgentList | Array<IAgentInfo> | Agent å表 |
| Total | Number | Agent æ»æ° |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
IAgentInfo
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| AgentId | String | Agent ID |
| Name | String | Agent åç§° |
| AgentType | String | Agent ç±»åï¼scf æ tcbr |
| Introduction | String | ç®ä» |
| Avatar | String | 头å URL |
| Tags | String[] | æ ç¾å表 |
| CreateTime | String | å建æ¶é´ |
| UpdateTime | String | æ´æ°æ¶é´ |
| Status | String | ç¶æ |
| ServiceId | String | åºå±æå¡ ID |
4. 示ä¾ä»£ç â
async function main() {
const { AgentList, Total } = await app.agent.describeAgentList({
PageSize: 10,
});
console.log(`å
± ${Total} 个 Agent`);
AgentList.forEach((a) => console.log(a.AgentId, a.Name, a.AgentType));
}
æ¥è¯¢ Agent 详æ â
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ¥è¯¢å个 Agent 详æ ï¼å¹¶æ£æ¥åºå±èµæºï¼äºå½æ° / äºæç®¡ï¼æ¯å¦å°±ç»ªå¯ç¨
æ¥å£å£°æï¼app.agent.describeAgent(agentId): Promise<IDescribeAgentResponse>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| agentId | æ¯ | String | Agent ID |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| AgentInfo | IAgentInfo | Agent åºæ¬ä¿¡æ¯ï¼ä¸å卿¶ä¸º null |
| IsReady | Boolean | Agent æ¯å¦å·²å°±ç»ªå¯è°ç¨ |
| NotReadyReason | String | ä¸å¯ç¨æ¶çåå 说æ |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
4. 示ä¾ä»£ç â
async function main() {
const detail = await app.agent.describeAgent("agent-xxx");
if (detail.IsReady) {
console.log("Agent 已就绪");
} else {
console.log("ä¸å¯ç¨åå :", detail.NotReadyReason);
}
}
æ´æ° Agentâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ´æ° Agent çä»£ç æé ç½®ï¼èªå¨æ ¹æ® Agent ç±»åï¼SCF / TCBRï¼è°ç¨å¯¹åºé»è¾
æ¥å£å£°æï¼app.agent.updateAgent(params): Promise<IUpdateScfAgentResponse>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| AgentId | æ¯ | String | Agent ID |
| cwd | å¦ | String | æ¬å°ä»£ç ç®å½ï¼ä¸ ZipFile äºéä¸ï¼ |
| ZipFile | å¦ | String | Base64 ç¼ç ç ZIP æä»¶å
容ï¼ä¸ cwd äºéä¸ï¼ |
| envVariables | å¦ | Record<string,string> | ç¯å¢åéé®å¼å¯¹ |
| Runtime | å¦ | RuntimeVersion | è¿è¡æ¶çæ¬ |
| Timeout | å¦ | Number | è¶ æ¶æ¶é´ï¼ç§ï¼ |
| MemorySize | å¦ | Number | å å大å°ï¼MBï¼ |
| InstallDependency | å¦ | Boolean | æ¯å¦èªå¨å®è£ ä¾èµ |
| Ignore | å¦ | String | String[] | æå 忽ç¥çæä»¶ glob |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| RequestId | String | 请æ±å¯ä¸æ è¯ |
| elapsedTime | Number | æ´æ°æ»èæ¶ï¼æ¯«ç§ï¼ |
| message | String | ç»ææ¶æ¯ |
| details | String[] | åæ¥éª¤è¯¦ç»ä¿¡æ¯ |
4. 示ä¾ä»£ç â
async function main() {
const res = await app.agent.updateAgent({
AgentId: "agent-xxx",
cwd: "/path/to/new/code",
envVariables: { API_KEY: "new-key" },
});
console.log(`æ´æ°å®æï¼èæ¶ ${res.elapsedTime}ms`);
}
å é¤ Agentâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼å é¤æå® Agentï¼åæ¶å°è¯å é¤åºå±äºå½æ°æäºæç®¡èµæº
æ¥å£å£°æï¼app.agent.deleteAgent(params): Promise<IDeleteAgentResponse>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| AgentId | æ¯ | String | Agent ID |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| RequestId | String | 请æ±å¯ä¸æ è¯ |
| AgentDeleted | Boolean | Agent è®°å½æ¯å¦å 餿å |
| ResourceResult | Object | undefined | åºå±èµæºå é¤ç»æï¼è§ä¸æ¹è¯´æ |
ResourceResult
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| Type | String | èµæºç±»åï¼scf æ tcbr |
| Name | String | èµæºåç§°ï¼å³ AgentIdï¼ |
| Deleted | Boolean | åºå±èµæºæ¯å¦å 餿å |
| Error | String | å é¤å¤±è´¥æ¶çéè¯¯ä¿¡æ¯ |
| CleanupHint | String | å é¤å¤±è´¥æ¶çæå¨æ¸ çæç¤º |
è¥åºå±èµæºå é¤å¤±è´¥ï¼ResourceResult.Deleted = falseï¼ï¼Agent è®°å½å·²å é¤ï¼ä½äºå½æ°æäºæç®¡æå¡ä»åå¨ï¼éæ ¹æ® CleanupHint æå¨æ¸
çã
4. 示ä¾ä»£ç â
async function main() {
const res = await app.agent.deleteAgent({ AgentId: "agent-xxx" });
if (res.AgentDeleted) {
if (res.ResourceResult?.Deleted) {
console.log("Agent ååºå±èµæºåå·²å é¤");
} else {
console.warn(
"Agent å·²å é¤ï¼ä½åºå±èµæºå é¤å¤±è´¥:",
res.ResourceResult?.CleanupHint,
);
}
}
}
è·å Agent æ¥å¿â
1. æ¥å£æè¿°â
æ¥å£åè½ï¼è·å Agent è¿è¡æ¥å¿ãåºå±ç»ä¸èµ° CLS searchClsLogï¼getFunctionLogs ç³»åå·²ä¸çº¿ï¼ã
æ¥å£å£°æï¼app.agent.getAgentLogs(params): Promise<ISearchClsLogResponse>
è¿å CLS æ¥å¿æ£ç´¢ç»æï¼ISearchClsLogResponseï¼ä¸ app.log.searchClsLog ä¸è´ï¼ã
å页æ¶è¯·éä¼ ä¸æ¬¡è¿åç LogResults.Context å°å
¥å contextã
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| AgentId | æ¯ | String | Agent ID |
| limit | å¦ | Number | è¿åæ¡æ°ï¼é»è®¤ 100ï¼æå¤§ 100 |
| startTime | å¦ | String | å¼å§æ¶é´ï¼æ ¼å¼ YYYY-MM-DD HH:mm:ssï¼é»è®¤æè¿ 1 å°æ¶ |
| endTime | å¦ | String | ç»ææ¶é´ï¼æ ¼å¼ YYYY-MM-DD HH:mm:ssï¼é»è®¤å½åæ¶é´ |
| requestId | å¦ | String | æ RequestId 精确çé |
| context | å¦ | String | å页游æ ï¼ä¼ å
¥ä¸æ¬¡è¿åç LogResults.Context è·åä¸ä¸é¡µç»æ |
| sort | å¦ | String | æ¶é´æåºæ¹å¼ï¼asc / descï¼é»è®¤ descï¼ |
3. 示ä¾ä»£ç â
async function main() {
const logs = await app.agent.getAgentLogs({
AgentId: "agent-xxx",
limit: 20,
startTime: "2025-01-01 00:00:00",
endTime: "2025-01-01 23:59:59",
});
console.log(JSON.stringify(logs, null, 2));
}