Skip to content

Instantly share code, notes, and snippets.

View ftnext's full-sized avatar

nikkie ftnext

View GitHub Profile
import logging
from pathlib import Path
from google.adk.agents import LlmAgent
from google.adk.tools import google_search
from google.adk.tools.agent_tool import AgentTool
class OrFilter:
def __init__(self, *prefixes: str):
@ftnext
ftnext / agent.py
Last active August 18, 2025 11:25
Try otel
# uvx --from google-adk --with opentelemetry-sdk --with opentelemetry-instrumentation-google-genai adk web
import os
from pathlib import Path
from google.adk.agents import LlmAgent
from google.adk.tools import google_search
from google.adk.tools.agent_tool import AgentTool
from opentelemetry._events import set_event_logger_provider
from opentelemetry._logs import get_logger_provider, set_logger_provider
from opentelemetry.instrumentation.google_genai import GoogleGenAiSdkInstrumentor
import logging
from pathlib import Path
from google.adk.agents import LlmAgent
from google.adk.tools import google_search
from google.adk.tools.agent_tool import AgentTool
# workaround for setup_adk_logger() https://github.com/google/adk-python/blob/v1.10.0/src/google/adk/cli/utils/logs.py#L27-L32
root_logger = logging.getLogger()
root_logger.handlers[0].addFilter(logging.Filter("google_adk"))
from pathlib import Path
from google.adk.agents import LlmAgent
from google.adk.tools import google_search
from google.adk.tools.agent_tool import AgentTool
def load_instruction_from_file(filename: str) -> str:
"""Reads instruction text from a file relative to this script."""
return (Path(__file__).parent / filename).read_text(encoding="utf-8")
[
{
"content": {
"parts": [
{
"text": "いえーい!ビビッといっくよーー!!"
}
],
"role": "model"
},
{
"id": "226b179f-e70d-4d25-b747-457d6a7baa69",
"app_name": "refine-loop",
"user_id": "test_user",
"state": {
"current_sentence": "No major issues found.\n"
},
"events": [
{
"content": {
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "langextract",
# "opentelemetry-instrumentation-google-genai",
# "opentelemetry-sdk",
# ]
# ///
import os
import time
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "google-genai",
# "opentelemetry-instrumentation-google-genai",
# "opentelemetry-sdk",
# ]
# ///
# ref: https://github.com/open-telemetry/opentelemetry-python-contrib/blob/fc442d1e019c9c4514d3ad40646d901dfe93dcd8/instrumentation-genai/opentelemetry-instrumentation-google-genai/examples/manual/main.py
from google import genai
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "httpx",
# "opentelemetry-sdk",
# "opentelemetry-instrumentation-httpx",
# ]
# ///
# ref: https://github.com/ftnext/fastapi-playground/blob/54089bba137f4c326072410b2ac6f3356bfc16f9/opentelemetry/client.py
import httpx
# /// script
# requires-python = ">=3.12"
# dependencies = [
# "fastapi",
# "opentelemetry-sdk",
# "opentelemetry-instrumentation-fastapi",
# "uvicorn",
# ]
# ///
# ref: https://github.com/ftnext/fastapi-playground/blob/61f1e4f04347ae155ef666e641f934f72efad23a/opentelemetry/app.py