Agent Development Kit
Web Console がついてるのがいいね
before_model_callback で出力前のチェック
from google.adk.tools.langchain_tool import LangchainTool
$ adk deploy cloud_run で反映するの意欲的すぎるだろ
起動
$ adk web
$ adk run DIR
どのように agent インスタンスを探す?
実行したサブディレクトリから agent.py, __init__.py をロードして root_agent を採用する?
ツール
単なる関数、docstring は LLM に渡る
引数はどうもらう?
返り値はどう返す
単機能なパーツを作るには、1ツール1agent て感じかな?
tool_context を受け取る
tool_context.state.get("key", default)
Agent
コードから単に呼ぶには?
Runner(agent).run_async(...) ?
入力は google.genai.types.Content
before_model_callback
before_tool_callback
def fn(tool: BaseTool, args: Dict[str, Any], tool_context: ToolContext) -> Optional[Dict]:
ちゃんと input_schema, output_schema 使えるじゃん
include_contents none なら history 受け取らない
なんか並列実行して結果をあつめる MapReduce 的なの書けなくないか?
長さが不定なリストを入力してもらって仕分けて加工してマージするとか
これで custom agent 要るの...
うーん、並列部分を tool に閉じ込めて複雑なオブジェクト返す感じならまだ書きやすそうだが
この手のは state 管理がムズいのに徒手空拳すぎないか
state に応じて prompt 切り替えたいのに before_model_callback でやるのかこれ...
LangChain & LangGraph でいいなという気持ちになってきた
state を元に instruction を