AIP Logic 的 block 全清单
Block 是 AIP Logic 的积木,每块都有特定用途:读写 Ontology、做计算、聚合数据、调用函数、与 LLM 交互。这篇是积木图鉴。
https://www.palantir.com/docs/foundry/logic/blocks/
原始标题:AIP Logic • Blocks • Palantir · 所属:AIP Logic(用积木搭 AI 逻辑)
先记住这几条
写在前面
AIP Logic 函数由 block 组成。Block 接收输入、返回输出,并构成一次与你的数据的独立交互。Block 有许多不同的用途,例如读写 Ontology、执行计算、聚合数据、调用其他函数,或与 LLM 交互。一个 block 的输出可以在后续 block 中使用,从而通过将 block 串联起来构建复杂的操作。
Block 有许多不同的类型;下面介绍了一些常用的 block:
Use LLM(调用大模型)
Use LLM block 是 AIP Logic 的核心,它让你能够利用 LLM 来定义一个 Logic block。Logic block 由 prompt、工具(tools)和一个输出组成。Use LLM block 支持平台中任何可用的 LLM,这与 Palantir 的 k-LLM 理念一致。

若要一次性替换多个 Logic 函数中所使用的模型,你可以在 Workflow Lineage 中批量替换模型。
Prompts
Prompt 是用自然语言写给 LLM 的指令。我们建议从最重要的信息开始(例如对 LLM 应完成任务的概述),随后是 LLM 需要的数据,以及关于何时使用工具的指引。编写 prompt 时请记住,LLM 只能访问你明确提供的内容。
在下面这个示意性 prompt 中,我们使用 LLM 从以往的邮件往来中搜索信息,以便为寻求解决方案的客户提供回复。该示意性 prompt 以任务概述开头:
You are my complaint helper agent. Find other emails that describe similar events to those described in the input email. Look only at the email body. Determine the best solution based on what has worked in the past. Return your one solution recommendation, do not list findings from every email.
随后,prompt 指定了要查询的数据(在此例中为投诉邮件,以 complaint 对象表示)。输入 prompt 后,你可以在 prompt 字段中输入 /,并选择在该 Logic 函数中该位置可用的一个或多个变量(例如输入和 block 输出),从而让 LLM 访问你的输入。选择一个对象或对象集会打开一个子菜单,你可以在其中选择要插入的该对象的哪些属性;在下方的截图中,我们选择了 email 对象的属性。

Tools
工具是 AIP Logic 让 LLM 得以读写 Ontology 并支撑现实世界操作的机制。AIP Logic 利用三类由 Ontology 驱动的工具——数据、逻辑和 action——来有效地查询数据、执行逻辑操作并安全地采取行动。LLM 并不能直接访问工具;LLM 只能请求使用工具,随后这些工具调用会由 AIP Logic 在调用用户的权限范围内执行。
行级和列级访问控制(包括受限视图、对象安全策略和属性安全策略)会在 Query objects 将数据读入 prompt 时,过滤用户所能读取的内容。这些控制不会延伸到模型的输出,也不会延伸到 Apply actions 编写的任何 Ontology 编辑。为了让数据在向下游流转时持续受到保护,请将这些控制与标记(marking)或基于分类的访问控制搭配使用。完整的模型说明参见访问控制传播。
Tool calling modes
AIP Logic 支持提示式(prompted)工具调用和原生(native)工具调用。原生工具调用利用底层 LLM 内置的能力来提升性能和 token 效率。提示式工具调用则使用 prompt 指示 LLM 如何使用工具。
当一个 Use LLM board 中的所有模型都支持原生工具调用时,AIP Logic 会自动从提示式升级为原生,并在 Debugger 中显示一条提示信息。如果任一模型缺少原生支持,AIP Logic 会继续使用提示式工具调用。

可用的工具包括:
Apply actions
Apply actions 工具让 LLM 能够使用 Action 来编辑 Ontology。你可以描述 LLM 应在何时使用所提供的 Action。关于如何将更改应用到 Ontology 的更多细节,请查阅使用 Logic 函数进行 Ontology 编辑。
![对「[Titan] Delivery」应用「Adjust delivery completion date」action。](assets/img/apply-actions-example.png)
Call function
Call function 工具让你可以选择 LLM 可以调用的函数。函数可以是在代码仓库中定义的代码,也可以是现有的 Logic 函数。

Query objects
Query objects 工具指定 LLM 可以访问的对象类型。你可以按需添加任意数量的对象类型,并指定 LLM 可以访问哪些属性,以使查询更节省 token。
![Query objects 工具,已添加「[Titan] customer order」、「[Titan] Distribution center」和「[Titan] Finished good」三个对象。](assets/img/query-objects-example.png)
Calculator tool
Calculator tool 让你能够借助 LLM 执行精确的数学计算。
Apply action(执行动作)
Apply action block 让你能够确定性地调用 action,而无需经过 LLM block。这个 block 让你可以精确控制参数如何填写,并加快执行速度。在此示例中,我们可以调用一个为某个给定事件赋予优先状态(priority status)的 action。
要编辑被写回 Ontology,必须从某个 action 中调用 AIP Logic 函数。除非该 Logic 函数是从 action 中执行的,否则 Ontology 不会被编辑,即使该函数包含 Apply action block 也是如此。

Execute function(调用函数)
Execute function block 让你可以调用 Foundry 内其他现有的函数,例如 TypeScript、Python,甚至其他 Logic 函数。Execute block 让你能够复用那些已经实现你预期任务的现有函数,而不必自己重新实现该逻辑。在下面的示例中,Execute block 用于借助某个语义搜索函数的输出,帮助返回相似事件的解决文本。


Conditionals(条件分支)
条件(Conditionals)是评估某个条件、并根据该条件为真或为假来执行不同路径的 block。可以把条件看作传统编程中的「if-then-else」语句:
- 如果(If) 某个条件为真,那么(then) 执行一组操作
- 否则(Else) 执行另一组操作

当你需要根据特定条件以不同方式处理数据,或运行不同的 action 时,条件就很有用。
Branch return values
在「then」或「else」部分中,你可以定义该条件分支应返回什么值。共有 3 个选项:
- Define a Path: 创建一串要执行的 block。
- Return a Variable: 返回现有变量或先前的 block 输出。
- Take No Action: 将分支配置为不采取任何操作(当另一个分支会返回 ontology 编辑时可用)。
注意:你可以在一个条件 block 中配置多个分支,每个分支都有自己的「when」条件和「then」操作。
使用条件分支时,所有分支必须返回一致的输出。例如,如果某个分支输出字符串,那么所有其他分支(包括 else 分支)也必须输出字符串。如果分支通过 action 返回 ontology 编辑,那么所有分支都必须运行一个 action,或明确指定「take no action」。
Loops(循环)
循环(Loops)让 AIP Logic 能够遍历一个集合,并对每个元素运行一次转换和/或一个 action。循环对于在一组元素上执行操作,或对多个对象进行 ontology 编辑非常有用。
循环的输出可以是一个值列表,也可以是 ontology 编辑。

在循环内部,你可以通过 element 变量访问当前元素,并通过 index 变量访问当前元素的索引(如有需要,这些变量可以重命名)。
循环只对 List 操作,不对 Array 操作。选择 array 作为循环的输入时,会自动在循环之前插入一个「Array to List」block,在将输入传入循环之前把它转换为 list。

注意:如果你的循环不包含任何 action,则每次迭代都会并行执行。
Create variable(创建变量)
Create variable block 会创建一个可在后续 block 中使用的变量。该变量可以是以下类型:array、boolean、date、double、float、integer、long、object、short、string 或 timestamp。

延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
本组其他页面 · AIP Logic(用积木搭 AI 逻辑)
同一主题下的相邻内容。
- AIP Logic 总览:无代码搭 AI 函数AIP Logic 是 AIP 的核心应用:在可视化环境里构建、测试、发布由 LLM 驱动的函数,无需写代码就能借助 O
- AIP Logic 核心概念读懂这一页,后面所有 Logic 文档都会顺畅很多。这里把 block、prompt、tool、output 等关键概念
- AIP Logic 快速入门这一篇带你实际走一遍:进入 AIP Logic、认识界面、组合 LLM block、在调试器里看 LLM 的思维链(ch
- 暂存写入(Staged writes)让 AI 直接改你的 Ontology 太危险怎么办?暂存写入让改动先停下来等人审,通过后才落库。
- 在分支上开发 AIP LogicAIP Logic 与 Global Branching 集成,让你在隔离的分支上安全地改 Logic 函数,改完再合并
- 执行模式设置:用户作用域 vs 项目作用域Logic 函数有两种执行模式,决定了"以谁的身份运行、数据权限从哪来" —— 这是个容易踩坑但很关键的选择。
- 用 Automate 自动化 AIP LogicLogic 函数可以被自动化触发,让 Ontology 编辑自动落地,或先暂存等人工审核 —— 触发源可以是已有对象,也
- AIP Logic 的计算用量Logic 函数跑一次,钱花在哪?这一篇把用量拆开算给你看,帮你预测成本、优化设计。
- AIP Logic 的指标Logic 资源底层由函数支撑。这篇讲怎么看到成功/失败次数与 P95 执行时长,判断一个 Logic 函数是否健康。
- AIP Logic 常见问题按问题组织的一页,适合当速查手册用。遇到具体疑问时先来这里翻一翻。
常见问题速答 · FAQ
关于「AIP Logic 的 block 全清单」,读者最常问的几个问题。