Skip to content

Commit 480db4b

Browse files
committed
Sync open source content 🐝 (from 68ffe49ca4550451919199e2e3868c6fd3d27147)
1 parent 590be7b commit 480db4b

File tree

2 files changed

+86
-4
lines changed

2 files changed

+86
-4
lines changed

docs/gram/concepts/tool-variations.md renamed to docs/gram/concepts/tool-variations.mdx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,19 @@ Under the **Tools** tab for a toolset, you can edit the name and description of
1818

1919
To edit a tool's name, click the 3 dots and select **Edit name**. Update the tool name in the modal that opens.
2020

21-
![Editing a tool name](/assets/docs/gram/videos/tool-variations/editing-tool-name.mp4)
21+
<video controls={false} aria-label="Editing a tool name" loop={true} autoPlay={true} muted={true} width="100%">
22+
<source
23+
src="/assets/docs/gram/videos/tool-variations/editing-tool-name.mp4"
24+
type="video/mp4"
25+
/>
26+
</video>
2227

2328
Similarly, to edit a tool's description, click the 3 dots and select **Edit description**. Use the dedicated modal to validate and save your updated description:
2429

25-
![Editing a tool description](/assets/docs/gram/videos/tool-variations/editing-tool-description.mp4)
30+
31+
<video controls={false} aria-label="Editing a tool description" loop={true} autoPlay={true} muted={true} width="100%">
32+
<source
33+
src="/assets/docs/gram/videos/tool-variations/editing-tool-description.mp4"
34+
type="video/mp4"
35+
/>
36+
</video>

docs/gram/examples/using-environments-with-vercel-ai-sdk.mdx

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,27 @@ description: |
44
Learn how to use Gram environments with the Vercel AI SDK to manage authentication and configuration.
55
---
66

7-
When initializing the Gram SDKs, specify which environment to use. The tools passed to the LLM will be bound to that environment.
7+
[Environments](/docs/gram/concepts/environments) in Gram manage authentication credentials, API keys, and configuration variables for [toolsets](/docs/gram/concepts/toolsets). When building agent applications with the Vercel AI SDK or other AI frameworks, environments provide a secure way to manage the credentials needed to execute tools.
8+
9+
## Overview
10+
11+
Environments enable secure credential management without hardcoding sensitive information. They work by:
12+
13+
- Storing credentials and configuration in Gram's secure environment system
14+
- Binding tools to a specific environment at initialization
15+
- Executing all tool calls using the credentials from that environment
16+
17+
This approach is particularly useful for:
18+
19+
- **Multi-environment deployments**: Separate development, staging, and production credentials
20+
- **Team collaboration**: Share toolsets without exposing credentials
21+
- **Enterprise security**: Centralized credential management and rotation
22+
23+
Learn more about [environment concepts](/docs/gram/concepts/environments) and how to [configure environments](/docs/gram/gram-functions/configuring-environments).
24+
25+
## Using environments with Vercel AI SDK
26+
27+
The Vercel AI SDK integration demonstrates how to bind tools to a specific environment. The `environment` parameter in the `tools()` method determines which credentials the tools will use at runtime.
828

929
```ts filename="vercel-example.ts" {15}
1030
import { generateText } from "ai";
@@ -34,6 +54,14 @@ const result = await generateText({
3454
console.log(result.text);
3555
```
3656

57+
In this example, all tools in the `marketing` toolset execute using credentials from the `production` environment. This keeps production API keys secure and separate from development credentials.
58+
59+
See the [Vercel AI SDK integration guide](/docs/gram/api-clients/using-vercel-ai-sdk-with-gram-mcp-servers) for complete setup instructions.
60+
61+
## Using environments with OpenAI Agents SDK
62+
63+
The OpenAI Agents SDK follows the same pattern, binding tools to an environment at initialization:
64+
3765
```py filename="openai-agents-example.py" {17}
3866
import asyncio
3967
import os
@@ -68,7 +96,19 @@ if __name__ == "__main__":
6896
asyncio.run(main())
6997
```
7098

71-
Environments are not required to use the Gram SDKs. You can pass the necessary variables directly when creating an instance. This is useful when users of your Gram toolsets prefer to use their own credentials.
99+
The Python SDK provides the same environment binding capabilities, ensuring consistent credential management across different programming languages.
100+
101+
Learn more about [using the OpenAI Agents SDK with Gram](/docs/gram/api-clients/using-openai-agents-sdk-with-gram-mcp-servers).
102+
103+
## Bring your own environment variables
104+
105+
For applications where end users provide their own credentials, pass environment variables directly to the SDK adapter instead of referencing a managed environment. This is common when:
106+
107+
- Building multi-tenant applications where each user has their own API keys
108+
- Creating developer tools where users supply their own credentials
109+
- Distributing applications that integrate with user-owned services
110+
111+
### TypeScript example
72112

73113
```ts filename="byo-env-vars.ts" {5-8}
74114
import { VercelAdapter } from "@gram-ai/sdk/vercel";
@@ -82,6 +122,10 @@ const vercelAdapter = new VercelAdapter({
82122
});
83123
```
84124

125+
The `environmentVariables` object accepts any key-value pairs that the toolset's functions require. This approach bypasses Gram's environment system entirely, using credentials provided at runtime instead.
126+
127+
### Python example
128+
85129
```py filename="byo-env-vars.py" {6-9}
86130
import os
87131
from gram_ai.openai_agents import GramOpenAIAgents
@@ -94,3 +138,30 @@ gram = GramOpenAIAgents(
94138
}
95139
)
96140
```
141+
142+
Both SDK adapters support the same `environment_variables` parameter, providing flexibility in how credentials are managed.
143+
144+
## Choosing between environments and direct variables
145+
146+
Consider these factors when deciding between managed environments and direct variables:
147+
148+
**Use managed environments when:**
149+
- Deploying applications with fixed credentials
150+
- Managing multiple environments (dev, staging, production)
151+
- Sharing toolsets across teams without exposing credentials
152+
- Implementing centralized credential rotation
153+
154+
**Use direct variables when:**
155+
- Building multi-tenant applications
156+
- Creating end-user tools where users supply credentials
157+
- Testing with dynamic credential sets
158+
- Implementing user-specific customizations
159+
160+
Both approaches can be combined in the same application for different use cases.
161+
162+
## Next steps
163+
164+
- Learn about [environment concepts and management](/docs/gram/concepts/environments)
165+
- Explore [other AI framework integrations](/docs/gram/api-clients/using-anthropic-api-with-gram-mcp-servers)
166+
- Set up [API keys](/docs/gram/concepts/api-keys) for Gram SDK access
167+
- Read about [toolset organization](/docs/gram/concepts/toolsets)

0 commit comments

Comments
 (0)