You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implements proposal 0032 (spec v0.24.0). Three OpenAI-standard
sampling parameters promoted from the extras pass-through to declared
fields on RuntimeConfig: frequency_penalty, presence_penalty, and
stop_sequences. The declared name stop_sequences matches the
OpenTelemetry GenAI semconv (and Anthropic / Gemini wire-key
conventions); the OpenAI-compatible wire mapping translates it to
OpenAI's shorter body key stop on emission, per spec §8.1.
Null-skip is now uniform across all seven declared fields: a field
set to None is omitted from the wire body entirely (no JSON null).
The existing four fields already followed this pattern; the three
new fields extend it.
OTel observer emits gen_ai.request.frequency_penalty,
gen_ai.request.presence_penalty, and gen_ai.request.stop_sequences
on the LLM span when the corresponding RuntimeConfig field is set
(per observability §5.5.2's expanded attribute list).
RuntimeConfig.from_partial(**kwargs) classmethod is a pure Python
ergonomic that drops None-valued kwargs before construction. The
wire layer already null-skips, so this is convenience only.
Spec submodule bumped to v0.24.0; conformance.toml grows entries for
proposals 0031 (langfuse mapping, not-yet) and 0032 (not-yet here,
flips to implemented with since=0.10.0 in the release PR).
Tests: fixture llm-provider/032 and observability/025 pass. Langfuse
fixtures 022-024 deferred in the parser harness until PR 3 ships the
matching directive model.
Copy file name to clipboardExpand all lines: conformance.toml
+13-1Lines changed: 13 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@
29
29
30
30
[manifest]
31
31
implementation = "openarmature-python"
32
-
spec_pin = "v0.22.1"
32
+
spec_pin = "v0.24.0"
33
33
34
34
# Status values:
35
35
# implemented — shipped behavior matches the proposal's contract
@@ -149,3 +149,15 @@ since = "0.9.0"
149
149
status = "textual-only"
150
150
since = "0.9.0"
151
151
note = "Drain snapshot semantic and timeout-input validation already implemented as part of the proposal 0010 impl PR (v0.9.0); no additional module-level work needed."
Copy file name to clipboardExpand all lines: src/openarmature/AGENTS.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# OpenArmature — Agent documentation
2
2
3
-
*This is the agent guide bundled with the openarmature Python package, version 0.9.0 (spec v0.22.1). For the full docs site see [openarmature.ai](https://openarmature.ai). For the canonical spec text see [openarmature.org/capabilities](https://openarmature.org/capabilities/). For project-specific conventions for the code you're editing, see the host project's `AGENTS.md` or `CLAUDE.md`.*
3
+
*This is the agent guide bundled with the openarmature Python package, version 0.9.0 (spec v0.24.0). For the full docs site see [openarmature.ai](https://openarmature.ai). For the canonical spec text see [openarmature.org/capabilities](https://openarmature.org/capabilities/). For project-specific conventions for the code you're editing, see the host project's `AGENTS.md` or `CLAUDE.md`.*
4
4
5
5
## TL;DR
6
6
@@ -10,7 +10,7 @@ OpenArmature is a workflow framework for LLM pipelines and tool-calling agents
10
10
11
11
## Capability contracts
12
12
13
-
_Sourced from openarmature-spec v0.22.1. Each entry below reproduces §1 (Purpose) and §2 (Concepts) of the capability's `spec.md`. For the full spec text (execution model, error semantics, determinism, observer hooks, etc.) see the linked docs site._
13
+
_Sourced from openarmature-spec v0.24.0. Each entry below reproduces §1 (Purpose) and §2 (Concepts) of the capability's `spec.md`. For the full spec text (execution model, error semantics, determinism, observer hooks, etc.) see the linked docs site._
14
14
15
15
### Capability: `graph-engine`
16
16
@@ -274,13 +274,13 @@ The observability capability defines normative mappings from OpenArmature's runt
274
274
well-known external observability backends. The substrate is provider-neutral; the capability is
275
275
where each concrete backend's translation lives.
276
276
277
-
This first version specifies the **OpenTelemetry** mapping. Future proposals add other backends
278
-
(Langfuse, etc.) as sibling sections of this same spec; the OTel mapping serves as the reference
279
-
shape for cross-backend equivalence.
277
+
This spec defines two concrete backend mappings: the **OpenTelemetry** mapping in §3–§7 and the
278
+
**Langfuse** mapping in §8. Future proposals add additional backends as further sibling sections
279
+
of this same spec; the OTel mapping serves as the reference shape for cross-backend equivalence.
280
280
281
281
The capability does NOT introduce new graph-engine primitives. It consumes the existing observer
282
282
event stream — `started` events open spans, `completed` events close them. An implementation that
283
-
emits OTel spans is built on top of §6, not into the engine.
283
+
emits OTel spans (or Langfuse observations, per §8) is built on top of §6, not into the engine.
284
284
285
285
#### 2. Concepts
286
286
@@ -310,7 +310,8 @@ and is intended to be visible in every backend the implementation emits to. A us
310
310
LLM workflow with both an OTel backend (system traces, logs) and a Langfuse backend
311
311
(LLM-specific traces) uses the `correlation_id` as a join key between them: find a slow request
312
312
in Langfuse, search for its `correlation_id` in OTel logs, and see the surrounding
313
-
infrastructure activity. See §3 (architectural contract) and §5.6 (OTel attribute realization).
313
+
infrastructure activity. See §3 (architectural contract), §5.6 (OTel attribute realization),
0 commit comments