REMINDER: Sign up for the Foundry Newsletter to receive a summary of new products, features, and improvements across the platform directly to your inbox. For more information on how to subscribe, see the Foundry Newsletter and Product Feedback channels announcement.
Share your thoughts about these announcements in our Developer Community Forum ↗.
Date published: 2025-02-13
Notepad users can now edit object properties directly in Notepad documents with Ontology Actions, making it easier to keep documents in sync with Ontology changes. Ontology Actions allow users to edit object properties with preconfigured inline edits in object card and object property widgets, allowing text properties to be edited and saved to the Ontology without switching between applications.
To make Ontology edits in Notepad object property widgets, the object property must have configured inline edits. Hover over the property to display a menu that enables editing text properties, modifying the object with Actions, and opening the object in Object Explorer.
An object property widget, with the option to edit or approve a summary.
In object card widgets, hover over the widget to display an Actions menu in the top-right corner that enables submitting Actions on the displayed object. Hover over properties with configured inline edits to display the edit option.
An object card widget, with an Actions menu in the top-right corner.
An object card widget displaying an inline summary edit.
Leverage Ontology Actions in Notepad to maintain document coherence with ongoing Ontology updates, ensure real-time synchronization of object property changes, and streamline document workflows.
Learn more about object property and object card widgets in Notepad.
Date published: 2025-02-13
We are excited to announce the launch of four new courses on learn.palantir.com ↗️ along with content updates within our training tracks ↗️ for 2025. To help you understand how to navigate training content on Palantir, review our one-page Getting started with Palantir Learn ↗️ guide.
We have recently updated the Training Tracks ↗️ on learn.palantir.com ↗️ with the latest courses, use case examples, videos, and partner-developed content available. Use these persona-based collections of training resources as your one-stop shop for all related Foundry training material.
The AI Engineer training track featured on learn.palantir.com.
New to the Palantir training program? Use this one-page guide ↗️ to familiarize yourself with our various training resources and recommended learning program. The guide can be downloaded as a PDF to easily share within your organization.
Look out for more Palantir announcements as we continue to quickly evolve our training program. If you have questions on training content, issues, or suggestions for new content, contact training-feedback@palantir.com ↗️.
Date published: 2025-02-13
AIP Agents now support custom retrieval Functions, a pro-code feature that enables builders to configure their own logic for context retrieval on each query. This is ideal for situations where the retrieval methods provided out-of-the-box through Ontology context or document context do not satisfy a given use case. For example, if a user wants to run a semantic search over multiple Ontology object types, the user can configure a Function for it even though it is not currently supported in AIP Agent Studio.
You can now use Function-backed context to perform custom retrieval on each query in AIP Agent Studio.
Users can write custom retrieval Functions in TypeScript in the Code Repositories application. To do so, navigate to a TypeScript repository and import the AipAgentsContextRetrieval
function interface. Then, write a function that satisfies the interface as shown below. Note that the function must have messages
as the only required input in order to satisfy the contract.
Copied!1 2 3 4 5 6 7 8 9 10
@AipAgentsContextRetrieval() public exampleRetrievalFunction(messages: MessageList): RetrievedContext { let combinedText: string[] = []; messages.forEach((message) => { ' ... }) return { retrievedPrompt: "..." } }
The retrieval Function must output a string, which will be pasted into the LLM system prompt by AIP Agents to answer user queries. After publishing your Function, choose Function-backed context in Agent Studio under the Retrieval context panel to select a Function for retrieval.
You can select the context and a Function for retrieval in Retrieval context.
Custom retrieval Functions can also take in the values of application variables on the agent as input. To configure this, add optional arguments to the Function definition. Currently, only string and object set application variables are supported, so the Function input must be one of these types.
Copied!1 2 3 4
@AipAgentsContextRetrieval() public movieRetrievalFunction(messages: MessageList, movieTitle?: string, movieSet?: ObjectSet<Movie>): RetrievedContext { ... }
Use the API name for object types. This can be found in Ontology Manager.
You can then set a mapping between the application variables on the agent, and function inputs that match their respective types.
To create application variables, navigate to the application variables panel in Agent Studio.
In addition to support for custom retrieval Functions, AIP Agents now support custom citations. This means that if the LLM responds with citations in a specified format, the AIP Agent frontend will display citation bubbles that enable users to easily verify and explore information sources. With Function-backed context, users can take advantage of this by having their Function return a string that prompts the LLM to write citations in this given format. The supported citation formats are the following:
Ontology object citations should be returned in the following format:
<citation><key>ri.phonograph2.object-set...</key></citation>
where the <key></key>
tags encapsulate the object RID. Selecting the citation bubble will link to the Object Explorer view for that object.
Document (PDF) citations should be returned in the following format:
<citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey></citation>
Selecting the citation bubble will open a dialog that displays the first page of the document.
External URL citations should be returned in the following format:
<citation><name>My Website</name><href>www.mywebsite.com</href></citation>
The citation bubble will display the provided name, (for example: My website
) and selecting it will link to the provided URL (for example: www.mywebsite.com
).
In this example, the Function accepts a set of document chunks that are represented as Ontology objects. It then conducts a semantic search on these objects and returns the five most relevant ones, formatted according to the citation style mentioned above.
Users will soon also be able to write retrieval Functions in AIP Logic, which offers a walk-up usable interface for developing no-code LLM-powered functions. To take advantage of this in the meantime, we recommend writing a TypeScript function that satisfies the interface and calls the Logic function under the hood.
Learn more about retrieval context in AIP Agent Studio.
Date published: 2025-02-11
OSDK Templates is an experimental feature designed to accelerate and bootstrap development, saving time and reducing setup complexities. Using a customized TypeScript OSDK Template as a preconfigured starting point, developers can rapidly start building projects with built-in OSDK packages. By leveraging OSDK Templates, you can ensure consistency across TypeScript projects, or incorporate essential tools and best practices from the outset.
Use TypeScript OSDK Templates to streamline the following use cases:
To create an OSDK Template, first create a TypeScript Developer Console application and select the option to Bootstrap using VS Code in Foundry under the Start developing section. This will create a repository for your application code, allowing you to develop the application exactly as you intend users to experience it. Be sure to debug and test your application before creating a template.
When you are satisfied with your application code, create a template using the following steps:
{{SAMPLE_VARIABLE}}
. Sample variables are listed below:{{FOUNDRY_HOSTNAME}}="yourdomain.palantirfoundry.com" // .env files, .npmrc, foundry.config.json
{{APPLICATION_CLIENT_ID}}="1564cead075af0e23eb1799ac0f6381f" // .env files
{{APPLICATION_PACKAGE_NAME}}="osdk-sample-app-20" // package.json and any code file which references the package
{{APPLICATION_RID}}="ri.third-party-applications.main.application.7ebc94b7-bad3-45a9-a063-d7fc0ccd2873" // foundry.config.json
{{REPOSITORY_RID}}="ri.stemma.main.repository.35d25ea4-973d-4112-a7d3-04c31efa1875" // .npmrc setting.sh
Note that your application package should not include @
or a trailing /sdk
. The version in the package.json
must be set to latest
or 0.1.0
.
You can also add custom handlebars as input parameters when the package is deployed, as shown below:
{{AGENT_RID}}="ri.aip-agents..agent.f4a3033a-8b8d-4313-a365-3d8d7099fa95"
Commit your changes. The CI check will fail at this point, but this is expected behavior.
Navigate to Marketplace to create a new product from your repository.
Name your product, choose Repository under Add by resource type and select the repository you created. The chosen repository will be displayed under Repositories in the Content section.
A list of repositories added as dependencies to the template in Marketplace.
Your package is now ready to be distributed on Marketplace.
OSDK applications use API names to link to Ontology resources, so your code will contain API names from the Ontology used by your template.
For example, the API name of the loaded object types below is Aircraft
:
Copied!1
const response: Result<PageResult<Osdk.Instance>> = await client(Aircraft).fetchPageWithErrors({ $pageSize: 30 });
We do not recommend including Ontology resources in your package. Marketplace will attempt to install them during deployment and create duplicate Ontology resources with different API names, which will lead code to break.
To avoid this, we recommend one of the following options:
If the template application does not need to use Ontology resources, you can build a progressive web application (PWA) template that can work with any Ontology resource. You can also build a React template that adopts customers' design styles for OSDK-backed applications.
If users need to access a shared Ontology, they will be prompted to input the necessary Ontology resources during template installation, allowing Ontology resources to be referenced in code.
Users can find your packaged template in the relevant Marketplace store. When installing the template from Marketplace, a new repository and a linked Developer Console application will be automatically created for the user. When using this package for bootstrapping, the Bootstrap option must be selected during installation. Improvements to user discovery for OSDK Templates are currently in development to facilitate surfacing templates.
We created OSDK Templates to accelerate the initial phases of development and help you focus on building, rather than on setup tasks. We encourage you to share feedback with Palantir Support channels and on our Developer Community ↗️ using the ontology-sdk tag ↗️ .
Learn more about OSDK and Marketplace.
Date published: 2025-02-06
Row-level permission configuration is now available for objects in Pipeline Builder. Apply row-level permission policies to objects using Restricted Views to ensure users only see the objects they are permitted to access.
While Markings and roles provide robust access controls, certain workflows demand more specific permissioning. For example, an Organization might want to ensure that its sales representatives can only view details of customers that are assigned to their branch. Restricted Views offer this additional level of control by limiting dataset access to the rows users are authorized to see.
You can now set up detailed security policies by navigating to the output object and selecting Configure granular security.
The output object configuration panel in Pipeline Builder, with the option to add granular security permissions.
Then, select Create granular security policy to start configuring your policy.
Configure your granular security policy to apply to a specific column, user property, or value condition.
Make sure to save changes and deploy on the main branch so that Restricted Views and their associated security policies take effect.
With this powerful feature, enhance your access control systems and ensure secure data handling across your projects. Let us know your thoughts through Palantir Support channels and our Developer Community using the pipeline-builder
tag.
To further explore Restricted View policies and best practices, refer to our detailed documentation on Restricted View policies.
Date published: 2025-02-04
Over the past year, many new features and improvements have been added to Workshop to both increase the point-and-click expressiveness of the application builder toolkit and add powerful, new pro-code extensibility options for developers.
The list below does not cover every recent enhancement to Workshop, but is intended to provide a summary of notable highlights from 2024. For more information on any of these features, review the documentation linked inline below:
Date published: 2025-02-04
Project Owners
can now exclude specific groups from access request forms. When a group is excluded for a Project, users will not be able to request to join the group.
By default, all groups with a role in a Project appear in the access request form. Excluding groups from access request forms prevents accidental membership requests to groups like administrator groups, while still allowing necessary access through designated Projects.
Excluding groups is a per-Project setting, offering flexibility. A group can be excluded from most Projects but included in specific ones. Users can request access to the group in those specific Projects. If approved, they will gain access to all Projects where the group has a role.
To exclude groups from the access request flow for a Project, navigate to the Access panel > Settings > Project access requests.
The access requests settings of a selected Project.
Project Owners
can select Manage and then select the groups to exclude from the request flow. If you are not an Owner
on the Project, you can select View to see which groups are excluded, but you will not be able to make any changes.
Search for and select groups to exclude from Project access requests.
Learn more about excluding groups from access request forms.
Date published: 2025-02-04
Kiosk mode is now generally available for Workshop applications. Kiosk mode offers builders the ability to launch secure, long-lived, restricted sessions for Workshop applications, allowing them to be safely displayed for extended periods of time. For example, allowlisted applications can be run in Kiosk mode for continuous display on a command center screen, or to enable a shared monitor to display an operational dashboard 24/7.
To ensure safe display of a module when a Workshop application is in Kiosk mode, the module's permissions will be scoped down to only include entities directly accessible within the module and to limit the content viewable within the active session.
Kiosk mode settings may be configured and managed on the Organization level within the Control Panel, allowing administrators to manage:
To learn more about how to configure and enable Kiosk mode for your Workshop applications, details on how Kiosk mode permission scope is determined, and the restrictions and controls Kiosk mode offers, review our documentation.