You need to enable JavaScript to run this app.
文档中心
AgentKit

AgentKit

复制全文
下载 pdf
SDK参考
Tools
复制全文
下载 pdf
Tools
本文通过集成Built-in Tools的run_code工具展示了如何使用VeADK构建一个在沙箱环境中安全地执行代码的智能体。​
推荐您使用agentkit-cli,从Basic Agent模版来创建项目。在模版创建完成后,您需要做以下修改:​
  • 为智能体添加代码执行工具run_code。​
  • 配置环境变量AGENTKIT_TOOL_ID为您的沙箱工具实例ID。​
完整代码如下所示:​
将代码保存为simple_agent_tool.py。更多工具的集成示例,请参见在Agent中集成工具。​
​
from veadk import Agent, Runner​
from veadk.tools.builtin_tools.run_code import run_code​
from agentkit.apps import AgentkitSimpleApp​
​
app = AgentkitSimpleApp()​
agent: Agent = Agent(​
tools=[run_code],​
)​
runner = Runner(agent=agent)​
​
@app.entrypoint​
async def run(payload: dict, headers: dict) -> str:​
prompt = payload["prompt"]​
user_id = headers["user_id"]​
session_id = headers["session_id"]​
​
response = await runner.run(​
messages=prompt, ​
user_id=user_id, ​
session_id=session_id​
)​
return response​
@app.ping​
def ping() -> str:​
return "pong!"​
​
if __name__ == "__main__":​
app.run(host="0.0.0.0", port=8000)​
​
参数说明​
  • run_code 工具:提供安全的代码执行环境,支持Python、JavaScript等多种编程语言。​
  • session_id:用于标识用户会话,同一session_id的请求将共享沙箱实例。​
  • 异步处理:使用async/await语法支持高并发请求。​
本地调试​
  1. 安装Python依赖。​
  • UV安装​
  • ​
    # 使用 `uv` 来创建一个基于 Python 3.10 版本的虚拟环境​
    uv venv --python 3.10​
    ​
    # 激活 `uv` 环境​
    source .venv/bin/activate​
    ​
  • PIP安装​
  • ​
    pip install veadk-python​
    ​
  1. 配置环境变量。​
  • ​
    # 必需配置:沙箱工具ID(从控制台获取或调用ListTools接口获取)​
    export AGENTKIT_TOOL_ID=t-ye7fhfmghsc1kdxxxxxx​
    ​
    # 必需配置:火山引擎访问凭证​
    export VOLCENGINE_ACCESS_KEY=<your_access_key>​
    export VOLCENGINE_SECRET_KEY=<your_secret_key>​
    ​
  • ​
  1. 本地启动智能体服务。​
  • 服务启动成功后,将监听http://0.0.0.0:8000,您可以通过该地址调用智能体。​
  • ​
    python simple_agent_tool.py​
    ​
  1. 调用智能体。​
  • ​
    curl --location 'http://localhost:8000/invoke' \​
    --header 'Content-Type: application/json' \​
    --header 'user_id: veadk-test' \ #用户标识符​
    --header 'session_id: local_session' \ #会话标识符,用于关联沙箱实例​
    --data '{"prompt": "给我在50和100之间一个随机的质数"}' #用户的自然语言请求​
    ​
  • 调用成功后,控制台会输出详细的执行日志:​
  • ​
    2025-11-23 21:10:24 | DEBUG | runner.py:578 - Function call: id='call_jwrcwdayjj8xnlgalyzzcoqq' args={'code': 'import random\n\ndef is_prime(n):\n if n <= 1:\n return False\n if n == 2:\n return True\n if n % 2 == 0:\n return False\n for i in range(3, int(n**0.5) + 1, 2):\n if n % i == 0:\n return False\n return True\n\nprimes_between = [p for p in range(50, 101) if is_prime(p)]\nrandom_prime = random.choice(primes_between)\nprint(random_prime)', 'language': 'python3'} name='run_code'​
    2025-11-23 21:10:24 | DEBUG | run_code.py:48 - tools endpoint: agentkit.cn-beijing.volces.com​
    2025-11-23 21:10:24 | DEBUG | run_code.py:54 - tool_user_session_id: veAgent_veadk-test_local_session​
    2025-11-23 21:10:24 | DEBUG | run_code.py:56 - Running code in language: python3, session_id=local_session, code=import random​
    ​
    def is_prime(n):​
    if n <= 1:​
    return False​
    if n == 2:​
    return True​
    if n % 2 == 0:​
    return False​
    for i in range(3, int(n**0.5) + 1, 2):​
    if n % i == 0:​
    return False​
    return True​
    ​
    primes_between = [p for p in range(50, 101) if is_prime(p)]​
    random_prime = random.choice(primes_between)​
    print(random_prime), tool_id=t-ye7yhff668o2eybtfvr0, host=agentkit.cn-beijing.volces.com, service=agentkit, region=cn-beijing​
    2025-11-23 21:10:24 | DEBUG | run_code.py:65 - Get AK/SK from tool context failed.​
    2025-11-23 21:10:24 | DEBUG | run_code.py:77 - Successfully get AK/SK from environment variables.​
    2025-11-23 21:10:25 | DEBUG | run_code.py:103 - Invoke run code response: {'ResponseMetadata': {'RequestId': '****', 'Action': 'InvokeTool', 'Version': '2025-10-30', 'Service': 'agentkit', 'Region': 'cn-beijing'}, 'Result': {'ToolId': 't-****', 'UserSessionId': '****', 'SessionId': 's-****', 'Endpoint': '', 'InternalEndpoint': '', 'Result': '{\n "success": true,\n "message": "Code executed successfully",\n "data": {\n "kernel_name": "python3",\n "session_id": "****",\n "status": "ok",\n "execution_count": 1,\n "outputs": [\n {\n "output_type": "stream",\n "name": "stdout",\n "text": "67\\n",\n "data": null,\n "metadata": {},\n "execution_count": null,\n "ename": null,\n "evalue": null,\n "traceback": null\n }\n ],\n "code": "import random\\n\\ndef is_prime(n):\\n if n \\u003c= 1:\\n return False\\n if n == 2:\\n return True\\n if n % 2 == 0:\\n return False\\n for i in range(3, int(n**0.5) + 1, 2):\\n if n % i == 0:\\n return False\\n return True\\n\\nprimes_between = [p for p in range(50, 101) if is_prime(p)]\\nrandom_prime = random.choice(primes_between)\\nprint(random_prime)",\n "msg_id": "****"\n }\n}'}}​
    2025-11-23 21:10:38 | DEBUG | runner.py:586 - Event output: 在50到100之间的随机质数为:67​
    2025-11-23 21:10:38 | WARNING | runner.py:652 - No tracer is configured in the agent, no trace id provided.​
    INFO: 127.0.0.1:52785 - "POST /invoke HTTP/1.1" 200 OK​
    ​
部署到云上生产环境​
完成本地开发和测试后,您可以将集成工具后的Agent部署到智能体运行时。​
  1. 打包代码:确保所有依赖都已正确配置在requirements.txt中。​
  1. 将Agent部署到智能体运行时,部署时,系统会自动注入必要的环境信息,无需手动配置。当前支持以下两种部署方式:​
  1. 部署完成后,您可以通过平台提供的API或SDK调用智能体。调用示例:​
  • ​
    agentkit invoke "给我在50和100之间一个随机的质数"​
    ​
  • ​
​
最近更新时间:2026.01.08 10:02:18
这个页面对您有帮助吗?
有用
有用
无用
无用