微信扫码
添加专属顾问
我要投稿
Palantir AIP的两大核心组件揭秘:LLM实现智能决策,Tool赋予执行能力,让AI真正落地业务场景。核心内容: 1. UseLLM节点与Tool工具的核心作用解析 2. Callfunction工具配置四步法详解 3. 参数映射的三种模式与返回值处理策略
在Palantir AIP的Logic模块中,UseLLM节点是核心逻辑块,而Tool则是让LLM具备行动能力的关键。LLM通过工具Tool跟客户业务进行深度交互。所谓从决策到行动,主要靠的是LLM和Tool这两个利器。
最重要的两个工具是调用函数(executefunciton)和执行操作(applyaction)这两个。
一、调用函数(Callfunction)工具
给LLM配置Callfunction意味着允许LLM根据用户的指令,自主决定调用Foundry中预先定义好的TypeScript函数或由logic编排好的logic函数。
在AIPLogic中配置之前,必须在有一个已经发布好Function。函数定义时必须有明确的入参和返回值。文档注释是最关键的一点。LLM看不懂代码逻辑,它只能通过写的函数注释(/**...*/)来理解这个函数是做什么的、参数需要什么格式。
配置步骤详解
第一步:添加UseLLM节点
在AIPLogic的编辑器画布上,添加一个"UseLLM"块。
第二步:启用Tools(工具)
点击选中"UseLLM"节点。在右侧(或底部)的配置面板中,找到Tools部分。
点击Addtool(添加工具)。
在弹出的菜单中选择Callfunction。
第三步:选择目标函数
在出现的搜索框中,输入编写好的函数名称,并选中该函数。
第三步:配置参数映射
这是配置的核心。当选中函数后,你会看到该函数定义的所有输入参数。需要告诉AIPLogic如何处理这些参数。
通常有以下几种模式:
LLMGenerated(由LLM生成):
推荐用法:希望LLM根据用户的自然语言Prompt提示词自动分析出应该填入什么参数。例如:用户说“帮我查询ID为123的订单”,函数需要orderId。LLM会自动提取123并填入。
配置方法:通常保持默认,或者选择"Inferfromcontext"/"Modelgenerated"。此时,LLM会读取函数的参数名称和类型定义来生成JSON。
Fixed/StaticValue(固定值):
无论用户说什么,这个参数永远传入一个固定的值。比如有一个通用查询函数,但在这个Logic中只想让它查询“Active”状态的条目,可以将status参数硬编码为"Active"。
Variable(变量映射):
将Logic流程中上一步骤产生的变量直接传给函数,而不让LLM去猜。
第四步:配置函数执行后的行为
当LLM决定调用函数后,AIPLogic会暂停LLM的生成,去后台执行这个函数,然后拿到返回值。需要决定拿到返回值后做什么:
FeedbacktoLLM(传回给LLM):
默认行为。函数的返回值(例如查询到的库存数量、更新成功的消息)会被作为上下文再次喂给LLM。LLM会根据返回值生成最终的自然语言回复。例如:“库存查询成功,当前剩余50件。”
PasstoLogicOutput(输出到Logic变量):
如果只是利用LLM来做意图识别并提取参数来运行函数,而不需要LLM再说话,可以直接把函数的结果作为整个Logic的输出。
为了让Callfunction准确工作,以下几点至关重要:
(1)良好的函数描述(DescriptionisKing)
LLM是根据函数的DisplayName和Description来决定是否调用该工具的。
代码示例:
codeTypeScript
/** *Searchesforemployeesbasedontheirdepartmentandrole. *Usethiswhentheuseraskstofindstafflists. * *@paramdepartmentThedepartmentcode(e.g.,'IT','HR') *@paramroleThejobtitle */@Function() publicsearchEmployees(department:string,role:string):Promise<Employee[]>{...}
如果描述写得含糊不清(例如只写了"Searchfunction"),LLM可能不知道何时使用它,或者参数提取错误。
(2)尽量使用简单类型
虽然FoundryFunctions支持传递对象(Objects),但在AIPLogic的Tool调用中,让LLM生成String(字符串),Number(数字),Boolean(布尔值)或Date(日期)是最稳定的。尽量避免让LLM直接构造复杂的JSON对象作为参数,除非模型非常强(如GPT-5)。
(3)错误处理
LLM可能会产生幻觉参数(比如捏造一个不存在的ID)。函数内部应该包含try-catch或逻辑判断,如果查不到数据,应该返回清晰的字符串(如"NoorderfoundwithID123"),而不是直接抛出代码异常。这样LLM收到"Noorderfound"后,可以优雅地回复用户“抱歉,没找到这个订单”。
假设配置了一个updateCustomerEmail(id,newEmail)的函数工具。
用户输入:“把ID是C-001的客户邮箱改为test@example.com”。
UseLLM节点:
接收Prompt。
查看可用工具列表。
判定:用户的意图匹配updateCustomerEmail的描述。
提取参数:id="C-001",newEmail="test@example.com".
生成结构化调用请求(SystemAction)。
AIPLogic引擎:
拦截调用请求。
在Foundry后端执行函数。
获取返回值:{success:true,message:"Emailupdated"}.
UseLLM节点(再次被激活):
看到函数的返回值。
生成最终回复:“已成功将客户C-001的邮箱更新为test@example.com。”
配置Callfunction的核心不在于界面点击,而在于函数的语义化定义。确保函数名、参数名和注释清晰易懂,LLM就能像人类开发者一样准确地调用它。
二、执行操作(applyaction)工具
在Palantir AIPLogic中,配置UseLLM节点以使用Tool(工具)中的ApplyAction(执行动作)是一个强大的功能。这允许LLM根据对话上下文,自主决定修改本体(Ontology)中的数据、如创建对象、更新属性、删除对象等。
在AIPLogic中配置之前,必须确保在OntologyManager(本体管理器)中已经定义好了相应的Action(行动)。
例如:有一个名为UpdateCaseStatus的Action,它接受CaseID和NewStatus作为参数。关键点是确保在OntologyManager中为该Action及其参数编写了清晰的Description(描述)。LLM极其依赖这些描述来理解何时调用该工具以及如何填充参数。
详细配置步骤
(1)添加或选择"UseLLM"节点
在Logic流程图中,添加一个新的UseLLM节点(或者点击已有的节点)。
(2)启用Tools(工具)功能
在右侧的配置面板中,向下滚动找到Tools部分。点击Addtool(添加工具)按钮。在弹出的菜单中,选择Actions。
(3)选择具体的Action
系统会弹出一个选择框,列出所有可用的Ontology Actions。搜索并选择想要授权给LLM使用的那个Action(例如UpdateCaseStatus)。选中后,点击确认。
(4)配置Action参数
这是最关键的一步。当Action被添加到工具列表中后,会看到它的参数列表。通常有两种配置模式,但在UseLLM的Tool语境下,我们主要依赖自动推断(LLM Inferred)
Infer from context(从上下文推断):
默认情况下,Palantir会让LLM根据用户的Prompt和对话历史自动决定填入什么参数。原理是LLM会先读取Action的定义(例如参数TargetDate是日期类型),然后分析Prompt(例如“把截止日期推迟到下周五”),自动计算并填入NextFriday的具体日期。
Force/Hardcode(强制指定-较少用):
如果希望某个参数永远是固定值(例如ModifiedBy永远填"AIBot"),可以手动锁定该参数的值,不让LLM自由发挥。
(5)编写Prompt提示词工程
仅仅添加了工具是不够的,需要在Prompt中引导LLM使用它。
System Prompt(系统提示词): 明确告诉LLM它的角色和权限。比如"你是一个客服助手。当用户要求更改工单状态时,请使用提供的UpdateCaseStatus工具。在调用工具前,请确保你已经有了工单ID和新的状态。"
Few-ShotExamples(少样本示例-可选但推荐):
在配置面板中,可以提供示例(Examples)。
UserInput:"把工单123关掉。"
ModelOutput:(展示模型应该如何生成ToolCall的结构,通常AIP界面里有专门的Example录入区,或者直接写在Prompt里)。
当配置好并运行Logic时,流程如下:
(1)输入分析: LLM接收用户输入(例如:“把当前这个案子的优先级改为高”)。
(2)工具检索: LLM查看它可用的Tools列表,读取UpdateCasePriorityAction的描述。
(3)推理决策: LLM判断:“用户的意图匹配UpdateCasePriority工具。”
(4)参数提取: LLM从上下文中提取CaseID(可能来自前序节点的变量)和Priority=High。
(5)生成调用请求(ToolCall):
注意在AIPLogic的某些配置模式下,LLM节点输出的是一个"建议的动作调用"(Proposed Action),而不是直接在数据库中执行。如果节点配置为Execute Tools(执行工具):Logic引擎会拦截这个调用请求,实际去执行OntologyAction,并将执行结果(成功/失败)返回给LLM。如果节点配置仅为Plan(规划):它会输出一个JSON格式的计划,用户需要后续接一个专门的ApplyAction节点来实际执行。但在最新的"Use LLM"增强版中,通常勾选"Allow execution"即可自动闭环。
Apply action工具配置中,描述至关重要,如果在Ontology中Action的参数名为p_id,LLM可能看不懂。需要在Ontology Manager中将其描述为"The unique identifier of the project"。LLM依靠这些元数据来准确填参。
为了确保安全性,不要给LLM具有破坏性的Action(如DeleteAllData),除非有严格的审批流。AIPLogic通常运行在当前用户的权限上下文中。如果用户没权限执行该Action,LLM调用也会失败。
处理歧义也至关重要,在Prompt中指示LLM:如果缺少必要参数(例如用户只说了“改状态”但没说改成什么),不要瞎猜,而是反问用户获取更多信息,然后再调用工具。
通过使用Logic的Debugger模式可以看到LLM输出的原始思维链(Chain of Thought),检查它是否正确识别了工具,以及它提取的参数值是否正确。
配置Apply Action的核心在于在Use LLM节点的Tools栏位中挂载Ontology Action,并依赖Ontology中良好的元数据描述配合清晰的Prompt指令,让LLM能够自动推断参数并发起调用。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-12-01
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
2025-11-30
大模型在网址安全中的一些落地与思考
2025-11-30
麦肯锡重磅报告:关于未来的生存指南,当57%的工作被自动化,我们如何与AI结成利益共同体
2025-11-30
Token到底是个啥?看完这篇终于懂了
2025-11-29
Claude Opus 4.5 重磅登场:这哪里是小更,分明是重构大模型搞复杂活儿的底层逻辑
2025-11-29
Perplexity 团队深度解析|组织协作、AI原生产品体验与品牌美学
2025-11-29
ChatGPT 全球上线群聊功能
2025-11-28
如何规划一个「有节奏感」的AI产品路线图?
2025-09-19
2025-10-26
2025-10-02
2025-09-16
2025-09-08
2025-09-17
2025-09-29
2025-09-14
2025-10-07
2025-09-30
2025-11-28
2025-11-27
2025-11-27
2025-11-27
2025-11-25
2025-11-25
2025-11-25
2025-11-23