chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:39:17 +08:00
commit 4ed4e9ff99
1368 changed files with 334957 additions and 0 deletions
@@ -0,0 +1,112 @@
import argparse
import asyncio
import os
from openai.types.responses import ResponseFunctionShellToolCall
from openai.types.responses.response_container_reference import ResponseContainerReference
from agents import Agent, Runner, ShellTool, ShellToolSkillReference, trace
from agents.items import ModelResponse
SHELL_SKILL_ID_ENV = "OPENAI_SHELL_SKILL_ID"
SHELL_SKILL_VERSION_ENV = "OPENAI_SHELL_SKILL_VERSION"
DEFAULT_SKILL_REFERENCE: ShellToolSkillReference = {
"type": "skill_reference",
"skill_id": "skill_698bbe879adc81918725cbc69dcae7960bc5613dadaed377",
"version": "1",
}
def resolve_skill_reference() -> ShellToolSkillReference:
skill_id = os.environ.get(SHELL_SKILL_ID_ENV)
if not skill_id:
return DEFAULT_SKILL_REFERENCE
reference: ShellToolSkillReference = {"type": "skill_reference", "skill_id": skill_id}
skill_version = os.environ.get(SHELL_SKILL_VERSION_ENV)
if skill_version:
reference["version"] = skill_version
return reference
def extract_container_id(raw_responses: list[ModelResponse]) -> str | None:
for response in raw_responses:
for item in response.output:
if isinstance(item, ResponseFunctionShellToolCall) and isinstance(
item.environment, ResponseContainerReference
):
return item.environment.container_id
return None
async def main(model: str) -> None:
skill_reference = resolve_skill_reference()
print(
"[info] Using skill reference:",
skill_reference["skill_id"],
f"(version {skill_reference.get('version', 'default')})",
)
with trace("container_shell_skill_reference_example"):
agent1 = Agent(
name="Container Shell Agent (Skill Reference)",
model=model,
instructions="Use the available container skill to answer user requests.",
tools=[
ShellTool(
environment={
"type": "container_auto",
"network_policy": {"type": "disabled"},
"skills": [skill_reference],
}
)
],
)
result1 = await Runner.run(
agent1,
(
"Use the csv-workbench skill. Create /mnt/data/orders.csv with columns "
"id,region,amount,status and at least 6 rows. Then report total amount by "
"region and count failed orders."
),
)
print(f"Agent: {result1.final_output}")
container_id = extract_container_id(result1.raw_responses)
if not container_id:
raise RuntimeError("Container ID was not returned in shell call output.")
print(f"[info] Reusing container_id={container_id}")
agent2 = Agent(
name="Container Reference Shell Agent",
model=model,
instructions="Reuse the existing shell container and answer concisely.",
tools=[
ShellTool(
environment={
"type": "container_reference",
"container_id": container_id,
}
)
],
)
result2 = await Runner.run(
agent2,
"Run `ls -la /mnt/data`, then summarize in one sentence.",
)
print(f"Agent (container reuse): {result2.final_output}")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument(
"--model",
default="gpt-5.6-sol",
help="Model name to use.",
)
args = parser.parse_args()
asyncio.run(main(args.model))