Appearance
Run code in the cloud (rich outputs)
What you’ll do
Run Python/JavaScript/Java/R code in an AGB session and read rich execution outputs (text/HTML/images/JSON) returned by the SDK.
Output formats you can get
The enhanced code execution API can return rich outputs in multiple formats:
- Plain text output
- HTML content
- Images (PNG, JPEG, SVG)
- Charts and visualizations
- Markdown content
- LaTeX expressions
- JSON data
Prerequisites
AGB_API_KEY(seedocs/api-key.md)- A valid
image_idfor code execution (e.g.agb-code-space-1) - (Optional) A Python environment with
agbcloud-sdkinstalled
Quickstart
Minimal runnable example: create a session, run code, print text output, then clean up.
python
from agb import AGB
from agb.session_params import CreateSessionParams
agb = AGB()
create_result = agb.create(CreateSessionParams(image_id="agb-code-space-1"))
if not create_result.success:
raise SystemExit(f"Session creation failed: {create_result.error_message}")
session = create_result.session
exec_result = session.code.run_code("print('Hello, AGB!')", "python")
if not exec_result.success:
raise SystemExit(f"Execution failed: {exec_result.error.value}")
for item in exec_result.results:
if item.text:
print(item.text)
agb.delete(session)Common tasks
Read rich outputs (HTML / PNG / SVG / JSON)
python
exec_result = session.code.run_code(
"import matplotlib.pyplot as plt; plt.plot([1,2,3]); plt.title('demo'); plt.show()",
"python",
)
if exec_result.success:
for item in exec_result.results:
if item.text:
print(item.text)
if item.html:
print("HTML output available")
if item.png:
print("PNG image available (base64)")
if item.jpeg:
print("JPEG image available (base64)")
if item.svg:
print("SVG output available")
if item.json:
print("JSON output available")
else:
print(exec_result.error.value)
### Read Markdown / LaTeX / chart outputs
```python
for item in exec_result.results:
if item.markdown:
print("Markdown output available")
if item.latex:
print("LaTeX output available")
if item.chart:
print("Chart output available")
### Access logs (stdout / stderr)
```python
if exec_result.success and exec_result.logs:
if exec_result.logs.stdout:
print("STDOUT:", exec_result.logs.stdout)
if exec_result.logs.stderr:
print("STDERR:", exec_result.logs.stderr)Increase timeout for long-running code
python
session.code.run_code("import time; time.sleep(100)", "python", timeout_s=120)Best practices
- Always delete sessions when done (
agb.delete(session)), even on failures. - Make
image_idexplicit in examples; remind users it must exist in their account. - If you run untrusted code, validate inputs and enforce timeouts/limits.
- Prefer small, incremental code blocks for debugging (then compose into a pipeline).
Troubleshooting
Session creation fails
- Likely cause: invalid
AGB_API_KEYor invalidimage_id. - Fix: verify
AGB_API_KEYis set and theimage_idexists in your account.
Execution times out
- Likely cause: default timeout is too small for the workload.
- Fix: pass a larger
timeout_s, or break the workload into smaller steps.
Related
- API reference:
docs/api-reference/capabilities/code_execution.md - Examples:
docs/examples/code_execution/README.md