Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d019e0b
feat: Add ExecuteSkillScriptTool for running skill scripts via code e…
caohy1988 Feb 21, 2026
06d995e
fix: Address Gemini Code Assist review — shell injection, shlex, chec…
caohy1988 Feb 21, 2026
e83de80
fix: Address code review findings for ExecuteSkillScriptTool
caohy1988 Feb 21, 2026
52b8563
docs: Add code executor enhancements design document
caohy1988 Feb 22, 2026
4142c37
docs: Address 8 architectural review findings in code executor design…
caohy1988 Feb 22, 2026
8ca1111
docs: Fix 6 review findings — execution_id, PID namespace, Py version…
caohy1988 Feb 22, 2026
d8692ba
docs: Fix container timeout DoS, pkill scope, stale recommendations
caohy1988 Feb 22, 2026
f55da53
docs: Align roadmap with Option A, unify recovery policy, fix fallbac…
caohy1988 Feb 22, 2026
f4fd794
docs: Fix PermissionError kill fallback, align non-goals with Option A
caohy1988 Feb 22, 2026
4bb83a0
docs: Surface cleanup failure as unhealthy state, add post-kill threa…
caohy1988 Feb 22, 2026
3221ac1
docs: Add _healthy guard and post-restart readiness validation
caohy1988 Feb 22, 2026
c3a003d
docs: Document _healthy lifecycle (init, failure, reinit)
caohy1988 Feb 22, 2026
369bba8
docs: Add public reinitialize() method to ContainerCodeExecutor API
caohy1988 Feb 22, 2026
c735183
docs: Check exit_code on post-restart readiness validation
caohy1988 Feb 22, 2026
11f65f0
feat: Add SkillsBench Docker-based evaluation pipeline
caohy1988 Feb 23, 2026
f9a78a6
fix: Add per-command timeout to Docker executor
caohy1988 Feb 23, 2026
8169ce3
Rename ExecuteSkillScriptTool to RunSkillScriptTool
caohy1988 Feb 24, 2026
446f8a6
Rename ExecuteSkillScriptTool to RunSkillScriptTool
caohy1988 Feb 24, 2026
e2445c2
Add optional path and working_dir to execution dataclasses
caohy1988 Feb 24, 2026
8b99a5e
Implement temporary directory for code execution
caohy1988 Feb 24, 2026
c2e92cf
Enhance code execution with working directory support
caohy1988 Feb 24, 2026
c77ac54
Add 'path' field to input files in tests
caohy1988 Feb 24, 2026
e77473d
Add design for skill execution script in ADK
caohy1988 Feb 24, 2026
e81293c
fix: Add Docker build retry logic and skill script test coverage
caohy1988 Feb 24, 2026
58d1feb
fix: Fix tool name mismatch, empty file handling, and args validation
caohy1988 Feb 24, 2026
6cf4522
refactor: Remove allowed_tools resolution and global execution lock
caohy1988 Feb 24, 2026
a9b4f6a
fix: Restore execution lock to prevent concurrent data races
caohy1988 Feb 24, 2026
04198b0
refactor: Only sandbox executor when input_files or working_dir is set
caohy1988 Feb 24, 2026
3532cef
fix: Hold execution lock for both sandbox and plain paths
caohy1988 Feb 24, 2026
b65d353
test: Add concurrency test for mixed sandbox/plain execution
caohy1988 Feb 24, 2026
4e49596
test: Assert plain-path cwd stays original in concurrency test
caohy1988 Feb 24, 2026
0f4165a
docs(code-executor): align design doc with RunSkillScriptTool and cur…
caohy1988 Feb 24, 2026
97397ba
docs(code-executor): prioritize run-script roadmap and tool contract …
caohy1988 Feb 24, 2026
4e69ace
docs(code-executor): fix 18 inaccuracies in design doc vs implementation
caohy1988 Feb 24, 2026
36f0148
docs: add P0 RFC for RunSkillScriptTool production-readiness
caohy1988 Feb 24, 2026
702a77f
docs(rfc): address 6 review findings in RunSkillScriptTool P0 RFC
caohy1988 Feb 24, 2026
992b864
docs(code-executor): address 7 review findings in design doc
caohy1988 Feb 24, 2026
c950d79
docs: address 6 cross-doc review findings in design doc and RFC
caohy1988 Feb 24, 2026
d94527c
docs: fix 4 remaining cross-doc inconsistencies
caohy1988 Feb 24, 2026
faa5fa2
docs: final polish — SemVer policy, missing import, reinit failure mode
caohy1988 Feb 24, 2026
ab1dd28
docs(code-executor): align §6.5 graduation row with SemVer policy
caohy1988 Feb 24, 2026
0272370
feat(benchmarks): add BigQueryBench evaluation pipeline
caohy1988 Feb 24, 2026
b164b87
docs(bigquerybench): add complete walkthrough for new BigQuery skill …
caohy1988 Feb 24, 2026
70a2f3f
refactor(bigquerybench): simplify to trace-based evaluation
caohy1988 Feb 24, 2026
faf852c
feat(bigquerybench): add skill invocation + LLM-as-judge instruction …
caohy1988 Feb 24, 2026
76912e5
feat(bigquerybench): add Vertex AI API key auth, retry backoff, and o…
caohy1988 Feb 24, 2026
5b512c1
Fix copyright year and simplify code execution
caohy1988 Feb 25, 2026
79010f3
Merge branch 'main' into feat/execute-skill-script
caohy1988 Feb 25, 2026
dabf6cb
Align SkillsBench with run_skill_script API and revert code executor …
caohy1988 Feb 25, 2026
89c221e
Implement SkillScriptCodeExecutor for script execution
caohy1988 Feb 25, 2026
afaface
Refactor test_skill_toolset.py for clarity and assertions
caohy1988 Feb 25, 2026
7d09e7b
fix: Address review findings in SkillScriptCodeExecutor
caohy1988 Feb 25, 2026
6a8c412
refactor: Make SkillScriptCodeExecutor private
caohy1988 Feb 25, 2026
3eafa42
docs: Add Agent Skills design and implementation doc
caohy1988 Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions contributing/samples/skill_script_demo/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from . import agent
47 changes: 47 additions & 0 deletions contributing/samples/skill_script_demo/agent.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Sample agent with multiple skills and script execution.

This agent loads the Anthropic mcp-builder skill and a python-helper
skill, exercising all skill tools: list_skills, load_skill,
load_skill_resource, and execute_skill_script.
"""

import pathlib

from google.adk import Agent
from google.adk.code_executors.unsafe_local_code_executor import UnsafeLocalCodeExecutor
from google.adk.skills import load_skill_from_dir
from google.adk.tools.skill_toolset import SkillToolset

_SKILLS_DIR = pathlib.Path(__file__).parent / "skills"

mcp_builder_skill = load_skill_from_dir(_SKILLS_DIR / "mcp-builder")
python_helper_skill = load_skill_from_dir(_SKILLS_DIR / "python-helper")

my_skill_toolset = SkillToolset(
skills=[mcp_builder_skill, python_helper_skill],
code_executor=UnsafeLocalCodeExecutor(),
)

root_agent = Agent(
model="gemini-2.5-flash",
name="skill_script_demo_agent",
description=(
"An agent that demonstrates skill script execution using"
" the mcp-builder and python-helper skills."
),
tools=[my_skill_toolset],
)
Loading