news 2026/9/13 21:30:39

Sample Inputs

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sample Inputs

Sample Inputs

【免费下载链接】adk-pythonAn open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.项目地址: https://gitcode.com/GitHub_Trending/ad/adk-python

  • Hello World

  • ADK workflows

  • testing concurrent nodes

而带解释的写法(来自 [readme-template.md](https://link.gitcode.com/i/301da51ced07421cd770d113a7158af4) 的模板): ```markdown - `Prompt example 2` *Explanation or expected behavior*

其中*Explanation or expected behavior*前有两个空格缩进,且与提示词列表项之间隔了一个空行。这种格式在 Markdown 渲染后会形成"提示词 + 附注"的独立列表项,对屏幕阅读器和 LLM 解析都更友好。

另外需要注意:并非所有样本都需要输入。例如 sequence/README.md 明确写着 "This sample does not require any input to run."——如实说明即可,不要硬凑提示词。

Graph:画结构拓扑,而不是请求/响应时序

Graph 小节是模板中最容易被误解的部分。模板的规则是:

A Mermaid diagram of the structure, not of the request/response flow.

画"结构"而非"请求/响应流程"。模板明确警告:user -> agent -> API -> tool -> user这样的时序图是噪音,它没有表达出拓扑图已经表达的任何信息。具体绘图规则分两种形态:

  • Workflow根 agent:画节点与边的图(nodes and edges)。
  • 编排工具或子 agent 的 agent(LlmAgentManagedAgent:画该 agent 与其工具/子 agent 的拓扑,而不是内部工作流节点。

图中保持少量节点和边即可。仓库中的工作流样本都遵循了这一规则,例如 dynamic_nodes/README.md:

它用虚线箭头(-.->)标注ctx.run_node的动态调用关系,用实线箭头表达静态边,用<br/>在节点内补充类型说明(PYTHON FUNCTION),让读者一眼看懂"orchestrate 是驱动节点,通过上下文动态调度两个 agent"。

再如 fan_out_fan_in/README.md:

三路并行分支汇入join_node(节点标注 "Waits for all 3"),再进入聚合节点。整个图不超过 6 个节点,信息一目了然。

How To:展示样本用到的关键技术点

How To 小节列出样本使用的关键技术(例如ctx.run_node),并附上展示每个技术点的少量关键代码行。目标是让读者不用通读整个agent.py就能抓住核心手法。

以 dynamic_nodes/agent.py 为例,其 How To 拆解为两个要点:

1. 启用可恢复性:Python 节点若想使用ctx.run_node,必须用@node(rerun_on_resume=True)声明。这告诉引擎:如果任何动态调度的节点被中断(例如等待人工介入 human-in-the-loop),编排节点需要暂停并可能重跑。

from google.adk.workflow import node @node(rerun_on_resume=True) async def orchestrate(ctx: Context, node_input: str) -> str: # ...

2. 从 Context 运行节点:把ctx: Context注入 Python 节点定义,await ctx.run_node(node_to_run)的返回值就是那次执行的最终输出;循环内还可以用yield Event(state={...})在进入下一轮迭代前更新状态:

@node(rerun_on_resume=True) async def orchestrate(ctx: Context, node_input: str) -> str: yield Event(state={"topic": node_input}) while True: headline = await ctx.run_node(generate_headline) feedback = Feedback.model_validate( await ctx.run_node(evaluate_headline, node_input=headline) ) if feedback.grade == "tech-related": yield headline break

再看 fan_out_fan_in/agent.py 对应的 How To:

  1. 定义JoinNodejoin_node = JoinNode(name="join_for_results")
  2. edges中用元组先扇出、再经join_node扇入、最后交给聚合节点:
( "START", (make_uppercase, count_characters, reverse_string), join_node, aggregate, )
  1. JoinNode之后的节点会收到一个dict作为输入,键是上游节点名,值是各自输出:
async def aggregate(node_input: dict[str, Any]): uppercase_result = node_input['make_uppercase'] # ...

How To 的写作原则是"少而准":每个要点配几行能独立说明问题的代码,而不是粘贴整个文件。更完整的图论语义(如max_concurrencyrerun_on_resume覆盖规则)应交由 Related Guides 中的指南文档承担。

Related Guides:指向 docs/guides/ 的链接与四级路径转换

Related Guides 小节把样本与 docs/guides/README.md 下解释相关类的指南一一对应,每个链接附带一行摘要。

模板给出了路径计算的规则:样本位于contributing/samples/{category}/{sample_name}/,指南在docs/guides/下,二者在仓库树中的相对关系是向上四级,因此相对链接写法为:

- [Workflow](https://link.gitcode.com/i/0178e92c01dc459f56f8864ec349c721) - Explains building complex multi-step graphs.

模板中的占位形式为:

- Guide Title - Brief description of what the guide covers.

需要特别强调:在输出面向仓库整体的文章时,这类从样本目录出发的四级相对路径应转换为以仓库根目录为起点的路径,即[Workflow](https://link.gitcode.com/i/c91656541202f31fdb11fb0158d0dd95),避免链接因解析基准不同而 404。

实际样本可以链接的指南非常丰富,从 docs/guides/README.md 的索引看,与工作流样本直接相关的有:

  • Workflow —— 图驱动的多步 agent 编排,含edgesmax_concurrencyrerun_on_resume等配置项表格;
  • Workflow Graphs —— 节点、边与图结构,以及运行前校验的九条规则;
  • Function Nodes —— 将普通 Python 函数与生成器包装为工作流节点;
  • JoinNode —— 同步并行执行路径;
  • Dynamic Nodes —— 运行时动态调度节点;
  • RetryConfig —— 为节点配置重试策略。

Template:可直接复制的空白骨架

模板(readme-template.md)在文档末尾提供了完整可复制的 Markdown 骨架,是新增样本 README 的起点:

# ADK Sample Name ## Overview Brief description. ## Sample Inputs - `Prompt example 1` - `Prompt example 2` *Explanation or expected behavior* ## Graph For a Workflow root agent: ![mermaid](https://web-api.gitcode.com/mermaid/svg/eNpLL0osyFAIceFSAILgEMegEAVdXTsF30q__JRUAHehCAc) For an agent orchestrating tools or sub-agents: ![mermaid](https://web-api.gitcode.com/mermaid/svg/eNpLL0osyFAIceFSAALfSsf01LyS6NzK-EQQI1ZBV9euJjkxJ6e4BigZkp-fowGUKwHSmgAglhOt) ## How To Explain the details. ## Related Guides - Guide Title - Brief description of what the guide covers.

【免费下载链接】adk-pythonAn open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.项目地址: https://gitcode.com/GitHub_Trending/ad/adk-python

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 21:30:16

休闲游戏出海:全生命周期AI本地化投放实战指南

1. 为什么“休闲游戏出海”不是发版就完事&#xff0c;而是从立项第一天起就要算清的账 “休闲游戏出海”这六个字&#xff0c;听上去轻松——消消乐、合成类、放置挂机&#xff0c;美术成本低、开发周期短、上线快。但过去三年我带团队操盘过17款休闲游戏海外发行&#xff0c;…

作者头像 李华
网站建设 2026/9/13 21:28:25

R语言日期时间转换全攻略:as.POSIXct与as.POSIXlt从原理到实战

处理数据的时候&#xff0c;我最怕的不是模型跑不出来&#xff0c;而是拿到一张表&#xff0c;里面的日期时间五花八门&#xff1a;有的是"2024-03-15"&#xff0c;有的是"03/15/2024 14:30"&#xff0c;还有的是Excel里那种一串数字序列。R语言里处理日期…

作者头像 李华
网站建设 2026/9/13 21:25:46

NPU架构原理与嵌入式部署实战:边缘AI的算力引擎

边缘AI项目里摸爬滚打久了&#xff0c;你会发现一个现象&#xff1a;大家都在比算力&#xff0c;但真正决定产品能不能落地的&#xff0c;往往是单位功耗下的有效算力。今天这篇是边缘AI系列的第6篇&#xff0c;主角就是边缘设备里最讲效率的计算芯片——NPU&#xff08;Neural…

作者头像 李华
网站建设 2026/9/13 21:24:14

Widlar电流源设计原理与实战:低功耗芯片的稳定电流基准

1. 项目概述&#xff1a;为什么一个“老古董”电路至今仍是芯片设计的基石&#xff1f;Widlar 电流源——这个名字听起来像半导体教科书里泛黄一页上的铅印字&#xff0c;但它不是历史遗迹&#xff0c;而是每天在你手机SoC、汽车ECU、工业传感器芯片内部默默工作的“隐形心脏”…

作者头像 李华