Skip to main content

agent-base

agent-base 是一个用于快速搭建智能体项目脚手架的 Python 库,核心目标是:

  • 通过 CLI 一键创建智能体工程目录
  • 自动生成 .env、agent.py、技能目录、本地函数目录、MCP 工具集目录
  • 基于 google-adk 统一加载模型、Skills、本地函数工具、远端 MCP 工具

项目结构

核心代码位于 src/agent_base:

  • main.py:CLI 入口,解析命令并分发到 Operator
  • operator.py:脚手架生成与文件落地逻辑
  • agent_config.py:配置数据模型(Pydantic)
  • adk_agent.py:智能体运行时封装,负责动态加载工具与技能
  • observability/tracing.py:OpenTelemetry Trace 初始化
  • templates/*.template:新建智能体时使用的代码和环境变量模板

依赖与版本

pyproject.toml 中定义:

  • Python: >=3.10
  • 核心依赖:
    • google-adk[extensions]>=1.27.0
    • pydantic_yaml>=1.6.0
  • 命令行入口:
    • agent-base = agent_base.main:main

CLI 功能说明

1) 创建智能体

agent-base -an <agent_name> create-agent \
  -ad "<description>" \
  -ai "<instruction>" \
  -mdu "<model_base_url>" \
  -mdn "<model_name>" \
  -mdk "<model_api_key>" \
  -mdt 0.0 \
  -teh "<trace_endpoint_host>"

执行后会在当前目录下生成:

./<agent_name>/
  ├── .env
  ├── __init__.py
  ├── agent.py
  ├── skills/
  ├── local-functions/
  │   └── function_toolset.py
  └── mcp-toolsets/

2) 创建 MCP 工具集配置

agent-base -an <agent_name> create-mcp-toolset \
  -mpn "<mcp_name>" \
  -mpu "<mcp_url>" \
  -mpst "SSE|StreamableHTTP" \
  -mpat "<optional_token>"

会在 ./<agent_name>/mcp-toolsets/ 下生成对应 JSON 配置文件。

3) 预留命令(尚未实现)

  • create-skill
  • create-local-function-tool

当前在 operator.py 中仍是占位实现(pass 或空函数体)。


运行时加载机制(ADKAgent)

ADKAgent 初始化时会把三类能力合并到 tools:

  1. 本地函数工具
    扫描 ./<agent_name>/local-functions/*.py,通过动态 import 抽取顶层函数并注册。

  2. Skills
    扫描 ./<agent_name>/skills/*,使用 google.adk.skills.load_skill_from_dir 加载后封装为 SkillToolset。

  3. 远端 MCP 工具
    扫描 ./<agent_name>/mcp-toolsets/*.json,按 server_type 构建:

    • SSE -> SseServerParams
    • StreamableHTTP -> StreamableHTTPServerParams

Trace 能力

当提供 TRACE_ENDPOINT_HOST 时,会调用 setup_tracing(endpoint_host, experiment_id):

  • 使用 OTLP HTTP exporter 上报到 ${endpoint_host}/v1/traces
  • 额外写入 header:x-mlflow-experiment-id

experiment_id 在示例中由当前时间戳(毫秒)生成。


示例代码分析(tests/test_agent)

你本地示例目录中的 tests/test_agent/agent.py 展示了最小可运行初始化流程:

  1. 读取 .env(dotenv)
  2. 初始化 tracing(可选)
  3. 组装 AgentConfig + ModelProvider
  4. 构造 root_agent = ADKAgent(...)

示例技能中包含:

  • skills/calculator:通过 scripts/calculate.py 提供加减乘除脚本工具
  • skills/comment-news:给出“先搜新闻,再客观评价”的技能流程
  • skills/tavily-search:封装 Tavily CLI 的检索能力(含安装与命令范式)

当前实现特点与注意事项

已具备

  • 模板化创建智能体工程
  • 统一配置模型参数与工具加载
  • 可加载本地函数 + Skills + MCP toolsets

需要注意

  • operator.py 使用 os.system 进行目录与文件创建,后续可考虑改为 pathlib/shutil 提高可维护性与安全性。
  • create-skill、create-local-function-tool 还未完成。
  • 示例 .env 中出现了真实样式的 API Key,建议立即替换并避免提交到版本库(应使用环境注入或密钥管理)。

快速开始(建议流程)

  1. 安装依赖并安装本包(开发模式)
  2. 通过 agent-base ... create-agent 生成智能体目录
  3. 在 skills/ 与 local-functions/ 中补充能力
  4. 根据需要添加 mcp-toolsets/*.json
  5. 在生成的 agent.py 中实例化并运行智能体

如需扩展,建议优先补齐 create-skill 与 create-local-function-tool 的自动化生成能力,这样项目可以形成完整的“从 0 到可运行”脚手架闭环。

Metadata

Release files for agent-os-base 0.2.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-os-base 0.2.9
File Size Uploaded
agent_os_base-0.2.9.tar.gz 15.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-os-base 0.2.9
File Interpreter ABI Platform
agent_os_base-0.2.9-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / agent_os_base-0.2.9.tar.gz

Download URL agent_os_base-0.2.9.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2fcd192702a16a63591a7d87de91c6677739b54ae044aa2bae7c39139f3b6017
BLAKE2b-256 checksum
How to use checksums
a21894cc084d96fdc6a9f04fc8902c4570e7e000ebd5fd357b29813656f01af7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / agent_os_base-0.2.9-py3-none-any.whl

Download URL agent_os_base-0.2.9-py3-none-any.whl
Size 16.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4b767f198b99fda5957af372c0ff305ac7b37ff117b3a19392e74b4ab52a14b6
BLAKE2b-256 checksum
How to use checksums
1b0cbbe413c04b88d4f2361ee04685b15418e75eb31667d6404f0f43036c30c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release history Release notifications | RSS feed

This release

0.2.9 This release

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page