Repository navigation
MoralMod live for edgecity-goa: hosted-agent consult + assessment service - #1873
Closed
serefyarar wants to merge 2 commits into
Closed
serefyarar wants to merge 2 commits into
serefyarar wants to merge 2 commits into
Conversation
…osted agent The agent's negotiate() honours optional per-turn assessment guidance again (reviewed state restored from PR #1870 history), and the hosted agent builds the moralmod hook from env: members of the network named by MORALMOD_NETWORK_KEY (default edgecity-goa) get the consult; everyone else and every deployment without MORALMOD_ASSESSMENT_URL runs untouched. Exposure events land in opportunity_events ('moralmod.' client types are reserved), with an identity-stripped optional relay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
services/moralmod-assessment: FastAPI service Index's hosted agent consults before edgecity-goa members' turns. Wraps flexible-moral-reasoning @ f17d52c (with the lab's cooperation): sorted-JSON vignette per the lab's own input conventions, no candidate menu (the model infers scientific actions, as their production does), mutual-benefit mode by default, name-folded participant matching, and results in the DecisionRunResult shape @indexnetwork/moralmod validates, with per-action descriptions. Runs need OPENROUTER_API_KEY and the lab's TYPESAFE_API_KEY; without them the service answers unavailable and every turn falls back to the plain negotiator. Verified locally: boot, auth, run lifecycle round-tripped with the real consult client, and the full pipeline import path resolves on Python 3.13. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
|
Superseded: MoralMod will run as a separate custom-negotiator deployment on Railway for edgecity-goa members; nothing embeds in Index. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Index hosts the negotiators for edgecity-goa residents, so this wires MoralMod end to end for that one network. Dormant everywhere until
MORALMOD_ASSESSMENT_URLis set on hosted-agents.What's here
negotiate()honours optional per-turn assessment guidance again (the reviewed implementation from PR Idempotent negotiation turns (clientTurnId) + MoralMod decoupling decision #1870's history: tie → plain-worded stall before any model call, validatedassessment_choice/divergence/reason, byte-identical without guidance).MORALMOD_NETWORK_KEY(defaultedgecity-goa) get the consult, cached 60s; everyone else untouched. Exposure events land inopportunity_events(moralmod.client types reserved), optional identity-stripped relay.services/moralmod-assessment— themoralmod-consult-0service: FastAPI around the lab'sflexible-moral-reasoningpipeline (f17d52c, with their cooperation). Lab-faithful input rendering (sorted-JSON vignette, no candidate menu — the model infers scientific actions as their production does), mutual-benefit mode by default (no severity calibration), name-folded participant matching, results in the shape@indexnetwork/moralmodvalidates with per-action descriptions.Verified locally
Service boot + auth + run lifecycle round-tripped with the real
@indexnetwork/moralmodconsult client (wrong token refused; keyless run → cleanunavailable→ client null → hook falls back, so the village never blocks on this service). Full pipeline import path (jax→dspy→modules→service loader) resolves on Python 3.13. agent/moralmod/api: tests green during development, tsc + eslint clean.To go live (deploy steps)
services/moralmod-assessment(Dockerfile; build secretgithub_tokenfor the private pipeline repo), vars per.env.example— needs the lab'sTYPESAFE_API_KEY; every run calls their TypeSafe "Jev" model, no flag to skip. Without it: service healthy, all turns fall back plain.MORALMOD_ASSESSMENT_URL=http://<service>.railway.internal:8080,MORALMOD_ASSESSMENT_TOKEN.edgecity-goa(networks.key).🤖 Generated with Claude Code